NPCCTF wp
week1
web
1.play a game

可以看到,打开题目就是一个2048的小游戏,要是闲着无聊的话可以先玩一玩(bushi
左看看右看看没有什么线索,打开F12看看元素,欸,看到了这个

于是我们访问/check.php.
有个这个,于是我们输入分数,先往大量输入
欸,不行,然后我就去搜了一下2048这个游戏的理论最大值和最小值,啧,都不行。试了很多遍,最后快不想做的时候,摆烂输了个114514……就这么成了。
然后我才发现”MTEONTEO”是114514的base64编码。。我还以为是出题人姓名。
有了明文php后就好做了,这个if条件里面是或,只用满足一个就好了,所以不用数组绕过之类的东西。
下面的eval($func.$arg);直接func传入函数,arg传入命令就好了,所以payload是
?score=114514&func=system&arg=("cat /flag");

得到flag。
misc
1.r!g!b!
把附件下载下来可以看到有两个文件,一张是bmp图片,一个是exe运行文件,题目提示只能发图片,不能发文件,所以有了一个编码工具,这就是在提示要把bmp图片放到编码工具一下。


多出来一个新图片,把这张图放binwalk里检测提取一下

可以看到提取出来一个文件夹,里面有着两个文件flag.docx、768.zip。
要打开768.zip的时候提示压缩包出错,重点应该不是这个而是flag.docx,但是打不开这个文件。
放010中分析了一下发现这是有一个压缩包,改一下后缀名成flag.zip
正常情况下仍然无法打开,但用7-zip可以
可以看到里面有这些文件。
进入word文件夹里,打开那个document.xml

flag就这么出来了
flag{17f8c2dea9b8aae825b25b406a071c43}
Crypto
1.river
1 | |
解出flag为flag{two_dift3rs_0ff_t0_s33_th3_w0rld}
week2
web
1.file_manager

题目打开一看就是一个文件上传,但实际上并不是一个文件上传题目。
题目有提示
这就是在暗示我们可能要上传压缩包,等到后来,确实,上传正常的文件根本看不到
于是开始上传压缩包,开始以为是文件上传的题目,于是上传一句话木马
但点击之后是直接将文件下载下来,没有办法利用
于是我们换个思路,既然我们已知flag的位置,又可以直接点击文件,不如创建一个软链接,可以直接把flag.txt文件内容下载下来,所以我们创建软链接
1 | |
因为要上传压缩包,所以要把这个软链接压缩一下,另外要注意软链接压缩要加--symlink选项,不然上传的链接没有用
1 | |
将1.zip上传

好的,上传后点击下载,flag就在里面了。

获得flagflag{Th1s_1s_Y0ur_Fl4g}。