Gr36_,男,阿里云云盾先知平台白帽子贡献排行榜排名第一的白帽子。

从 2016 年开始,Gr36_ 在先知平台活跃,也在国内其他众测平台“挖洞”。他对自己身份的定义是“众测玩家”。虽然 Gr36_ 在先知平台已经累计拿到 285950 元的奖金,他表示,赚取额外收入只是他成为众测玩家的原因之一,他在三年前接触众测,像玩游戏一样,爱上了这项“劳动”,有乐趣,还能交到好朋友,一起提升技能。

Gr36_认为,众测多方共赢的模式可以改变很多人的生活。

《葵花宝典》伤身,挖洞秘籍有益。

3月24日,Gr36_ 在 2017 先知白帽大会上,就传授了这种有益身心的挖洞宝典。以下为 Gr36_ 的秘籍实录,雷锋网(公众号:雷锋网)在不修改原意的基础上略有修订和删节,PPT 截图为 Gr36_ 授权雷锋网发布。

[Gr36_ 在 2017 先知白帽大会上]

0x00 信息搜集:众里寻他千百度

我们都知道打仗时搜集情报是重中之重,安全测试中前期的信息搜集工作也是关系着整个项目成败的关键因素。

众测时拿到一个给定的测试范围,比如,一个主域名,获取到的各种信息越多,拓展出去的测试范围越广,能挖到高危漏洞的概率也越大。有一些做常规信息搜集的手段,如,IP端口扫描、子域名的爆破。但是,我要介绍一些平常容易被忽略的信息。

微信公众号

时下,微信已经成为全新的社交方式,大大小小的公司也开始运营自己微信公众号,很多公司采用第三方微信公众平台,有的自己研发微商城、微官网这样的系统。

这样的系统往往存在问题,如果遇到的测试背景是第三方微信公众平台,需要多花一些精力,这样会得到比较好的效果。通过微信公众号的搜索功能,直接搜索到测试目标微信公众平台的测试程序,我发现了很多安全漏洞。

移动APP

公司系统经过长久的测试与开发,安全系数越来越高,我们挖到安全漏洞的难度也越来越大。相对而言,APP 作为最近几年才兴起的新鲜事物,很多公司在该领域的安全投入稍微欠缺,APP 也很容易成为测试过程中的突破口,因为可能用同样的业务逻辑,APP 有可能也存在安全问题。

这是WEB系统的密码找回最后一步的流程,整个流程在找回输入注册时候预留的邮箱,系统会将密码找回的链接,输入了密码以后抓包,就可以来到这一步,正常而言,KEY 的参数应该是随机生成的,但当时测试几次后发现KEY是不变的,那么 KEY 会不会是和用户身份相关的标识呢?能够从系统中找到用户的ID和KEY的对应关系,就可以重置任意一个用户的密码,但是我在整个系统中都没有找到相关踪迹,这时我把眼光投向了移动 APP ,果不其然,我在移动 APP 登录请求发现了一些蛛丝马迹,经过比对和之前密码找回的 KEY是一样的,把这两个请求组合起来就能做到——知道用户名就可重置任意用户的密码了!

passive dns

先看一个命令执行漏洞的案例。这个漏洞的奇葩之处不在于漏洞本身的利用方式有多复杂,就是一个稀疏平常的,由于拼接 os 命令造成的命令执行,关键的地方在于这个子域名是如何发现的。像这种多级子域名,光靠字典爆破是很难跑出来的,这里就是用 passive dns 数据获取到子域名数据。

通俗而言,passive dns 就是 dns 解析记录的历史数据。国内外都有提高 dns 解析历史数据的网站,利用这些网站提供的查询功能或 api ,可以获取到很多利用暴力猜解没办法获取到的子域名数据。

历史漏洞

我有一个非常深刻的感受:漏洞从来不单独出现,某个系统出现了某种类型的漏洞,说明负责开发这个系统的程序员的安全意识不强,安全编码不规范,有非常大的概率,在系统中还隐藏着没有被我们找到的漏洞。最好的例子是,前段时间肆虐各大网站的 strusts 2 命令执行漏洞,大家可以猜一下 st2 命令执行漏洞的编号会达到多少?所以,历史漏洞在众测中可以给我们提供很多参考。通过漏洞平台的历史漏洞数据,能得到很多的启示和参考。

0x01 精骛八极,心游万仞

我认为,挖洞是一项非常需要想象力的活动,在测试的过程中应该多考虑一些特殊的情景,多开脑洞。

双编码注入和宽字节注入,这两种在 PHP 源代码审计中比较的常见,但是按照经验,众测过程中,在黑盒时也可以碰到这种非常规注入,测试注入时如果只是用单引号、双引号做测试,这两种特殊的注入就跟你无缘了。

排序注入,为什么要把排序注入单独拿出来说?对大多数的程序员而言,参数化查询、预编译处理可以解决绝大部分注入处理,但是,排序注入比较特殊,预编译处理对它无效,这种注入特别容易成为漏网之鱼。

在系统中只要输入单引号系统就会返回一个空,这种情形应该不存在注入,但是,这里是不是存在全局过滤机制?遇到单引号或者是其他的特殊字符系统就返回空?我把请求变成 POST 请求,经过这样的变换,发现这个系统是可以注入的,用这种方式可以绕过程序全局的过滤。

0x02 天下大事,必作于细

细节决定成败,在测试过程中不仅要胆大而且要心细,多注意一些细枝末节,有时,会有一些比较意外的发现。我有个比较良好的习惯,喜欢察看网页的源代码。

上述案例中,我当时是以普通用户权限登录到系统中,察看网页源码中发现有一堆注释,注释包含着一些链接,这些链接看上去是管理员功能的链接,最后这个链接普通用户也可以访问,这是属于垂直权限的越权漏洞。

类似的 JS 源码也是隐藏着一些看不到的信息,这些信息往往可以往往可以打开测试的局面,我当时在测试过程中遇到后台系统,这个系统没有帐号,经过暴力破解也没有成功进入系统中,这时我去查阅系统加载的 JS 文件,其中一个文件中发现这样一个函数,看上去应该是注册函数,根据里面的逻辑拼接成一个请求,最后发现利用这个请求确实能够注册一个后台系统的帐号密码,然后就可以进一步登录后台系统进行测试。

奇葩的支付漏洞,电商网站选购完商品最后一步进行结算支付,当时选择的支付方式是网银在线,这个请求输入一个订单号,系统会返回一个表单,最终会拼接成网银在线的最终支付链接,如果不仔细看可能就不会发现里面多了一点东西。看 KEY参数,在一般支付宝或者是网银支付链接里,肯定有一个参数校验的过程,为了防止用户篡改支付过程的金额和订单号会做参数交验, KEY 会不会就是参数交验过程中遇到的密钥?当时我找到网银在线的文档,经过仔细研究,猜想 KEY 可能是参数交验所需要的密钥,根据规则结合前面的 KEY ,自己手动构造一个算参数交验,自己算出来的数值和系统反馈回来的数值一样,印证了我的猜想是正确的,我就可以结合这个规则和 KEY 构造出任意金额的支付链接,而且可以保证支付链接完完全全合法有效,所以,这可以算是真真正正的任意金额支付漏洞。

0x03 朝高危漏洞出发,不破楼兰终不还

测试过程中要有挖高危漏洞的心,如果是挖到低危或者是中危漏洞也要想方设法把它变成高危的漏洞。

某次测试中找到某个系统存在 PHP 文件包含漏洞,经过测试发现这个系统没有任何上传点,文件包含是本地文件包含,意味着无法通过上传或者是远程文件包含拿到 web shell ,这时通过文件包含漏洞继续读系统源代码,最后在某一个文件中发现了这么一行代码,这行代码意味着可以控制 session 变量,PHP的 session 保存服务器某个固定的路径下,而且文件名是固定的前缀加上 session ID,路径可以知道,session 的变量也可以控制,可以通过这个页面往 session 文件里写一句话,最终通过包含session文件的方式获取到web shell。

论坛程序,在众测的过程中遇到很多,对于这种程序大家都有自己的方法,有些是用社工管理员的帐号,或者是利用历史漏洞去入手,自带统一管理的程序。

如果仔细看过漏洞详情,就会知道 UC 有很多的 API 设计非常不安全,利用 API 爆破 UC 创始人的密码,这个爆破不受验证码请求次数的研制,爆破创始人密码可以登录 UC 的后台,相当于可以获得论坛至高无上的权限,我在众测过程中发现很多厂商对这里有一些加固,可能会做访问的限制,比如,针对源 IP 的限制,出现这种情况可以回到这里,在拿到创始人密码情况下,可以获得论坛对应的 uc key,可以结合之前UC 的漏洞进行选项,还可以进行注入,注入写本地的中转脚本,可以利用自动化工具完成。

0x04 工欲善其事,必先利其器

很多白帽子在众测的时候都用自己的专属的工具包,有些是自己定制化开发的工具,我平常使用比较多的是一款基于被动式的扫描工具,在这种被动式扫描工具出现之前,也有大牛开源了一款工具,但是要经过注入检测,我推荐的这款适用范围更广一些,技术差不多也是利用现成的轮子组合,技术含量不是很高,主要是分享一些思路。

程序搭载的流程,访问代理服务器可以抓取用户所有的请求流量,可以对流量进行存储,后端的扫描程序再对流量进行安全检测。

程序分三部分,对于 host 字段网站的域名和 IP ,会进行端口服务的识别,根据服务识别的结果再系统自动匹配调用相关的漏洞扫描的插件。系统扫描结果发现目标完善运行一个服务,自动从系统中调用爆破之类的检测脚本检测,url 会进行外部指纹的识别,识别目标网站使用中间件,系统会自动调用一些反序列化弱密码的爆破之后进行检测。对于动态页面,会调用文件包含之类的常规的外部扫描的插件进行检测。完整的流程走下来可以省去很多烦琐重复性的劳动,也可以提高扫描的效率,提高漏洞发现的准确度,达到事半功倍的效果。

用到两个框架,Tornado、Twisted,意味着在资源比较少的情况下,单机情况下都可以获得比较不错的扫描效率。

本文作者:李勤
本文转自雷锋网禁止二次转载,原文链接

干货!top白帽子 Gr36_ 手把手教你挖漏洞|2017 先知白帽大会相关推荐

  1. jade怎么查计算机用户名,干货 | 黄继武老师手把手教你利用Jade进行物相检索

    原标题:干货 | 黄继武老师手把手教你利用Jade进行物相检索 前言 Jade是一个32位Windows程序,用于处理X射线衍射数据.除基本的如显示图谱.打印图谱.数据平滑等功能外,主要功能有物相检索 ...

  2. 核磁谱图分析步骤_测试干货|核磁共振好基友MestReNova—手把手教你做出一张核磁谱图...

    核磁共振(NMR,Nuclear Magnetic Resonance)是基于原子尺度的量子磁物理性质.具有奇数质子或中子的核子,具有内在的性质:核自旋,自旋角动量.核自旋产生磁矩.NMR观测原子的方 ...

  3. 白帽子发现美军网站SQL注入漏洞,可获取敏感数据

    去年有报道称,美军收购软件漏洞为网战准备.而美军自己的网站和服务器究竟又有多安全?一名独立安全研究者已经发现了美军网站的几个较为严重的安全漏洞. 安全专家称,这些漏洞说明了美国防部网络安全基础的脆弱性 ...

  4. windbg分析dmp蓝屏文件_手把手教你分析漏洞 : CVE-2018-8120

    实验环境 双虚拟机调试 这里我把漏洞机和调试机都放在了虚拟机里,采用虚拟机调试虚拟机的好处就是可以实时保存快照,有空的时候在接着工作(其实是为了更好的加班,开个玩笑~~ 1.漏洞机的设置 在虚拟机里安 ...

  5. 白帽子,强大的XSS钓鱼漏洞,怎么获取用户的真实ip

    怎么获取用户的真实ip 在一些网站和一些用户(黑客)一般是对自己的ip进行处理,找不到真实的ip地址 11种绕过CDN查找真实IP方法 一.验证是否存在CDN 1.很简单,使用各种多地 ping 的服 ...

  6. 如何评价国内SRC纷纷上线“白帽子协议”?

    2017年6月1日21:21分 某监狱里,对话如下: 犯人A:你们都是怎么来的? 犯人B:我是XX漏洞平台挖漏洞不小心进来的. 犯人C:我是XX平台路人甲,输错命令了rm -rf / (批量删除) 犯 ...

  7. 猿学~黑客、红客、白帽子之间的技术较量,为什么大公司都有黑客团队?

    [全栈开发者2017年04月14日讯]QQ号.信用卡密码.企业核心数据库,在地下黑色产业链上,互联网上的一切信息都可能成为黑帽子黑客牟利的工具.处于防御姿态的白帽子黑客在与黑帽子黑客的较量中,赢一次不 ...

  8. 乌云和漏洞盒子停业整顿:白帽子被抓是导火索?

    "袁炜事件"可能成为中国"白帽子"黑客江湖的转折点. 7月20日凌晨,中国最大漏洞报告平台乌云网(WooYun)突然无法访问.网站公告称,乌云及相关服务将升级, ...

  9. TSRC白帽子,10亿用户的守护者

    2018年1月9日,腾讯安全应急响应中心(TSRC)一年一度的年终盛典在深圳拉开了帷幕.正如本次盛典的主题「信念」,来自全国各地的白帽子兄弟们因为同一个信念,再次聚集在一起. 开场致辞:聚力安全人,共 ...

最新文章

  1. html中有csstext方法吗,style对象的cssText方法有哪些使用方法
  2. java字符串转换成日期型对象
  3. 遗传和基因突变对神经网络训练的好处
  4. 使用Docker迁移与备份
  5. oracle学习-PL SQL 存储过程中循环
  6. 为了OFFER系列 | 牛客网美团点评数据分析刷题
  7. 013PHP文件处理——filemtime filectime fileatime date_default_timezone_set touch
  8. 在项目中让Ajax面向对象 (二)
  9. 使用CodeDom生成程序集
  10. python 3 面向过程编程
  11. 安卓linux终端 计算,5种在Linux终端中进行算术运算的方法
  12. python2添加pip,无法在python2.6中使用PIP更新/添加任何包
  13. B00015 C++实现的图类
  14. python多进程编程实例_[python] Python多进程编程技术实例分析
  15. oracle常见sql笔试题,一路SQL笔试题
  16. MYSQL 命令行大全
  17. uhs3内存卡有哪些_UHS-I与UHS-II存储卡有什么区别?
  18. 图形学基础 | mtl文件详解
  19. 构筑全云端数字生态,看游戏工业如何持续进化
  20. 深度学习中模型训练效果不好的原因以及防止过拟合的方法

热门文章

  1. python opencv 中bmp转raw格式图片并展示
  2. Ubuntu16.0.4+1080ti+ cuda9.1+cudnn7.0.5 安装 及 caffe 测试
  3. Qt安装及配置_很详细(附下载网址)
  4. Java PriorityQueue实现大顶堆
  5. 生动的解释下什么是 MySQL 的“回表”?
  6. MySQL 实战 定时备份数据库
  7. IBInspectable / IBDesignable
  8. UI调试神器 for ios:Reveal的使用与破解
  9. 如何获得images.xcassets 中图片的路径?
  10. channelinboundhandler中都包含了哪一类的方法_数据仓库、数据集市、数据湖、数据中台到底有什么区别?都得做吗?...