当进行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注入报错盲注
盲注就是在注入过程中,获取的数据不能回显至前端页面。此时我们需要利用一些方法进行判断或者尝试。这个过程称为盲注。盲注一般分为以下三类:
- 基于布尔的SQL盲注-逻辑判断
Regexp,like,ascli,left,ord,mid
- 基于事件的SQL盲注-延时判断
If,sleep
- 基于报错的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 标签:报错,SQL,news,盲注,id,注入 From: https://www.cnblogs.com/cx330ki/p/17020201.html