该脚本用于验证 Apache Struts 2 漏洞(CVE-2017-5638),又称 Struts-Shock。它完全无害,不会注入任何恶意负载,仅注入一个名为 'STRUTS2-VALIDATION' 的 HTTP 头,以便验证是否存在漏洞。
由于其多线程能力,它能够在不到10分钟内运行全球范围内的2500多个应用程序。因此,它对于大规模验证企业应用程序非常方便。
运行此脚本有两种方式:带线程和不带线程,唯一的区别在于执行时间。要启用线程功能,只需传递线程参数即可。
第一个参数必须是一个包含所有目标 URL 的 TXT 文件,每行一个。请注意,这些 URL 应该是完整的,例如:https://target.com/admin/myStrutsPage.action
以下是不带线程的使用示例:
struts-shock-validation.py target_urls.txt
现在使用线程功能:
struts-shock-validation.py target_urls.txt thread
它将自动创建一个名为 results 的文件夹,每次执行时会创建一个带有日期的文件夹,其中包含执行结果。如果启用了线程,它将为每个线程创建一个名为 thread_ 的文件,这些文件可以忽略,因为完成后它会将所有线程的结果合并到一个同名的 TXT 文件中(文件名与执行文件夹的日期/时间戳相同)。