一次任意文件下载之代码审计 – 作者:星空111

本文仅限技术研究与讨论,仅用于信息防御技术,严禁用于非法用途,否则产生的一切后果自行承担!

0X01  复盘

初衷:本想数据库进去写个shell,结果绕了一大圈,这下给折腾的!

1一开始是这样的一个文档下载链接

1583678347_5e65038b0b122.png!small

2》爆路径

1583678399_5e6503bf96d08.png!small

3》尝试把file参数的地址改成/index.php,结果成功的下载了首页文件

1583680132_5e650a840ddbd.png!small

代码就不解释了,应该都能看懂

 当时的第一想法就是找数据库配置信息,直接数据库写shell,结果数据库不能外部连接,郁闷……

4》接着通过 index.php 注释信息去Baidu、Google各种姿势找源码,搜了半天没搜到,然后在index.php文件

找了一段代码去github搜索。

1583678484_5e6504141561e.png!small

Bingo! 皇天不负有心人啊,结果神奇的找到了相关源码。

Github项目地址:https://github.com/qianlimajiang/jinmaiquan/tree/master/ddd

1583678527_5e65043f2a2f8.png!small

随后下载源码审计一波,因为想审计个能直接getshell的,结果看了一圈代码又回到首页文件,因为php版本<5.3.4且magic_quotes_gpc为OFF的时候是可以利用%00截断的,刚好目标站点符合这个要求,这样就可以   http://localhost/index.php?a=../xxx.php%00 来一波任意文件包含。

1583679543_5e65083786b3b.png!small

5》既然可以任意文件文件包含,接下使劲就想办法是找上传点了!

源码里有一个kindeditor编辑器,可以通过upload_json.php这个文件构造外部上传图片

1583679611_5e65087b2b2bc.png!small

6》构造上传点

1583679646_5e65089e42f18.png!small

7》图片上传成功

1583679680_5e6508c054a2f.png!small

8》包含图片00截断getshell

1583679733_5e6508f54b66c.png!small

 

http://localhost/index.php?a=../uploadfile/image/20190410/20190410211839_24249.jpg%00

来源:freebuf.com 2020-07-04 13:40:59 by: 星空111

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论