链接: https://t.me/BugBountyPLZen/24
你需要成为一名程序员吗?
免责声明:我们只讨论 Web 应用程序的研究。
让我们挑出 4 种类型的漏洞。
1.侦察漏洞
在这里,我将包括不需要与应用程序直接交互的所有内容。例如,您可以在 github 提交中从公司服务器中找到 ssh 密钥。或者,比如说,扫描服务器的端口并找到一些过时的服务,这些服务具有公开已知的漏洞。这还包括劫持在 company.com/admin 上对所有人开放且无需密码的子域或管理面板。
需要编程吗?不。
你需要什么?在这里,您需要对计算机科学有广阔的视野,可以这么说。也就是说,要了解 Web 是如何工作的,什么是 HTTP、端口、DNS、GIT、SSH 密钥等等。弄清楚如何使用专用软件(例如端口和子域扫描程序)也很好。
编程有用吗?是的,当然。例如,可以自动搜索此类漏洞。出于这些目的,我会选择某种解释型语言,例如 python(我自己使用它)。
2.应用逻辑bug
例如,您发现当您在服务器上购买产品时,连同其 ID,您在应用程序中看到的价格也会发送到服务器。事实证明,如果您修改此价格,则将以较低的成本进行购买。
例如,这可以在 OK.ru 中找到 – 几乎可以免费购买贴纸或音乐。我会在此处包括 IDOR – 请求更改具有特定 ID 的用户的密码。如果你用别人代替你自己的,会发生什么?
也许它需要一些编程?嗯,其实没有。
你需要什么?首先,您需要了解客户端如何通过 HTTP 与服务器通信,并掌握任何 HTTP/WebSocket 请求拦截器。这里的领导者是 Burp Suite。还有其他的,但是当我(很久以前)测试它们时,它们很差。
并且逻辑是非常必要的。您需要认为开发人员无法预见。或者你怎么能欺骗应用程序来获得一些额外的特权?
编程在这里有用吗?几乎不。只有逻辑和处理从客户端到服务器的请求。
3.对客户端的攻击
XSS, CSRF, CSS-exfiltration, clickjacking, JS-hijacking, 我忘了别的东西。
你需要懂编程吗?至少,你需要知道一点。您需要了解并能够阅读 HTML 和 JS。对于更复杂的 XSS 类型,比如 DOM-XSS,你需要相当了解 JS。
还需要什么?您需要了解浏览器的工作原理。这是最重要的。了解什么是 SOP、CORS、CSP。了解什么是安全标头以及它们的影响。 cookie 的工作原理以及 SameSite 策略是什么,如何绕过它。
4.对服务器的攻击
SQLi 和其他注入、SSRF、竞争条件等等。
您需要在这里了解编程吗?好吧,我想说首先你需要了解编程理论。也就是说,什么是线程,一般如何对数据库进行查询(以及注入这些查询的工作方式),应用程序的工作方式和一般结构,它由哪些组件组成,它们如何相互交互。绝对没有必要自己创建相同的应用程序。
此外,绝对没有必要了解这些应用程序所使用的所有语言。简单地理解一般原则和概念就足够了。当然,如果你是一个优秀的程序员,它会很有用,你会发现一些别人找不到的bug。
所以这是我的主要技能:
- 不是编程,而是计算机科学。 Web、浏览器、协议如何工作。到处都需要。
- HTML + JS。用于对客户端的攻击。
- Python 或其他简单的解释型语言。自动化和理解服务器编程概念。
4.其他服务器语言。研究它们的细节和功能以发现复杂的独特错误。
[…] Day039:漏洞挖掘,你需要先成为程序员吗? […]
赞赞