布尔盲注&脚本过waf
::: {.container}
::: {.post}
::: {.show-content}
题目:输入admin
F12查看,是post提交方式,表单参数是id
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
输入admin;
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
sqlmap -u "http://ctf5.shiyanbar.com/web/earnest/index.php\"
--data="id=admin" --dbs --level 3
检测post注入,all tested parameters appear to be not
injectable,貌似不能注入,,
em.......…接下来该怎么办呢?
burp检测布尔盲注,可以看到,这个题目跟这篇文章提到的很像,但有所不同的是,该文章中
101 account number is valid
666 Invalid account number
101 and 1=1 account number is valid
101 and 1=2 Invalid account number
而在这个题目中,某些字符被检测到了(比如说’and’字符),所以需要避免使用这些字符。
我们需要构造语句如下,才能够获得信息。如果是sql injection detected!
也不知道结果是True还是False
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
1 : you are in
2 : you are not in
1 "sql查询语句1" : you are in
1 "sql查询语句2" : you are not in
现在看看哪些符号不能用:
and 不行,#不行,空格键被替换为+,order by不行, union不行
单双引号可以,等号可以,大于号小于号可以,or可以,select可以,/**/可以
tamper脚本:chardoubleencode.py 双url编码 space2comment.py
空格替换为/**/
randomcase.py随机大小写(大小写绕过无效)
charunicodeencode.py (tamper script
'charunicodeencode' is only meant to be run against ASP or ASP.NET web
applications) 字符串 unicode 编码
halfversionedmorekeywords.py关键字前加注释
versionedmorekeywords.py注释绕过
sqlmap -u "http://ctf5.shiyanbar.com/web/earnest/index.php\"
--data="id=1" --dbs --level 3 -v --tamper charunicodeencode.py
space2comment.py
all tested parameters appear to be not injectable.
这个waf真是严格啊,tamper脚本无效
看writeup,要针对该题目的过滤写个布尔盲注脚本,,本来以为是个sql注入题,结果还是个编程题。
近200行的脚本,再过一年我可能可以写。。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
2018.3.23更新,学习下怎么写注入脚本。
第一步,确定手注的payload,再通过代码简化。
输入1xxxx,反馈you are in说明是字符型注入
输入1',反馈you are not in,说明单引号未过滤
:::
:::
:::