?id=5 and 1=1 如果返回页面与原页面一致(回显正确) 则为数值型注入
原因:
1. 猜测为数值型,后台语句为select * from table where id=5 and 1=1;where语句判断条件为真并且id参数值为5,正常执行
2. 猜测为字符型,后台语句为select * from table where id='5 and 1=1';where 语句将找不到id为'5 and 1=1' 的参数,语句执行失败
如果是字符型:
传入 5' and 1=1 --
字符型后台语句为:
select * from table where id='5' and 1=1 -- ';后面的单引号被注释,不需要担心单引号闭合问题,id='5'才是真正的id查询语句,id参数的值应该是一个值,而不是带上and 1=1,因为数据库中没有带着and 1=1的名
假设?id=5 and 1=1;返回页面与源页面一致,通过该参数我们可以确定该注入的数据类型为数字注入
当参数为?id=5 and 1=2由于and 1=2 为假,也就是查询条件where id=5 and 1=2恒假,这样的sql语句在数据库中执行后,没有返回结果,也就是说能正常回显内容与语句的真假性有关(是否出现回显内容与语句的真假性有关,而不是回显内容与语句的真假性有关,语句的真假性若和会先内容有关而不是是否出现回显和语句的真假性有关的话,则不为盲注)判断参数是否存在延迟注入
按f12打开调试面板,修改参数为?id=5 and sleep(5),并刷新,如果sleep语句对网页的响应起到作用,就意味着存在延迟注入的可能