AI摘要:本文介绍了CTF-WEB中常见的绕过方法,包括密码破解、SQL注入、XSS攻击、文件上传、远程代码执行、SSRF等,并针对每种攻击方式提供了相应的绕过技巧。

博主纯纯的CTF小白,有错误请多担待,如果可以指出错误,感激不尽

  1. 密码口令破解绕过

弱密码检测绕过:
一些系统对密码尝试次数有限制,如引入验证码、临时封禁等。可以尝试以下绕过方法:
分布式破解:通过多个IP地址同时对目标进行暴力破解,绕过单个IP的封禁。
验证码绕过:如果验证码质量较低(如简单的图形或固定的模式),可以通过图像识别工具(如tesseract)自动破解,或利用脚本重复提交。
字典文件优化:根据目标背景信息制作特定的字典文件,增加破解成功的几率。例如使用泄露的密码数据库构建特定字典。

  1. SQL注入绕过

WAF绕过:
Web应用防火墙(WAF)通常会过滤常见的SQL注入特征,如SELECT、UNION等,可以通过以下方法绕过:
大小写混淆:如将SELECT改为SeLeCt,WAF可能未能正确识别。
注释符混淆:使用注释符干扰检测,如UN//ION SEL//ECT或UNION/!50000SELECT/。
编码绕过:通过URL编码、Unicode编码或双重编码,将注入的SQL语句转换成防火墙难以检测的形式。例如将'编码为%27。
盲注技术:如果显式的SQL注入被防护,可以使用布尔盲注或时间盲注,通过对响应时间或响应内容的细微差异判断注入是否成功。

  1. XSS绕过

HTML编码绕过:
大多数防御机制会将特殊字符进行编码,如将<和>转为<和>。可以通过以下方式绕过:
属性注入:如果输入被插入到HTML属性中,如

<input value="user_input">

可以尝试闭合属性并注入脚本,例如:" onmouseover="alert(1)。
事件处理器注入:XSS不一定需要直接插入绕过CSP。
内联脚本漏洞:某些CSP策略可能只允许加载特定的外部脚本资源,而内联脚本仍然可能执行。

  1. 文件上传绕过

文件扩展名绕过:
常见的文件上传限制可能只允许特定扩展名,可以通过以下方法绕过:
双重扩展名:如将文件命名为webshell.php.jpg,服务器有时只检测最后一个扩展名。
文件名中的空格或特殊符号:如webshell.php .jpg,服务器解析时可能忽略后缀。
大小写混淆:如webshell.PhP,一些服务器对扩展名不敏感,仍然可以执行代码。
MIME类型绕过:
某些系统根据MIME类型过滤上传的文件,可以通过修改HTTP请求头中的MIME类型来绕过:
使用Burp Suite等工具篡改Content-Type,将上传的文件类型伪装成允许的格式,如image/jpeg。
文件内容检查绕过:
某些系统会检查文件的头部内容,尝试如下绕过方法:
魔术字前缀:在恶意文件的开头插入合法文件的魔术字,如在PHP文件头部添加JPEG文件的魔术字FF D8 FF,使其通过检查。

  1. 远程代码执行 (RCE) 绕过

输入过滤绕过:
对于存在输入过滤的情况,可以通过如下方法绕过:
字符转义绕过:例如某些系统使用\转义危险字符,可以通过双写转义符号进行绕过:\。
字符串拼接绕过:如果使用strstr等函数进行简单的字符串过滤,可以通过构造复杂的输入绕过,如将ls; cat /etc/passwd分成l$'s';cat /etc/passwd。
沙箱绕过:
在RCE中,某些系统可能使用沙箱机制来限制命令执行,可以通过以下方法绕过:
探测系统漏洞:利用操作系统的已知漏洞,如Linux上的逃逸漏洞。
环境变量注入:通过修改环境变量,如LD_PRELOAD,加载恶意的动态库,绕过沙箱限制。

  1. SSRF绕过

URL过滤绕过:
如果系统限制了请求的目标地址,可以尝试如下绕过方法:
DNS重绑定:通过恶意域名的DNS解析,将外部服务器的地址指向本地内网地址。
IP地址混淆:通过混淆IP地址绕过检测,如使用十进制、八进制或IPv6格式的IP地址。例如,将127.0.0.1表示为0x7F000001(十六进制)或0177.0000.0000.0001(八进制)。
重定向绕过:如果目标允许重定向,攻击者可以构造一个中转服务器,在目标服务器上首先访问一个外部服务器,随后重定向到内网地址。

最后修改:2024 年 11 月 20 日
如果觉得我的文章对你有用,请随意赞赏