前言

一个平平无奇的周末,哥们儿发来消息,说自己手上有个产品安全测试搞不定,想让我帮帮忙——本来是不乐意的,但海底捞实在是香,所以有了这次受委托的产品安全测试。

一、组件漏洞排查

在测试前,开发已将【产品用到的组件】以发了过来。而咱们要做的,就是确认这些组件是否存在已披露的漏洞。

在这部分工作中,会经常用到几个平台,因此也就介绍给各位师傅。


一般情况下,此环节主要靠个人经验完成,但由于开发不一定一次把组件和版本给你说全了,因此常常需要测试到后期,比如拿到个shell,才能摸清整个的组件情况。那么,开始吧。
本次测试的组件如下:

  • ThinkPHP 3

    TP 3:但没说清楚是哪个子版本,tp<=3.2.3是存在注入漏洞的。一般可以通过路由报错来确定版本,或者在有源码时直接查看配置文件(可全局搜索THINK_VERSION)。

  • PHP 5.4

    PHP 5.4:版本不高。据我所知,首先是不存在%00截断问题(在PHP 5.3.24修复),还有其它问题吗,暂时没想到——不着急,咱们继续往后走。

二、全端口扫描

WEB产品,肯定是部署在某台主机环境上的,因此主机漏洞也需要关注,否则上线时容易被黑阔撸穿。
全端口扫描,本来是直接命令行运行nmap -p-直接冲即可。
不过,这一回,我还想介绍一种全端口扫描的技巧,利用环境变量, 先快速扫全端口,再有针对性地对开放端口做漏洞扫描,命令如下:

ports=$(nmap -p- --min-rate=1000 -T4 10.13.38.11 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -sC -sV 10.13.38.11

扫描结果: 略

三、WEB目录爆破

爆破web目录的原因呢,其实跟渗透一样:开发常常会遗漏一些未授权访问的api或备份文件,越先于攻击者找到它们,产品的风险就越低。例如Spring BootActuator未授权,就是由于/actuator/env接口未授权访问所导致的。
![图片.png](https://cdn.nlark.com/yuque/0/2020/png/166008/1604386882246-cddca7ca-8e59-4a71-9693-fe384b1a092a.png#align=left&display=inline&height=522&margin=%5Bobject%20Object%5D&name=%E5%9B%BE%E7%89%87.png&originHeight=522&originWidth=938&size=90267&status=done&style=none&width=938)
工具方面,我选用的目录爆破工具是 dirsearch + Dirbuster , 这俩都支持保存扫描结果,但我对它俩的看法是这样的:

  • dirsearch:重在快速确定重要的路径以确定问题,如actuator未授权、备份文件、api接口、常见后台等;
  • Dirbuster:重在全面地爆破路径。使用40万关键词级别的medium字典,可以爆破出不少文件夹,效果还不错。

扫描结果: 略

点击收藏 | 4 关注 | 2
登录 后跟帖