【字典的收集与使用优化】
接下来,我想分享的是对我来说比较重要的一个东西,字典。对于字典其实我相信很多师傅都有自己的一套方法,但是在互联网上分享的字典或者对应的字典工具的确有点藏着掖着的感觉。
使自己的字典更强大是我这几年一直在做的事情,作为一个没有太多资源的安全爱好者,我能做的就是去收集能收集到的一切信息并做整合优化。
在上面我只是提到了枚举子域名,没有多说,因为我想把它放到这一环节来提一下。
枚举子域名是收集信息中重要的一个环节,这个环节是否能有所收获,就在于字典是否强大。
接下来我将先说下域名类字典和站点类字典的收集,说完后,我才会再说关于字典的使用与优化
【字典的获取】
用之于民,取之于民,我反过来说是因为,例如我们想拿字典来枚举子域名,那我们最好的字典数据源是什么,就是域名。
先说下子域名的字典从何而来
1.这里我一般是收集各个子域名枚举工具的已有的字典并去重,这个大家都知道
2就是个体力活了,在 rapid7的公开数据中有fdns和rnds的json数据
https://opendata.rapid7.com/sonar.rdns_v2/ https://opendata.rapid7.com/sonar.fdns_v2/
我们可以提取里面的子域名作为字典,当然这里面的数据是相当大的,其中脏数据的剔除也是需要做大量工作的,所以说是个体力活。
接着是站点类字典的收集,站点类的字典首先我是分了这样四个小类
1.目录类
2.可执行脚本类
3.参数类
4.静态资源类(js脚本名)
多下载网络上开源的web源码,通过正则提取这些源码的目录结构,可执行脚本文件名,参数名,请求方式,静态资源名(主要js脚本名)。
收集目录结构是为了爆破目录,收集可执行脚本文件名是为了爆破一些爬虫获取不到的可执行脚本文件,参数名当然也是为了爆破可执行脚本的参数,请求方式后来我反应过来没有太大必要收集,因为使用post请求,就可以囊括ge请求了,这里收集js脚本名是因为其实我碰到很多站都会把一些重要的api存放在js文件中
上面这种针对性的收集,肯定会減少爆破时遗漏的情况。
【字典的使用与优化】
字典获取解决了,但问题也来了,字典当然是越全越好,越多越好,但是也要考虑效率问题,如此庞大的字典怎么才能更高效的使用?
我们可以将字典入库,增加 dict count字段用于计数,当我们的关键词命中时,对应的dict count值加1,每次使用字典时,从数据库中 order by dict_count desc提取关键词,生成一个根据关键词命中次数降序的字典,这样经常命中的关键词就会靠前,我们使用的字典的效率也会提高,循环往复我们的字典将会越加成熟。
【业务安全】
业务安全没有可以公开说的案例,因此只是说一些技巧。
当你决定认真挖掘一家厂商时,要记住业务安全是国内SRC最看重的。业务安全中最容易出现问题的有两个环节
1.非普通用户拥有的权限,如:商家,合作方
2新上线业务针对非普通用户环节,我们需要想尽办法去获得商家,合作方,签约作者的权限,以便进行测试,这里甚至可以用上一些简单的社工方法。
新上线业务,可能有些师傅觉得不太会出现问题,但从我自己经历来看,出现问题还蛮多的,所以我们需要关注各个业务的最新动态,以便第一时间测试,例如关注微信公众号。
【APP测试】
业务离不开APP,不管是ios平台还是 Android平台都有存在APP使用证书锁定的技术的情况,所谓证书锁定就是APP将目标服务器的SSL证书放到APP里面,这个证书被用于会话配置。常规方法将无法抓到这个APP的数据包
交流学习v:Memory20000427
qq:3542167150
来源:freebuf.com 2021-07-21 12:53:25 by: 白色的空盒子
请登录后发表评论
注册