SRC漏洞挖掘小见解

作者: secflag 分类: 渗透测试 发布时间: 2017-02-10 10:31

 

0x01 本文由来

前段时间一直忙着工作也没有好好的总结一下,今天趁着周末来总结一下前段时间关于漏洞挖掘的一些心得。

0x02 说在前面的话(扯淡)

漏洞挖掘我并不是什么大牛,还只是一个在慢慢摸索前行的学习者,也欢迎大家一起来交流漏洞挖掘技术。

其次本文针对的人群并不是大牛,所以也请不要喷,如果你觉得我写的不好,可以加我指导一下我,大家一起碰撞一下思路。

最后本文可能基本都是文字看起来是比较疲倦的,希望大家见谅,因为我不可能把挖的漏洞截图给大家,这个希望大家理解一下,但是来讨论没问题的。

0x03 漏洞挖掘的前期–信息收集

虽然是前期,但是却是我认为最重要的一部分;

很多人挖洞的时候说不知道如何入手,其实挖洞就是信息收集+常规owasp top 10+逻辑漏洞(重要的可能就是思路猥琐一点),这些漏洞的测试方法本身不是特别复杂,一般混迹在安全圈子的人都能复现漏洞。接下来我就着重说一下我在信息收集方面的心得。

1、域名信息收集

src一般都只收对应的漏洞,很多src的公告里面就会明确范围;然后我们就需要根据这些范围来确定域名。

如果src上面没有给出范围,那么需要我们去搜集,你需要知道哪些domain是该公司的,主要通过手工来查看:

如:

  • 网站的关于页面/网站地图
  • whois反查
  • 一些网站里面的跳转请求(也可以关注一下app)
  • 还有就是百度,有些会在title 和 copyright信息里面出现该公司的信息
  • 网站html源码:主要就是一些图片、js、css等,也会出现一些域名
  • apk反编译源码里面

…………还需要你们来补充

2、子域名信息收集

工具:

  • subdomain lijiejie的子域名收集工具(个人觉得挺好用的);
  • layer:这个工具也不错;

其他的还有很多,比如kali下的等等,不写那么多免得看着蛋疼;

但是只要是工具就会有误报,建议大家对获取的子域名写个脚本处理一下;判断哪些是可以访问的,哪些是不可以访问的,哪些访问是测试页面的。可以节约不少时间。

手工:其实也是可以工具化(爬虫思维,不过爬虫不是很准确)

利用google hacking 搜索,大家一定不要只用google 搜索,这样是不全面的,还有 bing(不用翻墙)、百度、360等等,因为很多国内的网站利用google去搜索是搜不到的。这里就不说语法了,贴几条常用的就行了。

搜集域名和mail地址:

搜集敏感文件:site:xxx.com filetype:doc

搜集管理后台:site:xxx.com 管理/site:xxx.com admin/site:xxx.com login

搜集mail:site:xxx.com intext:@xxx.com/intext:@xxx.com

搜集敏感web路径:site:xxx.com intitle:登录/site:xxx.com inurl:sql.php

3、敏感信息收集

这一块是比较大的一块,我这里举一些:

  • github源代码:网上有工具(https://github.com/repoog/GitPrey
  • svn信息泄漏:这个只能用扫描器了
  • 敏感文件:比如数据库配置文件啦(有案例的)、网站源码啊、数据库备份文件等等
  • 敏感目录:网站后台目录/一些登录地址/一些接口目录
  • email:邮箱命名规则、公司是否具有邮箱默认密码(这个可以采取社工,毕竟我司默认密码就很弱鸡)。
  • 员工号:很多oa、um、sso系统都是采用员工号登录的,所以知道员工号的规则很多时候能帮助我们进行撞库。
  • 商家信息:如果是一些具有商家系统的,能收集到一些商家账户(自己搞去,可以注册,注册资料请百度)就可以进入很多系统来测试了。

4、小结一下

其实很多时候,我们通过信息收集能得到不少的漏洞了,我这里举几个简单的案例:

  • 通过搜索引擎获取系统管理页面,直接越权访问;(说好的没有详细)
  • 通过github直接找到管理后台账号密码;
  • 通过目录/文件扫描直接得到系统信息(ip、管理员账号密码)连入服务器;
  • 当然也有很多通过信息收集得到一些东西结合其他手段;

0x04 漏洞挖掘的中期–信息处理

1、信息整理

对于第三节提到的那些信息收集技术,我们不能收集完了就完了,一定好好整理,会对后期渗透有很大的帮助。这里说一下具体怎么整理。

利用word或excel或txt 都行,我建议word 和excel 因为txt毕竟太简单了。

分类:

  • 哪些网站功能类似;
  • 哪些网站可能使用的同一模版;
  • 哪些网站有waf(这个一般在url中标明就好);
  • 哪些网站能登录(注册的账号也一定要记住,最好可以准备两个手机号,两个邮箱方便注册);
  • 哪些网站暴露过哪些类型的漏洞(这个只能去乌云上面找);
  • 网站目前有哪些功能(这个稍微关注一下网站公告,看最近是否会有业务更迭);

2、漏洞整理

我们辛苦的挖洞一定要对我们挖掘出来对漏洞有一个记录,记录的可以稍微详细一些,一是可以方便自己以后回顾,还有就是以后说不定有些地方出现了跟以前一样的功能,这样就方便我们更快的找到漏洞。这里建议doc文档,图片可以贴的详细一些。

第二个就是通过漏洞得到的一些数据:

  • 订单信息;遍历、注入
  • 用户信息:这个可以通过撞库获取、任意密码重置获取、注入
  • 数据库用户名密码:注入、配置泄漏

为什么我们要整理这些数据,因为我们要根据这些数据来设计我们的字典。爆破完好了,一样的6。

0x05 漏洞挖掘的后期–漏洞挖掘

有了前两步,这里我会写的少一点,毕竟漏洞的类型就那么些,像前文说过就是owasp top 10、逻辑,对于挖掘这些漏洞,我觉得没什么特别好的办法,就是抓包分析逻辑(这里说的不包括对软件客户端的挖掘、app的挖掘);

首先我们需要对一个网站/app有一个了解要知道它的功能点有哪些(后期我会更新一个checklist介绍一下哪些功能会对应什么样的漏洞)。

其次我们要分析这个网站/app里面的请求哪些是我们可以控制的参数,这些地方就是漏洞经常出没的点。

最后就是分析逻辑,这一类别的漏洞主要还是涉及一套流程,这里举个例子:

例:”我们买东西”

  • 首先我们要选择:
  1. 筛选涉及查询(是否可以SQL注入)
  2. 加入购物车:商品数量是否可以为负
  • 询问商家:
  1. 跳转客服系统,跳转url中是否含有用户参数
  2. xss打客服cookie
  3. 钓鱼+社工
  • 下单:
  1. 填地址,涉及插入(注入)、xss
  2. 修改单价
  3. 修改总额(这里说明一下修改总额:情况1,就是我们可能会遇到可以使用优惠卷的情况,比如我们买了100的东西只能使用5块的优惠价,但是我有一张50的优惠卷是否可以使用;情况2,打折我们是否可以修改打折的折扣;情况3,我们是否可以修改运费,将运费改为负数;情况n)
  4. 备注:xss,sql注入
  • 电子票据:
  1. 会写抬头
  • 支付:
  1. 传输过程中是否可以修改,如果是扫描二维码支付,我们可以分析一下二维码中的请求url看是否可以修改以后重新生成二维码(这里不讨论具体的支付了,因为微信和支付宝都很安全)
  • 订单完成:
  1. 是否可以遍历订单
  • 评价:
  1. 注入、上传图片、xss
  • 退货…………

附逻辑漏洞安全脑图:

大家可以无限延伸,这里只是抛砖引玉。

0x06 说在最后的几句话

其实这方面的文章很少,几个原因:

  • 大家会觉得就是经验,玩多了就自然会了,教不了什么;
  • 这种分享经验特别不好写,到现在也不知道我写了什么,其实都是一个思路点;
  • 懒,不愿意……肯定都有一定的原因;

最后就是一点建议了:

src慢慢的挖多了系统更新不快,业务不多自然就很难挖了,所以一定要有坚持精神,深入挖掘意识,因为挖洞没有想象中的那么简单;不要想一步登天,多去看看乌云的案例分析一下别人的挖掘思路,然后跟着学。

最后谢谢大家看了这么多废话!下节继续…