已知CMS
- 如常见的dedecms,discuz,wordpress等源码结构,这种一般采用非框架类开发,但是也有少部分采用框架类开发,针对此类源码程序的安全检测,我们要利用公开的漏洞进行测试,如不存在可采用白盒代码审计自行挖掘。
- 搜索漏洞公布平台,寻找单点EXP:
- https://www.cnvd.org.cn/
- https://www.seebug.org/
- https://fr.0day.today/
- https://www.exploit-db.com/
- https://packetstormsecurity.com/
- 使用工具框架进行有针对性的扫描:
- CMSScan:综合类,一款适用于WordPress、Drupal、Joomla、vBulletin的安全扫描工具
- https://github.com/ajinabraham/CMSScan
- wpscan:WordPress扫描工具
- https://github.com/wpscanteam/wpscan
- kali系统,忍者系统自带
- 使用时需要在官方(https://wpscan.com)申请一个账号(谷歌人机身份验证,必须FQ),登录后得到一个token,使用wpscan时需要带着这个token。
- 用法:wpscan --url <URL> --api-token <YourToken>
- joomscan:Joomla扫描工具
- https://github.com/OWASP/joomscan
- DrupalScan:Drupal扫描工具
- https://github.com/rverton/DrupalScan
- 其他:先识别CMS,然后网上搜索针对该CMS的漏扫工具
- CMSScan:综合类,一款适用于WordPress、Drupal、Joomla、vBulletin的安全扫描工具
- 代码审计:
- 函数点挖掘
- 功能点挖掘
- 框架类挖掘
开发框架
- 如常见的thinkphp,spring,flask等开发的源码程序,这种源码程序正常的安全测试思路:先获取对应的开发框架信息(名字,版本),通过公开的框架类安全问题进行测试,如不存在可采用白盒代码审计自行挖掘。
- 常见的PHP开发框架:Yii、Laravel、Thinkphp
- 常见的Java开发框架:Shiro、Struts、Spring、Maven
- 常见的Python开发框架:Flask、Django、Tornado
未知CMS
- 如常见的企业和个人内部程序源码,也可以是某CMS二次开发的源码结构,针对此类的程序源码测试思路:能识别二次开发就按已知CMS思路进行,不能确定二次开发的话可以采用常规综合类扫描工具或脚本进行探针,也可以采用人工探针(功能点,参数,盲猜),同样在有源码的情况下也可以进行代码审计自行挖掘。
案例演示
- 案例1:开发框架类源码渗透测试-咨讯-thinkphp
- 案例2:开发框架类源码渗透测试-咨讯-spring
- 案例3:已知CMS非框架类渗透测试-工具脚本-wordpress
- 案例4:已知CMS非框架类渗透测试-代码审计-qqyewu_php
案例1:开发框架类源码渗透测试-咨讯-thinkphp
- 1.fofa搜索"index/login/login",寻找测试网站。
- 2.构造错误的url,查看错误回显,确定网站使用thinkphp框架及其版本。
- 3.使用专门工具对thinkphp进行漏洞挖掘,比如
- TPScan(jar文件):一键ThinkPHP漏洞检测工具(参考:https://www.jeeinn.com/2021/03/1493/)
- https://github.com/tangxiaofeng7/TPScan
- TPScan(基于Python3):一键ThinkPHP漏洞检测工具:
- https://github.com/Lucifer1993/TPscan
- thinkPHP5.x远程命令执行(getshell)测试工具
- 地址:https://pan.baidu.com/s/17UOif8XD_-V_IMVAHXVlcw 提取码: 31x2
- TPScan(jar文件):一键ThinkPHP漏洞检测工具(参考:https://www.jeeinn.com/2021/03/1493/)
- 4.找到漏洞后,通过工具框架,漏洞公布平台,复现文章参考等进行漏洞利用。
案例2:开发框架类源码渗透测试-咨讯-spring
- 使用Vulhub一键搭建漏洞测试靶场(https://vulhub.org/)
- 在Vulhub网站搜索某类漏洞,按照步骤,启动环境,漏洞复现。如图
-
- 1.打开靶场
-
- 2.在注册的时候抓包,并修改成如下数据包:
-
- 3.利用bp抓包,并且修改如上
-
- 4.执行
docker-compose exec spring bash
进入容器中,可见成功创建/tmp/success
,说明命令执行成功:
-
案例3:已知CMS非框架类渗透测试-工具脚本-wordpress
- 1.环境准备:登录墨者学院,启动靶场环境:WordPress插件漏洞分析溯源。
- 靶场地址:WordPress插件漏洞分析溯源_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养 (mozhe.cn)
- 2.打开靶场
-
- 3.CMS识别:进入首页,根据底部版权信息得知,该网站CMS使用的是WordPress。或直接扫描指纹
-
- 4.使用wpscan工具扫描。
- 1.wpscan官网注册并登录账号,得到token。
- 2.kali下启动扫描:$ wpscan --url http://219.153.49.228:41640/ --api-token <mytoken>
扫描结果如下:comment rating 2.9.32 - 发现一个漏洞
-
- 5.去网上找到相关文章、poc等,进行漏洞利用。
- 1.进行百度这个漏洞
-
- 2.然后查看详细介绍
-
- 3.然后发现这里有注入点,将注入地址拼接到url中http://219.153.49.228:43075/wp-content/plugins/comment-rating/ck-processkarma.php?id=2&action=add&path=a&imgIndex=1_14_
- 4.我们访问一下这个地址
-
- 5.发现没有什么东西,于是利用sqlmap进行扫描
-
- 6.然后发现已经跑出账号密码了
-
- 1.进行百度这个漏洞
- 6.在插件编译里面写入后门
-
- 7.用菜刀链接
- 链接地址:
-
-
案例4:已知CMS非框架类渗透测试-代码审计-qqyewu_php
- 工具:seay源码审计系统
- 源码地址:https://pan.baidu.com/s/1KCa-5gU8R8jPXYY19vyvZA 提取码:xiao
- 1.打开网站
-
- 2.将网站源码放入代码审计软件中,然后自动审计
-
- 3.然后我们发现有一个获取ip的函数,该函数获取ip,然后直接用sql查询,可能存在注入
-
- 4.于是我们编译代码,便于观察
-
- 5.然后我们刷新首页,利用bp抓包,修改ip
-
- 6.于是我们发现存在sql注入漏洞,然后发现查的数据库表名为dd,查看该表的列
-
- 7.我们发现有五列,于是利用联合注入
-
- 8.已经爆出数字,于是可以爆出账号密码,我们发现成功!
-