COCTF2024新生赛-出题人wp
这次是我第一次出题,比想象中累但是也学到了很多
出的题目质量很低,而且还老是犯错,有的思路也比较跳跃,对不住各位师傅了,喂了坨大的
WEB
你知道我看过哪些番吗?
这是一个脚本题,图片的名称就是正确答案
但是要200遍,所以就写个脚本来跑了
import requests
from bs4 import BeautifulSoup
from urllib.parse import unquote_plus
from time import sleep
import os
# 网页的URL
post_url = "http://ctf.ctbu.edu.cn:33768/"
# 使用 Session 保持会话
session = requests.Session()
# 准备初始 POST 数据
post_data = {"image_name": 0}
post_response = session.get(post_url)
for i in range(201):
# 在同一会话中发送 POST 请求
post_response = session.post(post_url, data=post_data)
# 解析HTML内容
soup = BeautifulSoup(post_response.text, "html.parser")
# 查找所有img标签
img_tags = soup.find_all("img")
# 寻找flag
if "coctf" in post_response.text:
print(post_response.text)
# 遍历img标签,提取src中的内容
for img in img_tags:
src = img.get("src")
if src and src.startswith("test/") and src.endswith(".jpg"):
# 提取test/和.jpg之间的内容
image_name = src[len("test/") : src.rfind(".jpg")]
# 准备要POST的下一轮数据 (x-www-form-urlencoded)
post_data = {"image_name": unquote_plus(image_name)}
救救文字先生!
题目描述:文字先生被魔法(post
)召唤,从另一个世界(back-end
)来到后身体被扭曲 你能找到他来到这个世界前原来的模样吗?
意思是另一个世界是后端,前端发送了post
请求到后端然后返回了flag
加载完网页后就会发出post
请求
这里的扭曲是不可逆的,是把flag
经过base64
加密然后随机位移
从何而来?
题目描述:梅普露从游戏世界通过src传送到了游戏的后台 她本来应该被拦下来 但是她的头上戴着一个证明自己是内部人员(loopback
)的彩蛋头盔(host头
) 于是她混了进去。。。。
我这题确实出的有点烂了,毕竟不只是Referer
可以判断内外网。。。
这题的小游戏其实是个幌子,实际上是伪装内网访问
指向/flag.php
路由的提示有两处,而且爬虫也可以爬出来
到达后会发现
结合题目描述可以知道是修改host头
,查看各类host头
的作用,表明来源的就是Referer
(当然,还有其他的)
其实后面为了降低难度,变为修改host
为内网网址一样允许通过
出题人在这里向大家谢罪了
登录就有..吗?
题目描述:告诉你账号密码啦,快登录吧 不知道怎么登录? 偷偷换块饼干(cookie
)吧 ;
公告:「登录就有..吗? 」提交cookie
要在/logout
路由下提交,出题人英文文盲加手贱把login
打成logout
了,导致误解,非常抱歉!
应该很多人都会在主页提交cookie
导致不成功,我谢罪QwQ
就是登录的逻辑(可惜我打错了QwQ),到了登录的路由下后会获得初始的cookie
(Set-Cookie头
)
又或者在登录路由后返回主页也可以看到已经被设置的cookie
由Server: Werkzeug/3.0.4 Python/3.10.15
可以知道是py
的环境,结合session
可以想到是flask
的cookie-session
伪造
当然,这样也比较难想到
所以后面页面的内容也可以判断出这点
看一下F12
直接搜索也可以知道
app.secret_key = "what_is_this_key_for"
是flask
设置session
加密密钥的常见方式
然后搜索可以找到加密解密的脚本
这里用的是https://github.com/noraj/flask-session-cookie-manager
先把原来设置上的默认cookie-session
解密,发现格式和密码都没问题,然后就开始按照给出的账号密码伪装
然后应用回cookie
去就可以获得flag
了
[工具题]给Neuro送饼干 (最简单)
这题照着做就有啦(为啥不做,是牛肉sama
不好看吗😭)
这题我甚至用上了gif
教啊😭(gif
点一下可以放大没人发现吗)
按照提示设置了cookie
后可以进入第二个界面
然后也是按照提示,去看http历史
就可以直接看到neuro的flag
啦
钓鱼🎣
直接访问会跳转回原来的平台页面,因为后面拦不到东西推测是前端跳转,所以清空缓存后重新拦一次
可以看到是访问了一个down.php
并带了一个get
请求之后跳转回平台,所以直接访问这个试一下。发现会下载下来down.php
。
可以看到down.php
可以对任意路径下的文件下载下来
所以直接访问
下载到flag
文件,拿到flag
hacker!!??
先F12
看一下有什么东西
访问/hm.php
POST
请求中的“envlpass
”参数的值不是“C0ba1t
”。
所以就传呗
改浏览器标识
改cookice
进来后直接看根目录的flag
Misc
CRazyBot
其实就是给bot发出的每句话都加了零宽隐写(为了实现这个效果专门找了网站原js代码来隐写方便能直接用网址解出)
把bot
的话复制下来,其实可以很明显的发现字数不对
或者拿一些像vscode
这样的打开
又或者复制到剪切板删除也会发现有不对劲的停顿
直接粘贴到网站(随便搜几个都可以)就可以解出
Comments NOTHING