ssrf,csrf漏洞复现

印象深刻的csrf利用:

在phpwind下:漏洞点(但是都是在后台的漏洞)

代码追:

task到unserialize,然后重写PwDelayRun的构造函数,给callback和args赋值,然后当程序执行结束,进入垃圾回收时,(进行反序列化)__destruct就会执行,此时会将call和args的恶意代码执行。

找到__destruct的位置:

php 复制代码
class PwDelayRun {
    private static $instance = null;
    private $_callback = array();
    private $_args = array();
    private function __construct() {
    }
    public function __destruct() {
        foreach (this->_callback as key => $value) {
            call_user_func_array(value, this->_args[$key]);
        }
    }
    ...
}

但是在执行时并没有加载PwDelayRun这个类:

进行反序列化的时候,如果发现不存在的类,就会传入注册好的spl_autoload函数中:

可以发现spl_autoload_register函数的调用:(最后会走入一个include)

php 复制代码
include className . '.' . self::_extensions;

命名空间中可以包含\,而在windows下,\也可以作为路径的分隔符。(由此可见,这个漏洞仅限于Windows服务器)整个phpwind全局是没有使用命名空间的,也就是默认命名空间为\,但现在的PwDelayRun类所在的命名空间并不在\下。

所以我们需要生成src\library\utility\PwDelayRun类和\PwDelayRun类两个对象,放在一个数组中,在反序列化前者的过程中include目标文件,在反序列化后者的过程中拿到PwDelayRun对象。

但是在数组传进去的过程中:会被其拦住

php 复制代码
public function beforeAction($handlerAdapter) {
    parent::beforeAction($handlerAdapter);
    var = unserialize(this->getInput('var'));
    if (is_array($var)) {
        this->setOutput(var, 'condition');
    }
}

在php源码层,对象是用数组来模拟的,所以我们只需要用一个对象代替数组即可。

最后加上csrf:

漏洞本身为后台漏洞,但漏洞又有一个特点,那就是其为GET方法,只需要一个URL即可触发。

php 复制代码
[img]http://127.0.0.1/web.php[/img]
相关推荐
溜达的大象6 小时前
服务器挂了等用户报障?我用Prometheus搭了一套监控告警,服务器出状况第一时间通知我
服务器·php·prometheus
wb0430720117 小时前
外卖大战——从阿明的“3 秒生死线“,看系统性能优化的全链路方法论
开发语言·性能优化·架构·php
郑州光合科技余经理18 小时前
海外版外卖系统:如何快速搭建国际化外卖平台
java·开发语言·前端·人工智能·小程序·系统架构·php
Cheng小攸18 小时前
协议分析与分析工具(一)
开发语言·php
酉鬼女又兒18 小时前
零基础入门计算机网络:物理层核心知识全解——传输方式分类、编码调制原理与信道极限容量计算
网络·计算机网络·考研·职场和发展·分类·数据挖掘·php
酉鬼女又兒18 小时前
零基础入门计算机网络物理层:核心概念、传输媒体、传输方式、编码调制与信道极限容量完整知识点总结
开发语言·网络·计算机网络·考研·职场和发展·php·信息与通信
三无推导19 小时前
无需扩展的 PHP 加密方案有哪些优势:基于 php.x5.chat 的实践分析
开发语言·php·web开发·数据加密·php加密·php安全·无需扩展
二等饼干~za89866819 小时前
geo优化系统源码搭建保姆式搭建教程
java·开发语言·django·php·音视频
郑州光合科技余经理19 小时前
海外版外卖系统源码:支付/地图/多语言核心代码实现
android·java·前端·后端·架构·uni-app·php
霸道流氓气质19 小时前
Spring Cloud Nacos 服务注册 IP 选择机制与配置详解
tcp/ip·spring cloud·php