基础四-SQL注入小结中篇

微信公众号:白昼信安
如果你觉得内容对你有帮助,欢迎点赞

本章目录

3.SQL注入分类(细分)
3.1.从注入手法上分类:联合、报错、布尔、延时、堆叠、宽字节、DNSlog(上篇已经写了)
3.2.根据注入点类型分类:数字型、字符型、搜索型、Json型
3.3.提交方式分类:GET,POST,Cookie,HTTP头(XFF注入、UA注入、REFERER注入)
3.4.根据查询方式分类:select、insert、delect、update、order by     
4.SQL注入各类型简析[上篇只写了3.1;3.2,3.3,3.4在这篇中写完]

1.注入点不同类型注入

1.1 数字型注入
代码写法:select * from user where id =1

由于是数字,所以一般不考虑引号闭合的问题,当然具体情况还是要具体分析。
案例演示:sqllab靶场图片

1.2 字符型注入
代码写法:select * from user where name ='x'

(一般存在单引号或者其他符号)
在进行字符型注入时,要注意闭合前后的符号,不然我们的sql语句是执行不了的
案例1:sqllab靶场演示图片图片

案例2.实战-华图教育伪静态注入漏洞(乌云网)图片

1.3 搜索型注入
代码写法:select * from user where name like '%xiaodi%'

(一般存在单引号和百分号,也会有其他符号)
案例演示:pikachu靶场图片

1.4 JOSN型注入
代码写法:SELECT username,paawd FROM users WHERE username='{$username}'

(只是可能,并不一定这样)下面为部分josn结构格式:

数字:{"age":30 },字符:{"uname":"yang"},
数组:{"sites":[{"name":"yang"},{"name":"ming"}]}

案例演示:本地代码演示

图片

查看源代码,看看sql语句,再构造payload

图片

判断数据库多少列,2正常,3报错

图片

接下来联合查询即可

图片

之后就和正常注入一样了,就不演示了。

小结:由于我们一般是黑盒,不知道源码写法所以我们要多次尝试,寻找闭合字符:',",%,),}等等 ,达到绕过的目的。

2.sql注入-提交方式类型注入

2.1 GET型注入

GET型注入也算我们平时遇到最多的注入,因为注入点就在url链接中的某一个参数中。
案例演示:sqllab靶场图片

2.2 POST型注入

这个也比较常见,当我们登录时,经常是以POST的形式进行数据提交,这里也是SQL漏洞的一个常发生地。图片

2.3 Cookie注入

cookie注入其原理也和平时的注入一样,只不过说我们是将提交的参数已cookie方式提交了。

案例演示:CTFhub靶场图片图片图片

我们这里就成功的得到了数据库名,但是要注意的一点是,在平时测试中cookie注入要么是对方使用request接收,要么就是数据库会接收cookie的值。
这里推荐使用hcakbar插件,可以更加方便快捷的进行注入测试。图片

2.4 HTTP头注入(XFF注入、UA注入、REFERER注入)

什么是http头图片这张图片箭头所指,都是他的头部信息,当然不全,当数据包存在这些信息的时候,我们可以尝试在这些地方添加我们的sql语句,来达到注入的目的。
案例演示:UA注入-CTFhub靶场图片图片

这里数据库对UA接收的数据过滤不严格,并且带入数据库查询,导致SQL注入漏洞的产生。

小结:这些地方均可能存在注入漏洞,需要我们手动测试。

3.sql注入-查询方式类注入(代码写法只是一般如此)

3.1 select 查询

在网站应用中进行数据显示查询效果

代码写法:select * from news wher id=$id

图片

3.2 Insert 插入

在网站应用中进行用户注册添加等操作

insertintonews(id,url,text)values(2,′x′,′t')

我们将注册信息抓包,发现均是注入测试点图片图片

3.3 update 更新

会员或后台中心数据同步或缓存等操作

代码写法:update user set pwd='id

图片图片

3.4 Delect 删除

后台管理里面删除文章删除用户等操作

代码写法:delete from news where id=$id

图片

3.5 order by 排列数据

order by是mysql中对查询数据进行排序的方法, 使用示例

select * from 表名 order by 列名(或者数字) asc;升序(默认升序)
select * from 表名 order by 列名(或者数字) desc;降序

案例演示:sqllab靶场46关

通过asc 和desc查看返回数据是否相同来简单判断是否存在order  by注入

图片图片

之后我们就可以使用报错或者bool进行注入了

报错回显:http://127.0.0.1:8989/sqli-labs-master/sqli-labs-master/Less-46/?sort=1 and(updatexml(1,concat(0x7e,(select database())),0));

小结:对于和后端数据库有交互的地方,都有可能存在SQL注入漏洞,需要我们认真判断和大胆尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值