一次全局变量造成的RCE

简介: 一次全局变量造成的RCE

一次全局变量造成的RCE


之前和一位师傅聊天,他给我了一个rce

找他要了份源码进行审计

到手的那一刻我是懵逼的,如下:

1.exec中写死了,不可控

     2.cmd写死了,并且没有找到传参的地方

  3.popen执行的cmd,在本文件中是写死的两个不可控的

那么是如何rce的?

  我注意到了popen执行的cmd,虽然是写死的,但是在11和12行中的if else语句中,只有else if,并没有else,那么type假设不是1或2配合着全局变量即可造成rce

那么全局在哪呢?第二行include了一个json文件如下:

我们把这3,4行拎出来单独debug

如下:

下面均为cmd.php中的代码

开始debug,打上断点,访问

http://localhost/index.php?cmd=whoami

我们可以看到global中的get参数是我们的命令,也就是cmd

可以看到这里的cmd并没有被强行改变,依旧是whoami

进入到popen语句

最后在while语句中输出

成功RCE

当然,因为收的参数是request,所以post也可以造成RCE

当然除了这个,这套源码还有很多很多的rce

我们可以看到这里popen执行了cmd,而cmd中有start参数

我们在当前文件并没有找到start赋值

所以直接传参即可

qq.php?action=file&start=|echo '<?php phpinfo();?>' > 2.php||

成功RCE

后面我看了一下,漏洞点太多了,就不一一赘述了,没有什么技术含量,当是休闲之余放松了

目录
相关文章
|
安全 PHP
ctfshow-萌新-web13( 利用代码执行漏洞获取网站敏感文件)
ctf.show 萌新模块 web13关, 这一关的考点是代码执行漏洞, 需要灵活的运用各种命令执行函数, 源码中过滤了system, exec, highlight函数, cat命令, congfig, php, 点和分号等关键字, 推荐使用反引号`` 进行绕过
443 0
ctfshow-萌新-web13( 利用代码执行漏洞获取网站敏感文件)
|
16天前
|
安全 PHP
文件包含漏洞(一)代码解读
文件包含漏洞(一)代码解读
|
3月前
|
监控 安全 网络安全
初探rce中的无参数rce
无参数RCE虽然不常见,但其隐蔽性和潜在的破坏性使得它成为一种特别危险的安全威胁。防御这类攻击要求开发者和系统管理员具备深刻的安全意识和综合的安全策略。通过持续的安全培训、审计以及运用行业最佳实践,可以有效降低这类风险。安全是一个持续的过程,而不是一次性任务,面对日益复杂的安全威胁,持续的努力和关注是保障数字资产安全的关键。
40 1
|
10月前
|
安全 小程序 PHP
|
10月前
|
SQL 小程序 Shell
PHP代码审计(三)php中代码执行&&命令执行函数
string system(string command,int &return_var) 可以用来执行系统命令并直接将相应的执行结果输出 system() 输出并返回最后一行shell结果。
87 0
|
存储 JavaScript 前端开发
PHP代码审计之PHP危险函数总结
PHP代码审计之PHP危险函数总结
249 0
|
安全 PHP
ThinkPHP 2.x 任意代码执行漏洞
ThinkPHP 2.x 任意代码执行漏洞
293 0
ThinkPHP 2.x 任意代码执行漏洞
|
开发框架 安全 PHP
ThinkPHP5 5.0.20 远程代码执行漏洞
ThinkPHP是一款运用极广的PHP开发框架。其版本5中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。
1103 0
ThinkPHP5 5.0.20 远程代码执行漏洞
|
供应链 安全 IDE
RCE(任意代码执行)漏洞(CVE-2022-23205……)
RCE(任意代码执行)漏洞(CVE-2022-23205……)
|
安全 前端开发 PHP
thinkphp 代码执行 (CNVD-2018-24942)
thinkphp 代码执行 (CNVD-2018-24942)
259 0
thinkphp 代码执行 (CNVD-2018-24942)