ISCC括号过滤题复现
本地数据库建立
1 | create database test1; |
创建表:
1 | create table `admin`( |
插入数据:
1 | insert into admin |
开始解题
测试数据:输入任何数据 发现返回的都是
意思就是 flag在password栏里
接下来使用sql注入测试一下,发现当我们在单引号后输入=的时候页面回显:illegal input,burp suit爆破测试一下过滤了什么数据:过滤了一些盲注函数包括like regexp,还有where等union查询需要使用的
接下来继续测试一下,确定需要使用什么盲注:
当我们输入
admin’and 1<2#——页面回显是admin也就是我们的用户名,并且是因为此用户名存在才会回显出来
当我们输入
admin’and 1>2#——页面回显是the content in the password….
所以可以确定这里可以使用布尔盲注
接下来需要确定使用什么语句进行注入:
由于过滤括号,所以无法使用substr等盲注常用函数进行解题
这里就要拓展学习一种新方法了:
union select+order by盲注
我们这里从后往前解析,order by 3,2的意思是先排序第三列再排序第二列 我们使用的union select 插入的数据的第三列的数据如果小于等于admin的第三列,显示的即为我们插入的数据,如果大于显示的即为admin一行的数据,接下来编写盲注脚本:1 | import requests |
这里有个点需要注意的就是:由于使用的是order by的排序机制,所以
程序不会自己终止,就是会一直按最后一位的字母叠加下去,要记得辨识。由于我比较懒,所以密码弄得就是gggggggg,于是就有了上面的结果。
而在本题中,密码就是flag。
这篇博客似乎有点水哈哈哈哈哈
开学也要好好加油哇!
ISCC括号过滤题复现