SQL注入之查询方式和报错盲注

当进行SQL注入时,有很多注入会出现无回显的情况,其中不回显的原因可能就是SQL语句查询方式的问题导致,这个时候我们需要用到相关的报错或盲注进行后续操作,同时作为手工注入时,提前了解或预知其SQL语句大概写法也能更好的选择对应的注入语句。

Select查询数据

在网站应用中进行数据查询显示操作:select * from news where id = $id

Insert插入数据

在网站应用中进行用户注册添加等操作:insert into news(id,url,text) values(2,’x’,’$t’)

Delete删除数据

后台管理里面删除文章删除用户等操作:delete from news where is=$id

Update更新数据

会员或后台中心数据同步或缓存等操作:update user set pwd=’$p’ where id=2 and username=’admin’

Order by排序数据

一般结合表名或列名进行数据排序操作:select * from news order by $id

                                                select id,name.price from news order by $order

重点理解上述查询和网站应用的关系

注册一般是插入操作,删除帖子一般是删除操作,修改信息一般是更新操作等。

SQL注入报错盲注

盲注就是在注入过程中,获取的数据不能回显至前端页面。此时我们需要利用一些方法进行判断或者尝试。这个过程称为盲注。盲注一般分为以下三类:

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

Regexp,like,ascli,left,ord,mid

  1. 基于事件的SQL盲注-延时判断

If,sleep

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

Floor,updatexml,extractvalue

12种报错注入+万能语句:https://www.jianshu.com/p/bc35f8dd4f7c

参考:like ‘ro%’ 判断ro或者ro……是否成立

regexp ‘^xiaodi[a-z]’ 匹配xiaodi以及xiaodi……等

if(条件,5,0) 条件成立 返回5 反之 返回0

sleep(5) 语句延时执行5秒

mid(a,b,c) 从位置b开始,截取a字符串的c位

substr(a,b,c) 从b的位置开始,截取字符串a的c长度

left(database(),1) left(a,b) 左侧a的位置截取前b位

length(database()) = 8 判断数据库名database()名的长度

ord= ascii ascii(x) = 97 判断ascii码是否等于97
posted @   Cx330ki  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示