本文主要结合本人绕过最近某rasp和一些waf的经验,分享绕过waf的思路,MySQL测试版本(8.0.31)
构造闭合
对于构造闭合,主要是判断一个sql注入能否利用的第一步,只有闭合成功,才能在添加我们自己想执行的sql函数,或者语句。mysql主要存在以下两个方式。
'#
'--+
一个就是逃逸字符,一般为单双引号(某些复杂的sql可能还需要括号等来进行闭合),或者是数字型的注入不需要逃逸字符,第二个就是注释字符,用来闭合后面的原始字符。
如同所示,选择的字符是我们的输入,对前面的的单引号进行了闭合,对后面的单引号进行了注释
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mXu7h2ec-1679646830347)(./MySQL注入绕过.assets/image-20230223170836542.png)]](https://i-blog.csdnimg.cn/blog_migrate/af7fa3f09e9e92411745980a84ccf937.png)
闭合构造完成之后如果存在一些拦截规则,常规的注入语句是无法获取到数据的,包括sqlmap等,这时就需要我们进行手工注入,下面我为大家介绍一下,我绕waf的一个思路。
连接字符
我把可以直接在字符后面可以紧跟执行着函数的字符称为连接字符,如下
'sleep(1)# -- 执行失败
'-sleep(1)# -- 执行成功
执行失败展示
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okpMsKuk-1679646830349)(./MySQL注入绕过.assets/image-20230223171044795.png)]](https://i-blog.csdnimg.cn/blog_migrate/705c2cd1d81695258a7f2c63d3f57945.png)
执行成功

在这里减号就连接了一个函数,我就把这种字符成为连接字符,当然,and,or也算在其中,以下是我总结的一些连接字符

本文探讨了如何绕过WAF进行MySQL注入,包括构造闭合、连接字符、空格绕过和关键字绕过的方法。通过举例说明如何使用特殊字符、混淆关键字和等效替代来规避拦截,提升SQL注入的效率和成功率。
最低0.47元/天 解锁文章
1143

被折叠的 条评论
为什么被折叠?



