swp
访问 /.index.php.swp,使用御剑扫描目录获取。
F12 查看源代码。分析发现 POST 传参 xdmtql 字符串中必须包含"sys nb",且不能是数组。参数需匹配 /sys.*nb/is 正则又含 sys nb,产生矛盾。
利用 PCRE 回溯次数限制绕过 preg_match 函数失效:
import requests
url = 'http://6798cfa0-6424-4490-af65-7ee1c5b6153e.www.polarctf.com:8090/'
data = {
'xdmtql': 'sys nb' + 'very' * 250000
}
r = requests.post(url=url, data=data).text
print(r)
执行脚本即可获取 Flag。
简单 rce
代码片段如下:

eval 执行需满足两个条件:GET 参数 sys 存在;POST 参数 yyds 存在。
no 函数通过正则匹配禁止了 cat 等读取命令、空格及多命令执行函数。需绕过空格过滤和未禁用的文件读取方法,使用 include 直接包含 /flag。
Payload:
/?sys=include"/flag";
POST 传参 yyds=666 即可。

蜜雪冰城吉警店
共 8 个选项,尝试点第 9 个隐藏款。
查看源代码,将 id = 8 改为 id = 9,点击最后一个提交。

召唤神龙
游戏界面,查看源代码发现 main.js 中有加密文本。
识别为 JSFuck,使用在线工具解密。

seek flag
访问 robots.txt 获取 flag3。

使用 Burp Suite 抓包,在响应中找到 flag2。

修改 Cookie 的 id 为 1 发送请求获取 flag1。

拼接得到完整 Flag(Web 类 Flag 动态变化)。
jwt
登录界面。
在源代码网络请求中发现 Base64 加密字符串,解码后无明显信息。
注册普通用户,查看源码发现 JWT 及值。

使用 jwt-cracker 爆破密钥为 SYSA。
伪造 JWT,用户名改为 admin。

使用 Yakit 构造请求。

login
按 F12 有登录提示,输入显示登陆成功。
使用 Burp Suite 抓包,尝试攻击,学号不断递增,从 2 开始每个学号对应的请求返回 Flag 的一部分。

拼接得到 Flag。
iphone
打开界面,Enter 无信息。
查看代码提示改 UA,使用 Burp Suite 或 HackBar 将 User Agent 改为 iPhone。

浮生日记
F12 看代码,Title 提示弹窗。
无 SSTI,结合题目名想到 JS 注入。
写入 输入变空。
闭合 value 值,双写绕过:
"><scriscriptpt>alert(1)</scriscriptpt>
点击获得 Flag。

$$
得到 PHP 代码。
重点是变量覆盖和正则绕过,用 GET 传参 c 给变量 (符号为$) a,正则绕过下面的符号。
先尝试 FLAG,输出 NULL;使用超全局变量 GLOBALS,构造 ?c=GLOBALS 查看。

爆破
一段 PHP 代码。
检查经过 MD5 加密后的字符串特定位置字符是否相同(第 2、15、18 位)。若相同,计算第 2、15、18 位整数值相加除以第 2 位,结果等于第 32 位整数值。
访问 /?pass=text,Burp Suite 爆破。
根据长度找到可疑之处,得到 Flag。
还可直接访问 flag.php。

XFF
提示使用 XFF 构造。

构造 XFF 发送给重放器,查看响应。

rce1
由 PHP 代码可知,GET 传入 ip 参数,通过正则表达式过滤空格,无空格才执行 ping -c 4 {$ip} 命令。
使用管道符,输入命令 127.0.0.1|ls,返回 fllllaaag.php。
直接查看源码。

GET-POST
根据代码,先 GET 传参,再 POST 传参即可。

被黑掉的站
扫目录,访问 index.php.bak 获取字典。
访问 shell.php,字典爆破。

签到题
BP 抓包,发现 cookie 初始值为 no。
改为 yes,发包,发现一串 Base64 加密字符串,在线解密。
直接访问。
分析代码,GET 传参 file,过滤把 ../替换为空,拼接.php 后缀,包含文件。
PHP 伪协议结合双写绕过,用伪协议以 base64 编码进行内容读取。
Base64 解密即可。

签到
提交无法点击,F12 查看源代码,在元素里将 disabled 删去。
随便输一个数给提示,发现复制不全。
把 maxlength 调大一点,提交获得 Flag。

session 文件包含
随便输入无信息。
查看源码,发现是 PHP 伪协议。
当通过 POST 传入 name 参数时,PHP 会把 Session 数据写入服务器本地的 Session 文件。如果在 name 里传入恶意 PHP 代码,这段代码会被写入 Session 文件。再利用 include($_GET['file']) 的 LFI 漏洞,包含这个 Session 文件,PHP 就会执行里面的恶意代码。
先抓包,看到 PHPSESSID,将 PHP 语句包含到 sess_ctf 文件中,发送,再传入一句话木马。
发现了 flaggggg 文件,继续查看发送即可。

Don't touch me
F12 查看源代码,发现有 2.php,访问。
发现 click 不能点击,查看源代码,有个 disabled,删掉即可。
click,查看源代码,发现有 fla.php,访问即可。

robots
根据题目提示,访问 robots.txt。
继续访问即可。

php very nice
一段 PHP 代码,是 PHP 反序列化。
对 $_GET['a'] 进行了 unserialize 反序列化操作,且类中存在 __destruct 魔术方法调用了危险的 eval() 函数执行代码。
构造一个 Example 类的对象,把 $sys 属性改成想执行的 PHP 代码,再将对象序列化成字符串,通过 ?a= 传入。
<?php class Example { public $sys = 'system("ls");'; }
$a = new Example();
echo urlencode(serialize($a));
?>
运行,GET 传参。
发现有 flag.php,但直接访问不行,需要通过代码,将 ls 换成查看 flag.php,需使用 tac 命令。
<?php class Example { public $sys="system('tac cat flag.php');"; }
$a = new Example();
var_dump(serialize($a));
?>
运行,GET 传参即可。

ezupload
上传 GIF 文件,上传一句话木马,把文件后缀改成 gif,上传并抓包,将 1.gif 换成 1.php 发包。
蚁剑连接,找到 Flag。

cookie 欺骗
根据网页提示,只有 admin 用户才能获得 Flag。
先看源代码,尝试修改,发现改不了;抓包修改即可。

upload
上传图片,尝试上传图片没有回应,查看源码发现信息。
访问,有代码。
分析一下代码,利用 str_ireplace 函数过滤了 php,那就双写 pphphp。
蚁剑连接,找到 Flag。



