[BUUCTF]从WEB题学习SOAP+CLRF注入
文章目录
- 考点
- 前言
- 代码审计(WP)
- 参考链接
考点
SOAP+CLRF+PHAR+反弹shell
前言
做自己喜欢的事情,别计较得失
这些题也太喜欢phar与反弹shell了啊这
Add:一些文章中所提到的学习链接放到了参考链接处
代码审计(WP)
首先是文件上传的部分,输入参数开头过滤了一堆协议吧,上次极客大挑战就是用compress.bzip
加上phar
绕过了,这次通过网上wp发现还可以配合php://filter/resource
绕过前缀限制,从而触发phar反序列化
首先是文件上传部分,首先就是一个文件上传只能是gif,jpg等,这里就不贴出相关代码了
下面再贴出关键页面的源码
class.php
admin.php
首先是题目中我们获取flag的位置在admin.php中的__destruct
但是要实例化admin.php中的Ad类,必须是127.0.0.1
请求,所以我们必须找到ssrf的利用点,在class.php中的__wakeup()
,可以实例化任意类,所以我们要找到发序列化的点
再看在func.php中我们知道,当我们查看我们的上传文件时,会调用getMIME,而finfo_open也会触发phar反序列化
在这里我们的流程也大致清楚了,我们首先上传phar文件,然后反序列化,这样就能调用class.php
中的__wakeup
,这个时候我们再实例化Soapclient
类,这样就能通过ssrf
访问admin.php
,而且就能调用admin.php
中的__destruct
中的系统命令了
注意:
check必须要通过,如果报错了也不能后面去执行cmd
这里用SplStack
函数构造。ReflectionMethod
创建SplStack
类即可
接下来贴出利用脚本
php://filter/resource=phar://upload/77e6b759f35bf41481b6fa20dafa7c56/f3ccdd27d2000e3f9255a7e3e2c48800.jpg
然后反弹shell
参考链接
[SUCTF 2019]Upload Labs 2 phar+Soapclient结合[SUCTF 2019]Upload Labs 2(phar反序列化)
SoapClient::SoapClientReflectionMethod::invokeWeb业务安全测试—CRLF注入