平台为“山东安信安全技术有限公司”自研CTF/AWD一体化平台,部分赛题采用动态FLAG形式,避免直接抄袭答案。
平台有题库、赛事预告、工具库、Writeup库等模块。
---------------------------------
eval
开启环境:
进入页面发现是一道php题,标题是eval,先查一下eval的用法
Eval,var_dump,echo的区别
var_dump()会将传入的变量打印到页面(变量类型,变量长度和变量值)
eval()会执行传入到其中的php代码
echo输出的是最终的结果(变量类型和字符串)
试试查看flag.php
因为它是个文件,用file()试试
得到flag
------------------------------------
变量1
开启环境:
根据源码发出get请求,GLOBALS这种全局变量用于在 PHP 脚本中的任意位置访问全局变量
访问发现flag
得到flag
---------------------------------------
源代码
开启环境:
进入页面 是个输入框,我们来看看源代码
发现如上代码
对这段代码URL解密得到如下代码
eval(unescape(p1) + unescape('54aa2' + p2));这段代码将p1,54aa2和p2字符串拼接并将其作为JavaScript 代码进行执行。因此我们得到最后的代码:67d709b2b54aa2aa648cf6e87a7114f1
填入框中发现flag
得到flag
--------------------------------------
文件包含
开启环境:
进入页面,看到点击,尝试点击
点击后,跳转到一个index页面,并且url后有file=show.php,根据题目和搜索知道这是典型的文件包含问题,之后尝试改为flag=index,发现不对
既然是文件包含就可以想到php伪协议
这里我们需要访问本地文件系统 构造我们的payload
?file=php://filter/read=convert.base64-encode/resource=index.php
发现一串字符进行base64解密
发现注释的flag
----------------------------------------
好像需要密码
开启环境:
来到页面,提示输入5位数密码,尝试输入密码
当然要是能直接猜出来,就真厉害了,果断抓包爆破
发送到 intruder模块进行密码字典爆破
得到密码为12468
输入密码得到flag