快捷搜索:  网络  后门  CVE  渗透  木马  扫描  黑客  as

代码审计之任意文件下载漏洞案例分享

*

0×00概述

继前次审计HDWiki以后,黑客技术,近来拿到一套新的源码Ear_Music_20180510_UTF8最新版进行审计,发现这套cms照样比较安全的,而当我审计遇到一处下载点的时辰发现存在安全问题,也就是任意文件下载漏洞,任意文件下载漏洞php至多见的函数就是readfile()这个函数,当内里的参数我们可以控制的话就会存在任意文件下载危害。

0×01 白盒审计

源码信息:Ear_Music_20180510_UTF8

问题文件: \template\default\source\down.php

漏洞类型:任意文件下载

站点地址:http://www.erduo.in/index.php/download/

首进步先辈行装置以后主界面以下;

3.png

由于我是习性跟着功能点走的,小我私人习性吧,有些人通读全文,有些人跟踪数据流等,各有各的利害吧,这个cms发现功能点比较多,种种编辑上传什么的,当审计遇到一个“下载LRC歌词”功能点的时辰发现是使用readfile()函数的,详细页面和代码段以下:

33.png

代码段为\template\default\source\down.php

34.png

看到readfile()函数了,这里的$file函数是用户提交的歌词信息所以说是可控的,从这段代码可以看到$file参数是通过geturl以及getfield两个函数生成的,分别跟进,起首geturl()函数路为/source/system/function_co妹妹on.php。

45.png

getfield()函数从函数名称就能看出来是用来获取数据库信息的所以此处没有写出来,重点看geturl()函数。可以看到通过一些正则来打出最后的$url参数,然则当$file参数不相符正则的时辰直接将$file参数赋给$url即你上传的什么就读取什么,读取下载的时辰未作任何过滤操作,好这时辰候我们就转向上传之处看看。

详细路径为\source\user\music\ajax.php,这边是歌词上传。

55.png

可以看到$lyric就是歌词参数,然则看到有checkrename(),unescape(),SafeRequest()三个函数过滤一个一个看,起首SafeRequest()函数,路径为\source\system\function_co妹妹on.php。

32.png

可以看到有addslashes过滤以及’\\’替代为空,一般这类替代成空的要领往往存在绕过可能。来看下一个函数unescape(),路径照样上面谁人。

555.png

可以看到内里还有SafeSql()函数,通过追踪发现也是过滤’\\’的,这里就不截图了。

最后来看下最重要的函数checkrename()函数,路径为\source\system\function_co妹妹on.php。

65.png

可以看到这里主若是使用正则来进行过滤,当匹配到”./”,”iframe”,”.php”这3个任何一个的时辰直接显示’Safety filter’字段进行过滤,还有上面几个函数是过滤”\”这个的,综合看来由于读取的时辰未作任何过滤所以可以通过输入物理路径进行任意文件的下载读取。

0×02 漏洞行使

譬如config.inc.php文件的物理路径为:

D:\phpStudy\WWW\Ear_Music_20180510_UTF8\source\system\config.inc.php

由于”\”会被过滤可使用”/”替代绕过,”.php”会被过滤可通过后面加点进行绕过,综合起来终极的payload为:

D:/phpStudy/WWW/Ear_Music_20180510_UTF8/source/system/config.inc.php

起首注册一个账号进去以后到上传音乐页面。

11.png

歌词地位填写上面的payload以后保存编辑,然后到待审音乐点击刚上传的音乐。

43.png

跳到下面页面以后点击下面的”下载LRC歌词”,即可下载我们的设置文件了。

46.png

*

您可能还会对下面的文章感兴趣: