关于在真实环境下面,这个漏洞该如何发现
这里老师把它分成了三块第一类是
#已知cms
如常见的dedecms,discuz,wordpress等源码结构,这些都是网上比较知名的php源码的cms的名称,这是我们在国内常见的几个程序,论坛discuz,博客wordpress是很常见的;他们都有个特性,他们的源码是在网上可以下载到的,我们都可以去用他的源码去搭建网站,我称之为cms;他们使用网上公开的源码搭建的网站。
针对这种网站我们用什么方法进行检测,一般采用公开漏洞进行攻击,如果没有就可以采用白盒代码审计来自行挖掘漏洞,
#开发框架
如常见的thinkphp(php),spring(java),flask(python)等开发的源码程序,这个thinkphp开发框架比较知名就是很多php网站都采用这个框架开发的;这种源码程序的测试思路:先获取对方开发框架的信息(例如名字和版本),通过公开的框架类漏洞进行安全测试,如果漏洞没有就进行白盒代码审计,这些框架在网上都可以下载到。
开发框架是对面程序的整体或者核心是用这个框架支撑的,框架以及提前给写好了,框架就跟开发引用的模块一样,比如一个文件上传,不用框架就一个一个代码写,用框架就直接引用框架,框架就是封装好的功能代码,
#未知cms
他分位两种一种可能是公司内部的,网上识别并不出来,第二种是对某cms进行了二次开发,对部分源码修改一下,但还是保留了一部分之前的;还有一种完全没有引用框架是自己一点点开发的,一般是大企业才会这样,或者个人内部;针对此类的先判断他是不是二次开发的,如果是还是cms的整体架构,用已知cms进行测试;不能确定的,我们可以用常规类综合工具和脚本去探侦扫描,也可以进行人工探针(功能点,参数,盲猜)。
功能点:比如想测试文件上传漏洞,就去找有文件上传的功能点操作。
#详解已知cms
既然是已知cms,我们可以先去漏洞平台寻找有没有公开的漏洞,
工具框架,就是针对的特定的一些已知cms的东西,比如wpscan就是针对wordpress的扫描工具,上面刚刚提到的三个已知cms都有直接特定的扫描工具,
代码审计主要分为三中,从函数点挖掘,从功能点挖掘,从框架类挖掘,
#详解开发框架
主流个的三个开发语言,php里面比较知名的框架yii,laravel,thinkphp。java框架shiro,struts,spring,maven。python框架,flask,django,tornado。
#详解未知cms
工具框架,我们不知道他是什么情况,就使用工具帮我们去扫描,例如xray,awvs。还有人工探针手工的去分析他有没有漏洞,我们要分析应用功能来判断它会产生什么漏洞,例如跨站,他的有参数传递输入的东西才会在页面中显示,才会产生跨站, 这个漏洞对应要在那种地方会产生,就要去对应的地方去找。
url参数:是我们利用抓包工具或者爬虫工具,抓到地址或者网站的请求信息,我们就可以尝试修改参数,提交方法来看对方的回显,就直接盲猜比如有参数漏洞就直接试试sql注入。
##案列:开发框架类源码渗透测试报告-资讯-thinkphp,spring
在fofa搜索了一个
打开靶场
输入个错误的url
看这里的回显错误信息,里面就写着thinkphp,
这时候就可以直接去利用thinkphp利用工具,
这个就没有漏洞,但是没有问题,我们还可以去网上搜素thinkphp5.024的漏洞利用
这些文章都可以帮助我们去测试,
还可以在漏洞平搜索公开漏洞
#spring框架漏洞演示
打卡靶场
就这个靶场了,打开虚拟机配置好靶场环境
打开打开靶场
我们看漏洞描述是在注册的时候抓包修改数据包,可以实现远程命令执行,我们看一下poc里面哪里是关于命令执行的
我们在网站注册抓包,注册抓包之后直接换成我们的pyload攻击数据包
如何我们就按照漏洞复现过程,看一下我们的容器
这里就有是我们远程执行命令创建的文件。
复现成功了。
##已知 CMS 非框架类渗透测试报告-工具脚本-wordpress
打开墨者靶场
打开靶场
我们觉得他是已知cms,第一步就是去识别他
去网上找cms识别
用这些在线网站识别他试试,除了这个还可以用cms识别工具。还可以手工去判断,直接谷歌浏览器点右键看检查,如何刷新网站看一下数据包里面有没有信息,这里就发现了复制下来
直接百度搜搜看,
就搜到了有相关的东西,可以确定他是wordpress。
接下来就可以直接百度去搜索wordpress的漏洞,或者去一些漏洞收集平台(cnvd)去搜一下看有没有关于他的漏洞,还可以直接搜索wordpress的利用工具
这些都可以对目标进行测试。
我们知道了对面是扫描cms就可以直接使用工具去打,
打开kali虚拟机直接调用wpscan
直接扫描地址
这边弹出来给报错,需要我去加上token,这个需要我们去他的官网注册账号
复制好这个token
再次开启工具
前面有一个好色感叹号的都是漏洞
这里这个sql注入找到注入点可以直接使用sqlmap跑,
这种我们发现了他的已知cms就可以利用对应的工具去测试,
##已知 CMS 非框架类渗透测试报告-代码审计-qqyewu_php
打开本地搭建和的靶场
在网搜漏洞也搜不到,因为比较小众
这时候就只能进行代码审计,打开代码审计工具
seay
直接使用代码审计的mysql语句监控
这个选项可以监控当前页面的sql语句。
刷新一下网站,点重录,之后就出现了网站所用的sql语句
然后分析那个sql语句有我们可控制的参数
别的都是数据库的参数,只有这个不像,很可能成为注入点,
因为这个是首页文件,所有就在index.php里面点开这个源码,搜索一下select
这都是html的表单,并没有找到html的语句,这种找不到就可能在包含文件里面,我们看一下他的包含文件,就打开全局搜索,直接搜索刚刚看到的sql语句,
这可能是给包含文件,搜索一下这个php文件
所以储存在这里,就可以确定这个文件是对的。
在搜索一些ywdd
这里getip是个函数,就看他调用的某个参数
然后这里sql语句的参数&ip,ip传递的是127.0.0.1,这里我们需要搜索一些getip看有它为什么得到是127.0.0.(发现这里是从数据包的首部传参的),这里就可以构造HTTP_X_FORWARDED_FOR的值来进行SQL注入。
访问网站抓包
发送出去数据包,再去看执行的sql语句
这里就更改成了8888
寻找直接必对看他显示什么数值
知道他会显示什么数据之后,在构造一下攻击语句发送出去
想要的信息全显示出来了。
这个就当与我们有对面的源码,然后通过代码审计挖掘到了这个漏洞,
xs
s