正如题目,本文的也很直白,主要就是围绕这个问题展开。JavaScript 能否修改 Referer 请求头?现在 JavaScript 的能力越来越强大,JavaScript 似乎无所不能,修改一个小小的 Referer 请求头似乎看来不在话下(本文讨论的 JavaScript 仅限于在浏览器中执行,不包括 Nodejs)。
其实不然,在 web 浏览器中,绝大多数浏览器都禁止了 JavaScript 直接去操作 Referfer 请求头,当然这一方面也是出于安全方面的考虑。当然除了 Referer 请求头之外,还有其它请求头也被禁止通过 JavaScript 操作。
Referer 请求头属于 Forbidden header,这种请求头无法通过程序来修改,浏览器客户端一般会禁止这种行为。以 Proxy- 和 Sec- 开头的请求头都属于 Fobidden header name,还包括以下这些请求头:
Accept-Charset Accept-Encoding Access-Control-Request-Headers Access-Control-Request-Method Connection Content-Length Cookie Cookie2 Date DNT Expect Feature-Policy Host Keep-Alive Origin Proxy- Sec- Referer TE Trailer Transfer-Encoding Upgrade Via 可以通过一段简单的 demo 来进行验证。可以通过 Chrome 的开发者工具来进行验证,创建一个 xhr 请求,并且尝试来设置请求头。
可以看出,如果设置 content-type,浏览器没有阻止,但是如果设置 Referer 的话,浏览器则不允许,提示 Refused to set unsafe header "Referer"。
本文首发于安全客平台,https://www.anquanke.com/post/id/228916
起因 近期在内网发现了有个应用之前的开放重定向漏洞的绕过,通过这个漏洞绕过,我又发现了 apache/dubbo 的一个有意思的问题以及 URL 相关的话题。
之前,给内网应用提交过一个开放重定向漏洞,后面又发现这个开放重定向漏洞存在一个绕过方法。假设一个恶意 URL 为 https://evailhost#@whitehost,那么这个恶意链接依然可以实现跳转。开发说他们已经做过了白名单限制,理论上应该不存在被绕过的可能了。那么我就去看了下代码,对于重定向地址进行验证的代码类似如下。
public static String checkUrlSafety(String url, List<String> domainWhitelistSuffix, String domainWhitelist) { Url url2 = null; try { url2 = UrlUtils.parseURL(url, null); } catch (Exception e) { } String host = url2.getHost(); if (verifyDomain(host, domainWhitelistSuffix, domainWhitelist)) { return url; } else { ... } } private static boolean verifyDomain(String host, List<String> domainWhitelistSuffix, String domainWhitelist) { return domainWhitelist.
原文来自于安全客,https://www.anquanke.com/post/id/217301
终于收到了 Offsensive Security 的官方邮件通知最终结果,我的 OSWE 之旅也算是尘埃落定。打算以本文回顾一下自己的 OSWE 的准备过程,包括 AWAE 课程的学习和准备以及我在考试过程中踩得一些坑,希望对 OSWE 有兴趣的人能有所帮助。
初识 AWAE Offsensive Security,作为安全圈的人应该都熟悉这家公司,Kali 就是他们家的。他们家最广为人知的课程也是 Pentration Testing with Kali Linux(PWK),其对应的考试为 Offsensive Security Certified Professional(OSCP)。我最初结识 Offsec 也是通过 OSCP,认识了一些考 OSCP 的小伙伴,结果一直因为没(bao)有(ming)准(fei)备(tai)好(gui),迟迟没有报名。结果大佬们一个个都通过了,报名费也从799美元涨到了999美元。
所以,当 AWAE 去年年末打折的时候,我毫不犹豫的就报名了。因为相对于 OSCP 来说,我也更喜欢 OSWE,因为自己毕竟是开发出身,对于代码审计也很感兴趣。疫情期间,的确有更多的时间可以看课程。有一个建议就是,当你的 lab 开始之后,可以第一时间就预约考试,因为 OSWE 相对来说考试可以选的场次更少,越早越好,一共有3次可以重新预约考试的机会。Lab 结束之后,我也一直拖了好久,主要当时认识了几个小伙伴考试都失利了,所以我也没啥信心。最后还是硬着头皮预约了考试。
AWAE 课程 AWAE(Advanced Web Attacks and Exploitation) 是一门关于应用安全的审计课程。AWAE 经常被拿来和 OSCP 的 PWK 来进行比较,官方也有暗示 OSWE 是 OSCP 的进阶版本,OSCP 注重于漏洞的利用,而 OSWE 则更进一步,侧重于市从白盒角度去审计代码,发现安全漏洞。不过 OSCP 并不是 OSWE 的先决条件,有人认为必须先考 OSCP 才能考 OSWE,这是不正确的。因为我就没有报考 OSCP 直接考的 OSWE。不过,另外一方面,如果你通过了 OSCP,对于 OSWE 绝对是有帮助的。我也在考试过程中体会到正因为我缺乏 OSCP 的经验,导致我犯了一些低级错误。
最近 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