利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含
正好遇到一个题,也记录下这个东西
我们可以利用session.upload_progress
将木马写入session
文件,然后包含这个session
文件。不过前提是我们需要船家女一个session
文件,并且知道session
文件的存放位置。
session
里有一个默认选项,session.use_strict_mode
默认值为off
。
此时用户是可以自己定义Session ID
的。比如,我们在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数据,它就会清除进度信息
这里我们可以利用条件竞争来进行文件上传
下面讲个例题来实践一下:
其实这个只需要一个文件就可以了,需要进行条件竞争
构造上传的payload
1 | <html> |
抓取数据包1
抓取数据包2
最终出现phpinfo
成功获取到一个shell
这里是禁用了命令执行函数的
成功找到flag
成功解出flag