-------已搬运------session.upload_progress。伪造session 反序列化 + 文件包含,,临时文件包含 ++ PHP7 的 segment fault

本文介绍了如何利用PHP的session.upload_progress特性进行文件包含攻击。首先讨论了在session反序列化中的应用,然后通过POST请求构造恶意字符串写入session。接着在Linux环境下,探讨了如何利用条件竞争避开session清理机制,实现文件包含漏洞。最后提到了PHP7中的string.strip_tags导致的SegmentFault问题。

burp不行了,就用这个的利用session.upload_progress进行文件包含。payload,来打打试试,。

1. 在session反序列化,PHP解析器的考点中使用。

PHP反序列化之SEESSION反序列化(二):切入学习点:jarvis OJ PHPINFO.
这个是利用了当session.upload_progress.enabled开启时如果我们上传了一个和session.upload_progress.name同名的变量,也就是名字为PHP_SESSION_UPLOAD_PROGRESS的时候,且为 POST 请求的时候,他就会在$_SESSION中添加一组键值对。键名就是session.upload_progress.name。然后键值就是我们POST中上传的键值,

在这里插入图片描述
上面这个jarvis oj 用到点就是PHP的反序列化解析器不同,然后 反序列化的rce。没有写入session的点,所以就用这个了,然后就将这个的值变成我们构造的恶意的反序列化的字符串。
在这里插入图片描述

POST上传这个变量,就会在session中放入这么一组键值对,然后在burp中改包,把123变成我们构造的恶意反序列化的字符串。
键值对是 post 中的 键值对中的 文件名,所以burp改的时候,就是上面的就好。
在这里插入图片描述

2. 进行文件包含:

在这里插入图片描述

这个我的锅,都说如果session.auto_start,没开的话,我们没办法自动生成一个session文件,然后大佬们就说,可以手动写一个PHPSESSID,然后就有了,我就一直在我本地尝试,但是都没有发现,在win10本地,和阿里云上面都试过了,就是没有,,然后我就猛然想到了,大佬们还说了,

我们写入这个session文件的时候,要知道不这个的文件名,并且知道session文件的存放位置。

session里有一个默认选项,session.use_strict_mode默认值为off
在这里插入图片描述
在这里插入图片描述
也就是为off的时候,我们用户是可以自己定义SESSIONID的,比如,我们在Cookie里设置PHPSESSID=flag,PHP将会在服务器上创建一个文件:/tmp/sess_flag”。即使此时用户没有初始化Session,PHP也会自动初始化Session,并产生一个键值。
注:在Linux系统中,session文件一般的默认存储位置为 /tmp 或 /var/lib/php/session

但是!
在这里插入图片描述

但是session.upload_progress.cleanup默认是开启的
在这里插入图片描述
框着的这句话意思就是说在默认情况下,session.upload_progress.cleanup是开启的,一旦读取了所有POST数据,它就会清除进度信息.

然后我们可以用

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值