Obfuscation
Code Obfuscation
混淆是一种使脚本更难被人类阅读的技术,但从技术角度来看,它仍然能够正常工作,尽管性能可能会降低。这通常是通过使用混淆工具自动实现的,该工具将代码作为输入,并尝试根据代码的设计,以一种更难阅读的方式重写代码。
例如,代码混淆器通常会将代码转换成一个包含代码中使用的所有单词和符号的字典,然后在执行过程中尝试通过引用字典中的每个单词和符号来重建原始代码。以下是一个简单的 JavaScript 代码被混淆的示例:

Basic Obfuscation
Minifying JavaScript code
压缩 JavaScript 代码片段的可读性同时保持其全部功能的常用方法是 JavaScript 压缩。Code minification
意味着将整个代码放在一行(通常很长)中。
很多工具可以帮助我们压缩 JavaScript 代码,比如javascript-minifier。我们只需复制代码,然后点击Minify
,即可在右侧看到压缩后的输出:

Read More
HTTP Verb Tampering利用接受 HTTP 动词和方法的 Web 服务器。可以通过使用意外方法发送恶意请求来利用此攻击,这可能导致绕过 Web 应用程序的授权机制,甚至绕过其针对其他 Web 攻击的安全控制。
HTTP 有9 种不同的动词,常用的 HTTP Verb
Verb |
Description |
GET |
请求特定资源。可以通过 URL 中的查询字符串将附加数据传递给服务器(例如?param=value )。 |
POST |
将数据发送到服务器。它可以处理多种类型的输入,例如文本、PDF 和其他形式的二进制数据。此数据附加在标头后面的请求正文中。POST 方法通常用于发送信息(例如表单/登录)或将数据(例如图像或文档)上传到网站。 |
HEAD |
请求向服务器发出 GET 请求时返回的标头。它不返回请求正文,通常用于在下载资源之前检查响应长度。 |
PUT |
在服务器上创建新资源。如果在未进行适当控制的情况下允许此方法,则会导致上传恶意资源。 |
DELETE |
删除 Web 服务器上的现有资源。如果没有得到妥善保护,可能会因删除 Web 服务器上的关键文件而导致拒绝服务 (DoS)。 |
OPTIONS |
返回有关服务器的信息,例如其接受的方法。 |
PATCH |
对指定位置的资源应用部分修改。 |
TRACE |
回显服务器收到的请求,主要用于测试或诊断。 |
CONNECT |
HTTP/1.1协议中预留给能够将连接改为隧道方式的代理服务器。通常用于SSL加密服务器的连接(经由非加密的HTTP代理服务器)。 |
Insecure Configurations
Web 服务器的身份验证配置可能仅限于特定的 HTTP 方法,这会导致某些 HTTP 方法无需身份验证即可访问。
Apache Web
Apache Web 服务器存在漏洞的配置示例,该配置位于站点配置文件(例如 000-default.conf
)或 .htaccess
网页配置文件中:
1 2 3 4 5 6 7 8
| <Directory "/var/www/html/admin"> AuthType Basic AuthName "Admin Panel" AuthUserFile /etc/apache2/.htpasswd <Limit GET> Require valid-user </Limit> </Directory>
|
此配置正在设置管理 Web 目录的授权配置。但是,由于使用了 <Limit GET>
关键字,Require valid-user
设置仅适用于 GET 请求,因此页面只能通过 POST
请求访问。即使同时指定了 GET
和 POST
,页面也只能通过其他方法访问,例如 HEAD
或 OPTIONS
。
Tomcat Web
Read More