cookie注入

什么是cookie

Cookies:确定身份,在服务器产生,存储在客户端的一小段文本信息,格式为字典(键值对)

cookie分类:

会话级;保存在内存,浏览器关闭则丢失

持久级:保存至硬盘,只有 当失效时间到了才会清除(一般都是持久化比较多)

打开开发者模式可以进行查看

cookie如何实现鉴权:在客户端第一次访问服务器的时候就会产生cookie,通过响应头以Set-Cookie字段传输到客户端,客户端从第2次到第n次请求都会带上cookie

 

抓包查看cookie,这里我使用sqli-labs less21做演示

进行登录,抓包:

发现并没有cookie的相关数据包,但是当我们登录后再次进行操作就会看到请求头中多了cookie

 

为了进一步了解,我们可以查看源码:

126

$cookee = $_COOKIE['uname'];  //$_COOKIE[]PHP用来接收cookie的方法

 

144

$cookee = base64_decode($cookee);

 

说明服务器在接受cookie后会对cookie做base64解密,以此可以断定这关的cookie是使用base64编码的

 

146

$sql="SELECT * FROM users WHERE username=('$cookee') LIMIT 0,1";

发现解码后的cookee与数据库做了交互,并且可以断定此处为cookie注入

 

此时我们就可以构造payload了

 

-1') and 1=1 order by 3#

 

 

把编码后得到的payload传入数据包中即可

后面的步骤就是联合查询注入了,只是多了编码的步骤

 

less-22

sqli22关与前一关差不多,只是它的闭合得用双引号",所以就直接使用sqlmap跑了

python sqlmap.py -u "http://localhost/sqli-labs-master/Less-22/index.php" --batch --cookie="uname=YWRtaW4%3D"* --tamper=base64encode --threads=7 --dbms=mysql

首先使用-u “url”  指定url目标,然后是--cookie=“参数”,告诉sqlmap对cookie参数进行测试。这个参数后面的* 代表只对cookie进行测试。(节省时间) 

--batch 对测试过程中出现的执行选项选择默认选项。

--level=3  该选项可以不添加,因为已经指定了cookie参数了。

--dbms MySQL  只检测MySQL数据库,因为sqli-labs的数据库环境是mysql 为了测试的时候节省时间。

----tamper=base64encode 使用sqlmap自带的绕过脚本,前面提到cookie进行了base64加密,所以这里也得使用base64进行加密

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值