您的位置:网站首页 > php源码 > 正文

浅谈代码审计入门实战:某博客系统最新版审计之旅

类别:php源码 日期:2017-11-6 17:27:15 人气: 来源:

  第一次正式的审一次CMS,虽然只是一个很小的博客系统(提交都不一定收的那种),漏洞也都很简单,但是也算是积累了不少经验,所以最后想来还是在此做个分享,博客系统的CMS就不说了,毕竟有个官网挂着。。。缘起某日翻阅某朋友博客的时候无意间发现有个小型的CMS,反正暑假闲的无聊就去审了一下代码(正好拿来练练手),问题挺严重的,好多参数都没有进行过滤,光注入就有好多处,因为文章篇幅有限,这里就不一一列举了,这里只把我找到的漏洞中每类最典型的剖析一下。

  首先一上来就是一个很简单的洞,后台就可以万能密码绕过,问题出在这里ad/login.php先看代码

  这里我们并没有对POST和GET参数进行过滤(一开始我还以为定义了全局过滤,结果找了半天没找到,发现根本就没有过滤)所以登陆可以直接万能密码绕过

  进了后台以后我们先大致浏览一下功能,发现这里有个修改站点信息的功能,进入后台找到相应的setconfig.php我们先看一下大致的表单提交格式

  这里我们我们可以很容易发现它对我们的输入并没有进行任何过滤就直接替换了原文件的内容,我们追踪到源文件追踪到源文件

  既然是博客系统,那么最重要的一定是发布文章的模块,所以我们跟进去看一下,问题出在art.php先大致看一下代码有无过滤添加文章

  这里对$content编码进行了标签转义,检查了一下输出点后发现绕不过,想到试试别的参数,于是找到了tags参数添加文章的函数的确没有过率,然而到保存页面的时候发现存在问题,作者自己定义了一个过滤函数

  写了一堆替换,也没想到啥绕过方法,然后又换了另一个参数title这回发现这个参数并没有进行过滤,这是在输入的时候给了个不要输入特殊字符的。

  这里有个小技巧可以直接用burp直接生成csrf钓鱼页面完成后丢弃这个包,我们先看我们的管理员有几个我们先看我们的管理员有几个

  这里大概看一眼就能明白,p参数可控,且没有进行过滤,所以可以直接删除任意文件,这种任意文件删除一般可以删除install.lock从而导致重装漏洞,这里这个博客系统是安装完成后自动把安装页面直接删除了,所以暂不存在该漏洞

  看到这里可能很多同学认为id是我们可控并且没有进行任何过滤的,其实作者这里是做了过滤,关键点在这里这里是做了过滤

  这里是把$_SERVER[QUERY_STRING])与关键字做了比较,起到了一定的过滤效果,然而过滤并不完全,我们依然可以利用盲注绕过绕过很简单,这里就只贴一个payload了

  做个总结吧,代码审计还是那2种老套,第一是代码,这样的好处是可以挖掘一些逻辑漏洞,比如条件竞争之类的,第二是直接全局搜索,找关键函数,看变量是否可控,是否存在过滤balabala的,对于初学者来说个人认为最快的方法是找一篇老旧的CMS自己尝试审计一下,一般来说是前台(浏览器)找到php,后台对应找php源码看看,主抓一些函数及waf函数看看有没有绕过可能。

  推荐:

  

关键词:php博客源码
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: