本文主要是介绍蝉(feng)知(wo)cms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文原创作者:EDI-VOID
原创投稿详情:重金悬赏 | 合天原创投稿等你来!
前言
前段时间朋友在渗透测试中遇到一个蝉知cms,于是一起审计出了不少漏洞,现在漏洞已经在新的版本中修复
正文
指纹识别
看了看源码,发现在好几个php中都存在一个判断 if(isset($_GET['mode']) and $_GET['mode'] == 'getconfig') die($app->exportConfig()); 可以通过访问/index.php?mode=getconfig来获取目标cms的版本号,所有版本都有这个漏洞,响应为json。如下图:
可以看到版本号信息
在fofa上搜了几个蝉知cms验证了一下,都可以获取到版本信息
任意文件读取
搭建好环境,在测试后台和前台的功能时,在后台发现一个上传素材的地方
上传完素材精奇的发现文件的路径,是如下格式/123/www/file.php?f=source/default/default/password.txt&t=txt&o=source&s=&v=1524910657
于是复制下载丢到地址栏里一看,发现可以读取php文件的源码,只是有的目录没有权限而已
进一步审计其源代码,发现没有任何验证身份的代码逻辑
poc上场 /file.php? f=../index.php&t=txt&o=source ,对,这里还可以跨目录,因为是cms,所以读取源代码是没有什么价值的,但是有不同的东西,就是数据库的配置文件等,于是翻阅cms的目录,发现system/config目录下的配置文件
逐个打开一看,有数据库的配置文件my.php,于是文件读取派上用场了,数了数目录层数,发现7.0版本的不可以读,有权限限制,pro1.6可以。
poc /file.php? f=../../system/config/my.php&t=txt&o=source
后台Getshell
想要getshell,就得找能生成自定义php的地方,继续测试功能,发现后台有一个编辑模版的地方,有可能有漏洞,点进去一看,这不就是直接在编辑php文件么
但是在源码里加上一句话却发现需要验证用户权限
如图所示,如果编辑模板需要管理员在cms的/system/tmp 目录下新建一个名字为jdga.txt的文件来验证权限你是否有写入权限。于是想起刚才的上传素材的地方可以跨目录上传文件,就想上传一个jdga.txt是否可以,于是操起burp抓包,数了数目录层数,把名称的参数改为../../../../../system/tmp/jdga,因为他这里本来文件名就没有后缀,说明他连接了一下字符串,我们也不必加后缀
此时成功将jdga.txt文件上传到了system/tmp目录下,绕过了权限验证
此时编辑模板,显示编辑成功
于是成功把验证的jdga.txt上传到了/system/tmp目录,此时再编辑模板文件,编辑的模板不在可以访问到的目录
继续抓包发现file参数可控
于是惯性思维,果然开发者又疏忽在了跨目录上,抓包改file参数,成功写入到www目录
验证
敬上杀器fofa
随便在前台html源码中提取一点特征,放到fofa的body关键字中搜索,于是出现一大堆蝉知cms的网站,比如搜索js的引用
body="chanzhi.all.js" 这里还可以在后面加上?v=pro1.6搜索指定版本的蝉知cms
首先getconfig获取版本号,成功
然后任意文件读取可以跨目录读取到数据库配置文件
这个配置文件的目录层数不可预测,我试了几个不一样,可以到时候自己加减目录层数尝试
试了下用数据库的帐号密码登录后台,以及换用户名为admin,没有登陆成功,有的管理员也许会疏忽把数据库密 码和后台密码设置成相同天的密码。
总结
对于一个刚入门的审计小白来说,总要总结一些大佬们早已经总结出的经验
黑盒测试从业务逻辑上下手,快速定位容易以及可能出现问题的地方。
所以审计一个cms的流程,不要从代码开始看,那就疯掉了,要先从业务逻辑开始,搭建好环境,从功能上找可能出现漏洞的地方,抓包,验证,看具体代码,面向获取更大权限的需求找其他的小漏洞或者小条件,cms是一群人开发的,每个人都有他的性格,于是相同的漏洞肯定出现好多次,比如这个跨目录。
看不过瘾?合天2017年度干货精华请点击《【精华】2017年度合天网安干货集锦》
别忘了投稿哦!
合天公众号开启原创投稿啦!!!
大家有好的技术原创文章。
欢迎投稿至邮箱:edu@heetian.com
合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哟。
有才能的你快来投稿吧!
点击了解投稿详情 重金悬赏 | 合天原创投稿等你来!
这篇关于蝉(feng)知(wo)cms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!