sqli-labs解题大法29 ~40

Less-29:
堆叠查询,在一条语句之后加上分号,然后接下一条语句,可以一次执行多条语句.
order by 排序,可以;联合查询,可以。参考Less-1。在这里插入图片描述
Background-6 服务器(两层)架构:http://www.cnblogs.com/lcamry/p/5762961.html

Less-30:
与Less-29一样,双引号闭合"。

Less-31:
双引号加括号闭合,参考Less-29。

Less-32:
这一关刚开始使用了各种闭合,发现页面都不对,快绝望的时候才注意到下面这行提示:
在这里插入图片描述
懵了一下,我用的明明是 0'union select 1,2,3--+ ,怎么多了一个反斜杠 \
然后查了一下源码:
在这里插入图片描述
addslashes()函数的作用是:
在 单引号 ',双引号 ",反斜杠 \还有NULL前面加上反斜杠\
所以我们可以用加上%df的方法来进行注入。
sqli-labs解题大法29 ~40_第1张图片
利用%df进行注入的原理是:因为源码中所使用的是gbk编码,在这里插入图片描述
在gbk编码中两个字节代表一个汉字,所以在编码时,%df和后面的\也就是%5c变成了一个汉字 ,而单引号 '逃逸了出来。那剩下的事就是用联合注入,不再多说了。
注意: 不知道为什么,我的浏览器在url中输入的时候 # 没办法起到注释的作用,不过改为--+就没问题了。
宽字节注入参考:https://www.leavesongs.com/PENETRATION/mutibyte-sql-inject.html
感谢大佬的博客o(* ̄▽ ̄*)o

Less-33:
这个…好像和Less-32一模一样。反正我用32关的语句就直接过了。

Less-34:
这一题一进来看见下面的话就觉得单引号要被转义,试了一下,果然
在这里插入图片描述
这里应该还是gbk编码了,那么咱们继续%df,
sqli-labs解题大法29 ~40_第2张图片
???,竟然失败了?然后不死心的又试了一下%df%27在这里插入图片描述
结果仍然失败,而且看起来根本就没有转义,我甚至都以为是mysql_real_escape_string()这个函数过滤了,但是看了下源码,确实是gbk的。然后在经历多次失败后去问度娘,最后自己得出了一个总结,(因为没有找到反例,所以不确定是否正确 ):
目前我所了解的对于gbk编码url中和post中的字节转换是少一步的。在post栏里输入的字符不会被自动转换,也就是说在url里面输入%df会被后台转义为 � 这个东西,但是在post中输入%df就还是%df,我们要直接输入%df的转义字符� ,这样效果才等同于在url中输入%df
然后,这一关只需要在单引号前面加上�就可以通过执行后面的语句进行注入了。
(�这个符号有的符号栏里可能没有,直接复制粘贴就好)。

Less-35:
这一关太坑了,进去之后看到下面的话:
在这里插入图片描述在这里插入图片描述
这一看还是转义,于是先试了下单引号,发现确实多了一个反斜杠,然后以为是闭合方式的问题,就不断的尝试不同的闭合方式,接着…我炸了。
最后去看了下源码:
在这里插入图片描述
玩我呢?这是玩我呢吧?这就是玩我了啊!!根本用不到单引号双引号什么的,直接加上查询语句就行。不说了,再见ヾ(≧へ≦)〃。

Less-36:
单引号闭合,参考32。
话说,似乎有三关一样啊。
不过这一关主要还是了解mysql_real_escape_string()与addslashes()这两个函数的区别。
mysql_real_escape_string()函数编码的字符是 NULL(ASCII 0)、\n、\r、\、’、" 和 Control-Z。
参考菜鸟教程:http://www.runoob.com/php/func-mysqli-real-escape-string.html

Less-37:
post型输入,加上�就好。
不过用union时记得只有两个,只要union select 1,2就够了。

Less-38:
在这里插入图片描述
在这里插入图片描述
这个…让干嘛呢?错误了没返回。

Less-39:
试了几次,不用闭合,sql语句应该是$id=$id,出来吧,联合查询!!!

Less-40:
单引号加括号 ') 闭合 ,联。。。…

sqli-labs解答时用到的函数和源码中出现的函数。源码函数。
当然,太简单的函数就不多说了,菜鸟教程会一直在那里等着你的。

你可能感兴趣的:(sqli-labs,sql注入)