SRC漏洞挖掘实用技巧

0x01 信息收集

1、Google Hack实用语法

迅速查找信息泄露、管理后台暴露等漏洞语法,例如:

filetype:txt 登录  
filetype:xls 登录  
filetype:doc 登录  
intitle:后台管理  
intitle:login
intitle:后台管理  inurl:admin  
intitle:index of /  

查找指定网站,再加上site:example.com,例如:

site:example.com filetype:txt 登录  
site:example.com intitle:后台管理
site:example.com admin
site:example.com login
site:example.com system
site:example.com 管理
site:example.com 登录
site:example.com 内部
site:example.com 系统  

关键词可以根据实际情况进行调整,推荐Google、Bing,搜索内容如果被删除,网页快照一般仍会有记录。

2、Shodan、fofa网络资产搜索引擎

Shodan、foda等网络资产搜索引擎可以用来搜索网络空间中在线设备,功能十分强大,相当于网络安全界的google:

特别是超强搜索引擎shodan,甚至可以根据logo查询互联网资产: 比如对某IP进行信息检索,点击view raw data:

找到data.0.http.favicon.data字段:

搜索相应的值即可根据企业logo查询资产:

http.favicon.hash:-1507567067  

推荐安装shodan chrome 插件,方便进行查看和使用:

https://chrome.google.com/webstore/detail/shodan/jjalcfnidlmpjhdfepjhjbhnhkbgleap  

fofa是国内的一款网络空间资产搜索引擎,与shodan类似,常见搜索语法:

title="abc" 从标题中搜索abc。例:标题中有北京的网站
header="abc" 从http头中搜索abc。例:jboss服务器
body="abc" 从html正文中搜索abc。例:正文包含Hacked by
domain="qq.com" 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站
host=".gov.cn" 从url中搜索.gov.cn,注意搜索要用host作为名称。例: 政府网站, 教育网站
port="443" 查找对应443端口的资产。例: 查找对应443端口的资产
...

实用查询语句:

body="关键词1" && country=CN&&title="关键词2"  

可以快速定位国内想要搜索的网站信息。

3、子域名收集

推荐几个好用的工具:

  • JSFinder(https://github.com/Threezh1/JSFinder)

在网站的JS文件中,会存在各种对测试有帮助的内容,JSFinder可以帮助我们获取到JS中的url和子域名的信息,拓展我们的渗透范围。爬取分为普通爬取和深度爬取,深度爬取会深入下一层页面爬取JS,时间会消耗的更长,流程如下:

  • Sublist3r(https://github.com/aboul3la/Sublist3r) Sublist3r是一个python版工具,其设计原理是基于通过使用搜索引擎,从而对站点子域名进行列举。Sublist3r目前支持以下搜索引擎:Google, Yahoo, Bing, 百度以及Ask,而未来将支持更多的搜索引擎。目前,Sublist3r同样也通过Netcraft以及DNSdumpster获取子域名。
  • 云悉(http://www.yunsee.cn/info.html) 云悉可以在线搜集子域名、ip段、CMS指纹等信息

4、github敏感信息泄露实时监控

GSIL(GitHub Sensitive Information Leakage)项目,地址: https://github.com/FeeiCN/GSIL

通过配置关键词,实时监控github敏感信息泄露情况,并发送至指定邮箱:

5、网盘搜索引擎

和github类似,网盘中往往会存在企业泄露的内部信息,同样需要关注,常见的网盘搜索引擎: 盘多多:http://www.panduoduo.net/ 盘搜搜:http://www.pansoso.com/ 盘搜:http://www.pansou.com/ 凌云风搜索:https://www.lingfengyun.com/

6、注意公众号、服务号、小程序、APP

企业的微信号、服务号、小程序、APP会帮助我们拓展攻击面,部分应用入口web中并没有,需要从公众号、小程序、APP入手,公众号中甚至会有企业用于测试的公众号、服务号,这些信息需要重点关注:

7、注册非普通用户(商户、企业用户等等)

商户、企业用户注册一般需要提交多个资料:营业执照、企业证件号等等,比较繁琐:

但不要因为麻烦放弃,此类用户由于注册难,意味着测试的人员少,往往漏洞比较多。部分平台审核不严,很多情况下提供资料注册即可通过或简单电话验证即可通过。

想办法提供各类资料注册(网上购买营业执照、公开信息收集、PS) 想办法获取到账号(撞裤、文库、QQ群、github泄漏等) 借账号/租账号/买账号

0x02 微信公众号抓包技巧

企业微信公众号可以大大拓宽我们的测试范围,公众号部分链接可以直接复制到浏览器中打开,然后按照常规的渗透测试方法进行,但是有的链接复制到浏览器后,会出现下图情况:

对于这种情况,可以通过安卓模拟器抓微信包、真机微信抓包的方式解决,但都相对不太方便,和大家分享通过SocksCap64直接抓微信PC端的流量方法。

SocksCap64是一款功能非常强大的代理客户端,支持http/https、socks4/5、TCP、UDP等协议,在内网渗透中经常使用,同样可以用他来代理微信PC客户端的流量,并将流量转发至burp中,就可以进行抓包分析。

首先还是在burp中设置监听:

然后在SocksCap64中设置代理服务器为burp的地址和端口,代理方式HTTP:

测试一下,是否成功:

然后利用SocksCap64启动微信:

即可成功抓到微信PC端的流量:

0x03 登录界面思路

0x04 短信&邮件轰炸绕过

在网站测试的过程中,常常在用户注册登录时出现手机号/邮箱注册,这里就可能出现短信&邮件炸弹漏洞,此类漏洞测试比较方便,虽然有的站点做了防护,但也有一些绕过的办法。

这里收集了部分目前较为流行的临时接收短信的网站,方便用于测试:

https://www.pdflibr.com/

http://www.z-sms.com/

https://www.receive-sms-online.info/

[国内] http://www.smszk.com/

[国外] http://receive-sms-online.com/

[国外] https://smsnumbersonline.com/

[国外] https://www.freeonlinephone.org/

[国外] https://sms-online.co/receive-free-sms

在应用手机号/邮箱和验证码作为用户登录凭证时,一般涉及到的网站功能点主要包括:

  • 账号注册
  • 首次设置密码时用户身份校验
  • 账号登录
  • 重置密码
  • 绑定手机/邮箱
  • 修改绑定手机/邮箱
  • 免费试用/活动领取/反馈处

常见的测试和绕过手段:

0x05 逻辑漏洞

随着开发人员安全意识的日益加强,IPS/IDS、WAF、全流量检测等防护设备的不断部署,传统的SQL注入漏洞、命令执行等漏洞正变得越来越少,或者越来越难挖(需要绕过各种防御设备)。但业务逻辑漏洞几乎可以bypass一切传统的安全防护设备,目前还没有非常有效的防御手段。同时,业务逻辑纷繁复杂,再资深的程序员也可能挖坑,所以只要基础扎实,逻辑思维能力强,耐心细心,不放过任何一个步骤,此类漏洞比较容易挖。

1、修改返回包的越权

场景1:修改手机号

一般的修改逻辑为:认证原手机号 -> 填写新手机号 -> 提交修改

如果在进行下一步操作时,没有校验上一步的认证是否成功时,就会存在逻辑缺陷绕过。 比如在第一步认证原手机号时,随意输入验证码,将response包中的相关字段进行修改,比如0改成1,false改成true,即可绕过第一步验证,进入填写新手机号界面,如果第三步提交修改时没有验证第一步的结果,就会造成逻辑漏洞。

乌云案例:

http://www.anquan.us/static/bugs/wooyun-2015-0120951.html

场景2:登录绕过

部分网站的身份验证放在了前端,因此只需要将response包中的相关字段进行修改,比如0改成1,false改成true,就可以登录任意用户账号。

乌云案例:

http://www.anquan.us/static/bugs/wooyun-2015-0151201.html

2、水平越权

场景1:遍历ID 在一些请求中,GET或POST中有明显的id数字参数(手机号、员工号、账单号、银行卡号、订单号等等),可以尝试进行遍历,如果程序没有对当前权限进行判断,就会存在水平越权问题。

乌云案例:

http://www.anquan.us/static/bugs/wooyun-2016-0204958.html

场景2:ID替换 如果程序对用户标识进行了hash或者加密,而又无法破解用的什么加密方式的话,就无法通过遍历ID来获取其他用户信息了。此时可以尝试注册两个账号,通过替换两个ID加密后的值,判断程序是否对权限进行了验证,如果没有,也会存在越权问题。

3、垂直越权

观察cookie中的session字段,猜测修改,发现: level=1:admin level=2:vip user level=3:normal user

说明,本教程文章仅限用于学习和研究目的,请勿用于非法用途。漏洞挖掘中应遵守SRC中的相关规则。

本文分享自微信公众号 - 湛卢工作室(xuehao_studio)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ChaMd5安全团队

php-fpm Remote Code Execution 分析(CVE-2019-11043)

国外安全研究员 Andrew Danau发现向服务器请求的URL中包含%0a 符号时,服务返回异常,疑似存在漏洞。

9440
来自专栏Java架构师历程

Nginx多个子域名映射到不同的端口或 ip

我决定采用采用 子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。

24510
来自专栏深度学习自然语言处理

【资源】NLP 算法工程师相关的面试题

https://github.com/songyingxin/NLPer-Interview

14610
来自专栏前端劝退师

一文搞定前端 Jenkins 自动化部署

这两天折腾了一下 Jenkins 持续集成,由于公司使用自己搭建的 svn 服务器来进行代码管理,因此这里 Jenkins 是针对 svn 服务器来进行的配置,...

9720
来自专栏AI科技大本营的专栏

Simple Transformer:用BERT、RoBERTa、XLNet、XLM和DistilBERT进行多类文本分类

Simple Transformers专为需要简单快速完成某项工作而设计。不必拘泥于源代码,也不用费时费力地去弄清楚各种设置,文本分类应该非常普遍且简单——Si...

30520
来自专栏Linux内核及编程语言底层相关技术研究

Git示例教程 - 命令行中图形化显示提交日志

https://github.com/wangyuntao/git-by-example

12910
来自专栏Linux内核及编程语言底层相关技术研究

Git示例教程 - 命令别名

对于那些经常使用的,或者是特别复杂的Git命令,我们可以为其设置别名,这样在我们想要执行对应的Git命令时,只要执行这个别名命令就好了,简单方便。

10220
来自专栏Linux内核及编程语言底层相关技术研究

Git示例教程 - 同步本地分支的添加删除状态到远程(或反之)

为了方便测试,我们先在GitHub上创建一个名为git-test-repo的仓库,然后将其克隆到本地,之后,我们再用相应的命令创建一个测试分支,并将其同步到远端...

13120
来自专栏edsion的小窝

浅谈自动化测试的版本控制

随着项目逐步迭代,自动化覆盖率提升,自动化测试的脚本会变得越来越复杂,我们需要在脚本中引入版本控制。

12130
来自专栏DevOps持续集成

整理Jenkins与Gitlab的交互方式

在做持续集成的过程中,项目的代码管理基本上采用的就是gitlab。在进行集成流水线的过程中需要跟gitlab做一些交互。

12010

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励