这两天做了实验吧的简单的sql注入这个题,对sql注入有了初步的认识。
进入题目之后,首先测试是否存在注入点:
检测是否存在注入点的两种常用方法:
1. 基于报错的检测方法
一般这种方法是输入单引号’,看是否报错,如果数据库报错,说明后台数据库处理了我们输入的数据,那么有可能存在注入点。
2. 基于布尔的检测方法
这种方法是输入:
- 1 and 1=1,通常这种情况会正常返回数据
- 1 and 1=2,通常这种情况不会返回数据或者直接报错
或者
- 1’ and ‘1’=’1,通常这种情况会正常返回数据
- 1’ and ‘1’=’2,通常这种情况不会返回数据或者直接报错
分析:
假如后台处理数据的sql语句(后台在输入上加了单引号)是:
select name from user where id='our_input'
我们输入1’ and ‘1’=’1,sql语句变为:
select name from user where id='1' and '1'='1'
后台数据库仍然正常读取数据
我们输入1’ and ‘1’=’2,sql语句变为:
select n