All Posts

寻找你的第一个漏洞

最近 Burp Suite 社区有在收集赏金猎人对于新手的一些建议。其实,相对于国外来说,国内的白帽子的生存环境还是比较恶劣的,和国外相比,国内的白帽子的生存环境还需要进一步提高。如果想全职在中国做一名白帽子还是比较困难的,但国外全职的白帽子就比较多。自己其实在安全方面也不能算老手,之前也不是做安全挖洞出身的。自己当初第一个提交给 SRC 的漏洞还是在内网做代码审计发现的开源框架的 XSS 漏洞,当初是阿里和大众点评各一个。虽然漏洞不值钱,但当时还是比较开心的。后面也都是偶然发现的一些信息泄露,SRC 的项目也没怎么做过,不敢和那些挖洞大佬比。他们收集的一些建议我觉得有的还是非常有价值的,而且 Burp Suite 社区真的算是业界良心,且不说 Burp 作为每个安全工程师必备工具之一,他们出品的 Web Security Acedemy 简直就是业界良心,这么优秀的应用安全学习资源,居然还免费!!! 理解过程 脚本小子一时爽,一直当,一直爽。这个其实不一定是好的,对于新手来说,建议可以关注一种漏洞类型,然后深入挖掘,并且可以在一些项目中尝试去挖掘。 @0x1ntegral 专注某种特性类型漏洞 阅读这种漏洞类型的报告 在项目中寻找这种类型漏洞 当你找到一个漏洞,更改漏洞类型并重复步骤 1 @Troll_13 不要把事情过度复杂化。可以先做一些容易理解的,即使你的第一份漏洞赏金比较少,后面比较多的赏金会让你更开心。 探寻未知领域 这其实是一个对于挖掘漏洞的一个比较通用的建议,一般来说,特别老的应用或者特别新的应用都是比较容易挖到漏洞的。往往有些老的应用,经常会有一些地方会被忽视掉。 永远不要停止学习 不管你是做安全还是做开发,学习对于你来说,是永远都不能丢掉的。坚持这一点可以让你在技术的世界走得更远。 @root4loot 多读文章 @shail_official 读代码,先专注于公开的部分。阅读单元测试。 坚持尝试,不要停止。使用 burp 去现实世界中挖掘漏洞。Apache 的一系列漏洞,配置错误,反射型 XSS 以及敏感信息泄露。 总结 对于安全的技术学习,实践往往非常重要。所以向 Web Security Academy, Penteserlab, Hack the Box,这种平台都非常有意义。对于挖漏洞这件事情来说,如果作为全职职业的确非常困难,但它却是安全行业的找工作里面一个非常重要的门槛。尽管我自己也是挖漏洞也很菜,希望自己以后也可以多花点时间放在这一方面,能多挖些漏洞。实在不行,混个月饼呗。 Reference https://portswigger.net/blog/finding-your-first-bug-bounty-hunting-tips-from-the-burp-suite-community

网络安全分析的瑞士军刀--zeek

本文首发于 Freebuf 平台,https://www.freebuf.com/sectool/235587.html,转载请注明来自FreeBuf.COM Zeek (Bro) 是一款大名鼎鼎的开源网络安全分析工具。通过 Zeek 可以监测网络流量中的可疑活动,通过 Zeek 的脚本可以实现灵活的分析功能,可是实现多种协议的开相机用的分析。本文主要是将 Zeek 结合被动扫描器的一些实践的介绍,以及 Zeek 部署的踩过的一些坑。 安装 Zeek 的安装还是比较简单的,笔者主要是在 Mac 上以及 Linux 上安装。这两个操作系统的安装方式还是比较类似的。对于 Linux 而言,需要安装一些依赖包: sudo yum install cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel python-devel swig zlib-devel 这里我有遇到一个问题就是可能你的 Redhat 镜像源里面没有包含 libpcap-devel,因为这个包在可选的范围内,而内网的服务器又没有互联网连接。可以通过手工下载相应版本的 libpcap 以及 libpcap-devel 即可。 Mac 上需要的依赖更少一点,首先需要确保安装了 xcode-select,如果没有安装,可以通过 xcode-select --install 来进行安装。Mac 上只需要安装依赖 cmake, swig, openssl, bison 即可,可以通过 Homebrew 来进行安装。 依赖包安装完毕之后就可以安装 Zeek,其实是可以通过包管理工具来进行安装的,不过这里我推荐使用基于源码的安装方式,安装比较简单而且还容易排查问题。从 Zeek 的 Github Release 即可下载源码包,目前我安装的是 3.0.0 版本,注意一点是,如果使用最新的版本,可能需要 7.

让你的SQL盲注快起来

本文首发于 Freebuf 平台,https://www.freebuf.com/articles/web/231741.html SQL 注入是当前 Web 安全中最常见的安全问题之一,其危害性也比较大,众多白帽子在渗透测试过程中往往会首先着重进行 SQL 注入的测试。盲注是 SQL 注入的重要的技术之一,在现实中的 SQL 注入案例中,往往很难将注入的结果直接回显出来。因此,盲注也就成为了 SQL 注入必不可少的手段之一。本文想分享一个如何大大提升盲注效率的技巧。 与或运算 与或运算,操作符分别为 & 以及 |,大多数人应该会在实际开发过程中很少使用到与或运算。如果你之前学过计算机组成原理,里面讲了很多关于补码、反码以及各种运算。当然,我们这里不需要理解那么多知识,这里我们只需要理解与或运算就可以了。 与运算 运算规则: 0 & 0 = 0; 0 & 1 = 0; 1 & 0 = 0; 1 & 1 = 1 即:两位同时为“1”,结果才为“1”,否则为0 或运算 运算规则:0 | 0 = 0; 0 | 1 = 1; 1 | 0 = 1; 1 | 1 = 1 即:参加运算的两个对象只要有一个为1,其值为1 假设参与运算的2个数据,一个数据是1,那么另外一个的值就可以确定了,假设另外一个值为 x: 1 & x = 0, x = 0

XSS 漏洞知解 123

跨站脚本攻击(Cross-Site Scripting),为了避免与 CSS 混淆,一般简称为 XSS。XSS 作为一种典型的主要可以分为 3 种: 反射型 XSS 存储型 XSS DOM 型 XSS 关于这 3 种 XSS 类型的区别,在这就不展开了,本文主要讲解 XSS 漏洞的利用场景以及如何测试反射型 XSS,当然反射型 XSS 漏洞的测试和其它 XSS 漏洞类型的测试存在很多共同之处的。通常来说,通过 XSS 漏洞攻击者可以在受害者机器上执行任何脚本的话,包括: 可以执行受害者可以执行的任何操作 可以浏览受害者可以浏览的任何内容 可以修改受害者可以修改的任何信息 可以通过最初的受害者与应用中其他用户交互,从而发起对其他用户的攻击 不过值得注意的是,反射型 XSS 总漏洞利用过程中也会遇到较多的障碍,经常可能会遇到很多限制: cookie 设置为 httponly,无法通过 JS 直接操控 cookie 用户输入的内容被进行过滤或者编码 受害者可能并没有登录应用,或者应用用户会话与特定的因素有绑定关系,比如 IP 地址或者 MAC 地址,这种情况比较少见 典型利用场景 XSS 的利用场景其实是五花八门的,可以说只要你敢想,搞不好你就可以做得到。这里,我们可以选择两个最典型的利用场景进行讲解。在这里我主要使用 PortSwigger 的应用安全学院里面的 lab 进行讲解。 盗取 cookie 通过 XSS 漏洞盗取 cookie 可以说是最典型的利用场景了。不过现在随着 HttpOnly 的广泛应用,这一利用场景也产生了一些限制。但是 HttpOnly 也并不能完全保证 XSS 漏洞的防范,因为 HttpOnly 理论上应该覆盖所有的敏感 cookie,如果有一处没有覆盖到,就有被攻击的可能性。另外一方面,通过结合 CORS 也有突破限制的可能性。还有一个实际情况是,仍然有很多应用并没有使用 HttpOnly,本节也主要是针对这一情形的具体利用。

PWK 以及 OSCP 最常见的问题

OSCP 最近在安全圈子越来越受到认知,Offsec 最近更新了一篇博文,关于 PWK 以及 OSCP 最常见的问题。本文挑一些重点讲一下: 什么是 PWK 以及 OSCP PWK 是为信息安全专业人员设计的渗透测试培训课程,是 OffSec 的基础课程。考虑参加 PWK的 学生应具有 TCP/IP 网络,Linux 和 Bash 脚本编写的一些经验。具备 Python 或Perl 的基本知识。OSCP 则是 PWK 对应的考试,OffSec 一般都是课程对应考试,比如 AWAE 对应相应的考试 OSWE。 官方还推荐完成 OSCP 后还可以考虑以下课程: CTP 中的渗透测试技术以及漏洞利用开发功能, AWAE 中的 Web 应用程序安全技能 WIFU 中的无线安全技能 如何以及在哪参加 PWK PWK 可以在世界各地参加,只要你能联网。不过中国的网络,你懂得。官方的 PWK 课程仅由 OffSec 提供,所以不要被一些培训机构骗了。 如何注册 PWK 以及 OSCP 考试 一般来说个体只要有护照应该就可以报名了。如果你已经是学生了,你可以在你最开始购买时收到的邮件里面购买其他可能或者更多的 lab 时间。如果要注册 OSCP 考试,可以使用课程报名的欢迎邮件。 前提条件 除了上述建议的先决条件外,我们还要求学生至少 18 岁才能上课,当然也有列外,之前国外好像就有一个16岁的学生通过了考试。对于硬件,我们建议至少安装 4 GB 的 RAM,至少要有一个双核 CPU 和 20GB 的可用硬盘空间。与实验室的连接是通过使用 Kali Linux 的 OpenVPN 完成的,要使用稳定的网络,当然对于中国的学生来说非常难。

Haystack - hack the box

Introduction Target: 10.10.10.115(Linux) Kali: 10.10.16.61 HayStack is an easy box in hack the box. But it does isn’t easy at all. It’s annoying to find the user and password in the messy Spanish. For the root, you should have a basic understanding of ELK. Hence, the box is quite fresh in htb. Information Enumeration As usual, nmap is utilized to detect detailed ports and services. # Nmap 7.70 scan initiated Sun Jun 30 01:10:53 2019 as: nmap -sT -p- --min-rate 1500 -oN ports 10.

僵尸网络 Stantinko 犯罪活动新增加密货币挖矿

ESET 研究人员发现,Stantinko 僵尸网络背后的犯罪分子正在向他们控制的肉鸡分发加密货币挖矿模块。 Stantinko 僵尸网络 的操纵者已经通过一种新方法扩展了其工具集从受其控制的肉鸡中获利。多达 50 万的僵尸网络自 2012 年以来一直保持活跃,主要针对俄罗斯,乌克兰,白俄罗斯和哈萨克斯坦的用户,现在分发了一个加密货币挖矿模块。门罗币是一种加密货币,其汇率在 2019 年在 50 美元至 110 美元之间波动,自 2018 年 8 月以来,它一直是僵尸网络的获利手段。在此之前,僵尸网络进行了点击欺诈,广告注入,社交网络欺诈和密码窃取攻击。 在本文中,我们将介绍 Stantinko 的加密货币挖矿模块并对其功能进行分析。 该模块最显着的功能是它的混淆方式阻碍了分析并避免了检测。由于源代码级混淆以及随机性使用,而且 Stantinko 的操纵者会为每个新的受害者编译此模块,因此该模块的每个样本都是唯一的。 我们将在另一篇文章中为恶意软件分析人员介绍该模块的混淆技术,并提供一种处理其中某些问题的可行方法。 由于 Stantinko 一直在不断开发新的产品并改进其现有的自定义混淆器和模块,这些混淆器和模块被严重混淆,因此跟踪每个小的改进和修改非常困难。因此,我们决定仅提及和描述与早期样本相比比较重要的调整。最终,在本文中我们打算仅描述模块当前的状态。 修改后的开源加密货币挖矿软件 Stantinko 的加密货币挖矿模块通过挖掘加密货币来耗尽受感染机器的大部分资源,它是 xmr-stak 的大幅修改后的开源加密货币挖矿版本。为了逃避检测,删除了所有不必要的字符串甚至整个函数。其余的字符串和函数被严重混淆。ESET 安全产品将此恶意软件检测为 Win{32,64}/CoinMiner.Stantinko.。 挖矿代理的使用 CoinMiner.Stantinko 不会直接与其矿池进行通信,而是通过 IP 地址为从 YouTube 视频的描述中获取的代理进行通信。使用了与银行恶意软件 Casbaneiro 类似的技术在 YouTube 视频描述中隐藏数据。Casbaneiro 使用看起来更为合法的频道和描述,但目的大致相同:存储加密的 C&C。 此类视频的描述由以十六进制格式的挖矿的代理 IP 地址字符串组成。例如,图1中显示的 YouTube 视频的描述为 “03101f1712dec626”,它对应于两个十六进制格式的 IP 地址- 03101f17 对应于十进制点分四进制格式的 3.16.31[.]23,而 12dec626 对应 18.222.198[.]38。截至本文,格式已稍作调整。 IP地址当前用 “!!!!” 括起来,简化了解析过程,并防止了 YouTube 视频 HTML 结构的更改导致解析器无法正常工作。

GMail XSS 漏洞分析

原文:XSS in GMail’s AMP4Email via DOM Clobbering 译者:neal1991 welcome to star my articles-translator, providing you advanced articles translation. Any suggestion, please issue or contact me LICENSE: MIT 这篇文章是我在2019年8月通过Google 漏洞奖励计划报告的 AMP4Email 中已经修复的 XSS 的文章。该 XSS 是对著名浏览器问题 DOM Clobbering 的真实利用案例。 什么是 AMP4Email AMP4Email(也称为动态邮件)是 Gmail 的一项新功能,可以让电子邮件包含动态 HTML 内容。尽管撰写包含 HTML 标签的电子邮件已经很多年了,但通常认为 HTML 仅包含静态内容,即某种格式,图像等,没有任何脚本或表单。 AMP4Email 打算更进一步,允许电子邮件中包含动态内容。 在Google 官方 G Suite 官方博客中的帖子中,对动态邮件的使用案例进行了很好的总结 通过动态邮件,你可以轻松地直接从消息本身直接操作,例如对事件进行快速回复,填写问卷,浏览目录或回复评论。 以在 Google 文档中进行评论为例。现在,你将不再在有人在评论中提及你时接收到单独的电子邮件通知,而是会在 Gmail 中看到最新的主题,你可以在邮件中直接从中轻松回复或解决评论。 该功能引发了一些明显的安全性问题。最重要的一个可能是:跨站点脚本(XSS)?如果我们允许电子邮件中包含动态内容,是否意味着我们可以轻松地注入任意 JavaScript 代码?好吧,答案是否定的;没那么容易。

Chrome 最新零日漏洞

原文:Chrome 0-day exploit CVE-2019-13720 used in Operation WizardOpium 译者:neal1991 welcome to star my articles-translator, providing you advanced articles translation. Any suggestion, please issue or contact me LICENSE: MIT 摘要 卡巴斯基安全防护是卡巴斯基产品的一部分,过去已成功检测到许多零日攻击。最近,为 Google的 Chrome 浏览器发现了一个未知的新漏洞。我们会立即将此情况报告给 Google Chrome 安全团队。在审核了我们提供的 PoC 之后,Google 确认存在零日漏洞并将其分配为 CVE-2019-13720。 Google 已针对 Windows,Mac 和 Linux 发布了 Chrome 版本78.0.3904.87,我们建议所有 Chrome 用户尽快将其更新为最新版本!你可以点击此处阅读 Google 公告。 卡巴斯基端点产品借助漏洞利用防御组件检测漏洞。该攻击的裁决是 Exploit.Win32.Generic。 我们称这些攻击为 Operation WizardOpium。到目前为止,我们还无法与任何已知的威胁者建立明确的联系。与蓝莲花攻击有某些非常弱的代码相似性,尽管这很可能是 false flag。目标网站的配置与最近部署了类似虚假标记攻击的早期 DarkHotel 攻击更加一致。 卡巴斯基情报报告的客户可以获取有关 CVE-2019-13720 和最近的 DarkHotel 的 false flag 攻击的详细信息。有关更多信息,请联系:intelreports@kaspersky.

MyBatis 和 SQL 注入的恩恩怨怨

本文首发于安全客平台 MyBatis 是一种持久层框架,介于 JDBC 和 Hibernate 之间。通过 MyBatis 减少了手写 SQL 语句的痛苦,使用者可以灵活使用 SQL 语句,支持高级映射。但是 MyBatis 的推出不是只是为了安全问题,有很多开发认为使用了 MyBatis 就不会存在 SQL 注入了,真的是这样吗?使用了 MyBatis 就不会有 SQL 注入了吗?答案很明显是 NO。 MyBatis 它只是一种持久层框架,它并不会为你解决安全问题。当然,如果你能够遵循规范,按照框架推荐的方法开发,自然也就避免 SQL 注入问题了。本文就将 MyBatis 和 SQL 注入这些恩恩怨怨掰扯掰扯。(注本文所说的 MyBatis 默认指的是 MyBatis3) 起源 写本文的起源主要是来源于内网发现的一次 SQL 注入。我们发现内网的一个请求的 keyword 参数存在 SQL 注入,简单地介绍一下需求背景。基本上这个接口就是实现多个字段可以实现 keyword 的模糊查询,这应该是一个比较常见的需求。只不过这里存在多个查询条件。经过一番搜索,我们发现问题的核心处于以下代码: public Criteria addKeywordTo(String keyword) { StringBuilder sb = new StringBuilder(); sb.append("(display_name like '%" + keyword + "%' or "); sb.append("org like '" + keyword + "%' or "); sb.