如果SQL注入没有回显,可能是SQL语句查询方式的问题导致的,所以需要用到相关的报错或盲注进行后续操作       

sql注入的查询方式:select,insert,update,delete

比如在注册时,就需要用到insert的查询方式

盲注

1.基于布尔SQL盲注-逻辑判断

regexp,like,ascii,left,ord,mid

2.基于时间的SQL盲注-延时判断

if,sleep

3.基于报错的SQL盲注-报错回显

floor,updatexml,extratvalue

首先讲解报错回显盲注

第一个引号是闭合sql语句的单引号,最后的单引号也是闭合sql语句最后的单引号,这个语句用来强制性的报错!

一般来说,select都有报错回显,但是insert只有告诉你语句有没有正常执行,没有错误原因

个人理解:更新添加删除都是没有回显所以就不能用union select 这样的联合注入,要根据功能的不同,用不同的注入语句。

注入过程:

1.看网站使用哪种查询方式

2.看网站是否有回显

延迟判断盲注

select * from users and sleep(4)  此结果就会延迟4秒出现

select if(database()='pikachu',123,456)   判断当前数据库名是不是pikachu,是的话返回123,不是则返回456

二者结合:select * from user and sleep(if(database()='a',1,0)

通过延迟时间,判断这个条件是否成立,那么就可以进行数据库名的一个猜解,就算没有回显,依旧可以通过页面的加载时间判断条件是否成立

当猜解数据库名时,首先使用length(database())判断长度,比较常用的还有下面这些

布尔盲注

主要是做逻辑判断,跟延时盲注类似

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部