赛题类型
- Misc
- CheckIn
- face
- DestroyJava
- Hidepig
- Web
- EasyPhp
- Reverse
- maze
Misc
CheckIn
看到二维码扫描,关注公众号,回复赣网杯,直接出现flag
face
下载解压,得到flag.txt,打开一看,是一大串表情字符,一开始联想到js表情包加解密,后来尝试无果
在github上找到相关文章
直接对应字符转码
找到转译网站直接转换成文本
拿到flag
DestroyJava
解压得到一个mp4文件
看了一下视频内容,猜测其中藏了什么信息
binwalk查看发现有jpeg图片
foremost分离
分离出jpg图片
一开始以为是图片隐写,把jpg图片放进stegsolve等工具查看了通道,都没发现什么信息
于是换个思路,steghide info 发现隐藏文件
利用网上脚本爆破出密码
爆破脚本如下
利用steghide提取出刚刚发现的隐藏文件a.jpg的信息内容,发现base64.txt,查看,发现一串编码,猜测为base85编码,直接利用python base64模块的base85解码,解出flag
Hidepig
发现流量的类型为USB,于是找到USB流量分析脚本
获得密码:381382770
得到密码之后,进行pdf隐写
打开使用wbStego4open
输入刚才得到的密码
得到flag
Web
EasyPhp
打开题目直接就给出了源码
源码接受三个参数,$sz_txt读取的文件内容要为”welcome to jxsz”
$sz_file参数会进行正则匹配flag,若匹配,则输出”Not now!”,然后退出
如果没有匹配到flag,则进入include函数
输入的password参数会进行反序列操作然后输出
分析之后
$sz_txt可以通过php://input的伪协议进行读取post进去的值,这样就可以读取到我们任意的字符
题目中注释给出了存在useless.php,我们需要读取出来查看
<?php
class Flag{
public $file;
public function __tostring(){
if(isset($this->file)){
echo file_get_contents($this->file);
echo "<br>";
return ("So cool,continue plz");
}
}
}
?>
这定义了一个Flag类,其中引入了一个魔术方法__tostring,如果存在$flag,则包含并输出其中的内容
运行之后得到O:4:“Flag”:1:{s:4:“file”;s:8:“flag.php”;}
所以构造出最终payload
得到flag
Reverse
maze
ida打开很奇怪,猜测有壳
exeinfope查壳发现是upx
工具脱壳后程序好像IAT表出现问题打不开
直接静态分析吧,上下左右对应WSAD
要求输入字符长度为48
迷宫一行30个,起点是坐标[1,1],终点是数据为2的坐标
数据如下:
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,
0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,2,0,
最后flag为:flag{DSSSDDSDSDDDDDWDDSDSSDDDDWDDSSDDWDDDDDDSSD}