作为一名没入门的新手的第一篇文章,大佬轻喷, 大佬轻喷, 大佬轻喷!如有不对,欢迎指正。
这里用到的是最新版的CatFish CMS V4.8.75,是一款开源免费的个人博客及企业建站系统。
首先在官网下载并安装
安装完成后我们先来看首页,有三个可以做输入的地方:搜索、评论、留言。本着见框就插的原则我们先来看搜索框,我们在搜索框注入测试代码:再用burp suite改包提交:
我们将keyword的值修改为我们的测试代码后点击forward
可以看到测试代码并没有生效,应该是做了防护过滤,我们继续测试评论功能,这里有个限制,必须先登录再进行评论,我们注册一个账号,账号123密码123,这次我们修改一下我们的测试代码如下:
测试代码已经评论进去了但是并没有被触发,判断出这里对用户输入的内容也是做了过滤或者转义防护,我们同样的测试一下留言功能点。
在留言功能里面我们选择留言内容框插入我们的测试代码,像标题姓名跟邮箱框一般都会有一些字符类型、字符长度或特定格式的限制。跟上面一样我们输入测试代码后点击提交留言并使用burp修改数据包,但我们的测试代码还是没有被触发,好吧前台功能点测试没什么收获我们登入到后台看看:
后台功能点还是蛮多的,大致浏览一下,我们直接从写文章功能点开始测试:
我们点击代码编辑功能后插入我们的代码,然后发布,发布后我们在所有文章里面找到我们的测试文章并点击查看,我们的测试代码成功触发:
这个比较鸡肋的xss漏洞是我们通过黑盒审计程序功能点的方法找到的,那现在把漏洞出现位置的代码分析一波,并且在前面测试前台功能点的时候我们知道前台界面xss漏洞是被过滤替换掉的,我们用代码分析前后台在对于用户输入的内容分别做了怎么样的操作。
可能也有向我一样菜的不能再菜的的新手再做代码审计的时候在功能点发现了一些问题但不能快速的定位到该功能点所在的源码位置,其实用burp就可以快速定位:
我们打开代码并定位到发布文章的相关代码位置,漏洞位置在catfish\application\admin\controller\Index.php下的write方法中
可以看到在改方法里面有定义了一个标题函数$biaoti这一行,这一行代码对用户输入的内容进行了一个POST跟INSTANCE函数相关的操作,我们先回溯post函数,在catfish\catfish\library\think\Request.php文件中。post函数并没有写入一下过滤或替换的函数。
我们再看一下 INSTANCE函数,跟POST函数在同一路径,里面也没有做过滤转换:
用户输入的内容没有被过滤转换就会导致漏洞的发生。那我们再来看一下前台页面的功能点是怎么进行防护的,以留言功能为例,我们进入到catfish\application\admin\controller\Index.php里面的留言模块,发现这里用了htmlspecialchars函数对用户输入的内容转换成了html实体,导致xss注入无效。
前台做的还是不错的,可能 程序员 也觉得后台的洞太鸡肋就没加固,后台功能点很多,基本上都没做防护,可以类似这样慢慢测试。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Algorithms Unlocked
Thomas H. Cormen / The MIT Press / 2013-3-1 / USD 25.00
Have you ever wondered how your GPS can find the fastest way to your destination, selecting one route from seemingly countless possibilities in mere seconds? How your credit card account number is pro......一起来看看 《Algorithms Unlocked》 这本书的介绍吧!