欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

2019 神盾杯 final Writeup(二)

来源:本站整理 作者:佚名 时间:2019-07-09 TAG: 我要投稿

前言
接之前的分析文章,本篇文章将2019 神盾杯线下赛后续两道web题也解析一下。
web3
预置后门扫描
打开源码发现是主流cms typecho,先上工具扫一波:



同时注意到版本号:

根据github的开源项目回滚到当前版本:

并进行diff:

用户名RCE

容易发现/admin/login.php处,$rememberName被反引号包裹,可以进行RCE。
SSRF漏洞
/var/Widget/XmlRpc.php:

该漏洞应该为typecho对应版本的原生漏洞,可以搜到相关信息:

那么关键点就在于过滤时,未把file协议过滤掉:
/var/Typecho/Http/Client/Adapter.php:

导致我们可以利用其进行SSRF任意文件读取:
curl "https://skysec.top/action/xmlrpc" -d 'pingback.ping
file:///flag
joychou'
web4
预置后门扫描
打开源码发现是主流框架 thinkphp,先上工具扫一波:



比较遗憾,这里后门因为隐藏非常隐蔽,所以主流静态分析工具并没有很好的识别出webshell。下面还是得靠我们自己diff。
该项目是开源项目:
https://gitee.com/liaow/JuBiWang/tree/master
thinkphp缓存机制

关于thinkphp的缓存机制,是一个老生常谈的问题,在今年强网杯final中也有相应的问题:
https://skysec.top/2019/06/16/2019-%E5%BC%BA%E7%BD%91%E6%9D%AFfinal-Web-Writeup/
这里就不再赘述了。
全局过滤器后门
通过diff发现在文件/ThinkPHP/Common/functions.php:

其中出题人自己编写了一个全局函数:
function MY_I($name,$default='',$filter=null,$datas=null)
我们和框架自带的I函数做个比较:

发现出题人使用了自己的:
MY_DEFAULT_FILTER
我们跟进一下:

发现内置内门assert,那么我们寻找调用MY_I函数的位置:
/Application/Home/Controller/ChartController.class.php:

发现方法getMarketOrdinaryJson()使用了该函数,那么可以构造如下路由进行RCE:
https://skysec.top/?s=/home/chart/getMarketOrdinaryJson&sky=phpinfo();
ssrf
通过diff,发现在文件/Application/Admin/Controller/AdminController.class.php中多了如下方法:

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载