今天我们将讨论渗透测试中的JavaScript(bug-hunting)以及如何手动和自动查找JS文件中的漏洞。首先,让我们了解 JavaScript。
JavaScript 在 Web 开发中的重要性的一些关键方面:
1. Interactivity:
JavaScript 就像一根魔杖,让网页变得有趣。它允许开发人员创建很酷的图像幻灯片、弹出框和工具提示等内容。您可以单击内容,它会在不重新加载整个页面的情况下做出响应。
-
恶意软件开发
-
2. Dynamic Content:
将 JavaScript 视为实时更新的秘诀。它可以帮助网页向您显示最新信息,而无需等待整个页面再次加载。这对于实时社交媒体提要或聊天等内容非常方便,使页面感觉快速且响应迅速。
3. Form Validation:
曾经填写过一个网络表单,当你点击“提交”时感到沮丧,它对你大喊大叫,因为你错过了什么?JavaScript 有助于在您键入时检查您的输入,因此如果您犯了错误,您可以提前了解。这样,您就不太可能提交不正确的信息或忘记重要的事情。
现在很明显,JavaScript 在整个公司的许多地方被广泛使用。安全专业人员总是在寻找系统或特定技术中的漏洞,分解应用程序流,发现公共漏洞,以及我们过去自己做的所有这些事情。因此,让我仔细看看如何在渗透测试过程中使用 JavaScript,以确定一些重要的利用机会。让我们来谈谈我们的 JavaScript 需求,包括手动和自动收集它的方法,以及利用工具来识别任何潜在的漏洞。
What We Are Looking in JavaScript:
-
新端点和参数
-
敏感信息(API 密钥、授权或令牌、泄露的凭证、AWS 和 oauth 密钥等)
-
有时隐藏了应用程序当时未使用的功能
-
隐藏或内部门户/子域
手动检查 JavaScript:
在 Web 浏览器中,右键单击网页,然后选择“查看页面源代码”或“检查”。这将打开开发人员工具,您可以浏览 HTML 源代码。在 HTML 文件中查找 JavaScript 引用,这些引用通常使用标记包含在内。您可以单击这些引用来查看 JavaScript 代码。<script>
有时,开发人员会无意中将敏感数据(如密码或 API 密钥)直接包含在客户端 JavaScript 代码中。在 JavaScript 代码中检测这些信息并不一定需要广泛的 JavaScript 编程背景,也不需要多年的经验。
使用 Burp Suite 提取 JavaScript 文件:
确保设置了打嗝代理并使其在后台运行。深入研究您的目标,彻底检查其所有功能和端点。完成后,转到代理选项卡并配置过滤器,如下所示以捕获所有 JavaScript 文件。不要忘记复制所有结果并将它们保存在名为“link.txt”的文件中。
在您的 kali 机器或终端中运行以下代码以下载系统中的所有“.js”文件。
命令:wget -P jsfiles -i link.txt
-
wget 命令,可以使用 HTTP 和 FTP 协议从 Web 检索文件。
-
-P 选项指定用于保存文件的其他目录。
-
-i 选项,用于指定包含要下载的 URL 列表的文件。
之后,您可以逐个访问文件并手动检查所有关键字“api key、api_key、password、secret、token、access、pwd、url、config、aws、s3”等。请随时查看下面的 GitHub 存储库,了解正则表达式的其他示例:
https://github.com/l4yton/RegHex?source=post_page-----c95a8aa7037a--------------------------------
如果您发现任何敏感的令牌或密钥,则可以使用下面的存储库来进一步利用您的漏洞。
https://github.com/streaak/keyhacks
使用工具提取JavaScript文件:
所需工具 — 在您的 kali 或系统中安装这些工具,您将获得以下所有存储库和安装链接:
-
高:https://github.com/lc/gau
-
Waybackurls:https://github.com/tomnomnom/waybackurls
-
Httpx:https://github.com/projectdiscovery/httpx
-
Subjs:https://github.com/lc/subjs
-
核心:https://github.com/projectdiscovery/nuclei
将此代码保存在系统的 bash 文件中,此处的“target.txt”包含您的目标域。
以下是每个命令的说明:
cat target.txt | gau | grep ".js" | tee js.txt
cat target.txt | waybackurls | grep ".js" | tee -a js.txt
此命令读取 target.txt 文件的内容,通过管道将其传递到 gau 和 waybackurls 工具以提取 URL,将输出通过管道传递给 grep 以仅筛选出包含.js的 URL,最后将输出通过管道传递到 tee,以将结果写入 js.txt 文件。
cat target.txt | subjs | httpx -mc 200 | tee -a js.txt
此命令读取 target.txt 文件的内容,通过管道将其传递到 subjs 工具以提取 JavaScript 文件,将输出通过管道传递到 httpx 以检查每个文件的状态代码,仅筛选出状态代码为 200 的文件,最后将输出通过管道传递到 tee 以将结果追加到 js.txt 文件。
nuclei -l js.txt -t /root/nuclei-templates/http/exposures/ -o js_bugs.txt
此命令使用 nuclei 工具,使用位于 /root/nuclei-templates/http/exposures/ 目录中的模板扫描存储在 js.txt 文件中的 JavaScript 文件以查找漏洞。扫描结果存储在名为 js_bugs.txt 的文件中。
如上所述,我们得到了包含所有JavaScript文件的“js.txt”,GitHub中有一个工具,工具名称为“Mantra”。用于查找 JS 文件和页面中 API 密钥泄漏的工具,您可以在下面的链接中找到 GitHub 存储库和安装步骤。
Mantra
: https://github.com/MrEmpy/mantra
cat js.txt | Mantra
您可以使用 Secret finder 查找敏感的终结点和密钥。Secret Finder 是一个基于 Link Finder 的 python 脚本,用于发现 JavaScript 文件中的敏感数据,如 apikey、accesstoken、authorization、jwt 等。它通过将 python 的 jsbeautifier 与相当大的正则表达式结合使用来实现。正则表达式由四个小正则表达式组成。它们负责查找和搜索 js 文件上的任何内容。您将在下面的链接中找到 GitHub 存储库和安装步骤
Secret Finder : https://github.com/m4ll0k/SecretFinder
-
cat js.txt:此命令读取 js.txt 文件的内容,其中包含目标的所有 js 文件。
-
而读取 URL;do python3 SecretFinder.py -i $url -o cli ;done:此命令使用 while 循环从 js.txt 文件中读取每个 URL,并将其通过管道传递到 Secret Finder 工具。-i 标志指定输入文件,-o cli 标志指定应将输出写入命令行。每次扫描的结果都显示在命令行中。
-
endpoints:此命令将整个命令的输出写入 endpoints 文件。
您可以在下面的屏幕截图中显示结果。
JSFScan.sh
JSFScan.sh 是用于 Automation for JavaScript Recon in Bug 赏金的工具。您将通过此链接获得此工具 https://github.com/KathanP19/JSFScan.sh 它将提取 JS 文件,从收集的 JS 文件中提取一些敏感关键字、端点、机密、单词列表、变量等。有关此工具的更多信息,请参阅此博客:https://kathanp19.medium.com/beginners-guide-on-how-you-can-use-javascript-in-bugbounty-492f6eb1f9ea
bash JSFScan.sh -l target -all -r -o result.ru
-
-l target:这可能是用于指定目标的选项。-l 后面的值可能是扫描的目标。
-
-all:这可能是一个选项,指示您要对所有漏洞执行扫描。
-
-r:这可能是另一种选择;如果没有更多信息,就不清楚它的作用。
-
-o result.ru:这似乎是一个指定名为“result.ru”的输出文件来存储扫描结果的选项。
在上面的屏幕截图中,您可以看到我们的目标域 jsfiles 包含端点、机密等。
在这篇博文中,我们介绍了一些在狩猎目标时必不可少的基本知识。但是,当涉及到 JavaScript 文件时,有很多东西没有在帖子中介绍。另一个可用于扫描 JavaScript 文件以查找机密、URL 和其他揭示信息的工具是 JS Miner,它是一个 Burp Suite 扩展。此外,GetJS 是一种可用于从域列表中提取.js文件的工具。提取.js文件后,可以搜索特定关键字以识别潜在漏洞。
本文旨在帮助您节省渗透测试的时间,并增强您对 JavaScript 在该领域的重要性的理解。我们希望本文能为您提供有关如何在渗透测试期间优化时间的宝贵见解,并强调 JavaScript 在这种情况下的关键作用。
-
-
windows网络安全防火墙与虚拟网卡(更新完成)
-
-
windows文件过滤(更新完成)
-
-
USB过滤(更新完成)
-
-
游戏安全(更新中)
-
-
ios逆向
-
-
windbg
-
-
还有很多免费教程(限学员)
-
-
-
更多详细内容添加作者微信
-
-
原文始发于微信公众号(安全狗的自我修养):如何手动和自动查找JS文件中的漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论