Polar靶场-Web简单题目记录(9-16)
Polar靶场-浮生日记题目
题目考查:xss过滤
随意输入,查看输入参数

构造payload 进行尝试,发现对script进行过滤

双写进行绕过

结合之前的输入以及过滤,最终payload构造应满足 语句闭合+双写绕过 所以payload如下:
"><scscriptript>alert('1')</scscriptript>

Polar靶场-$$题目

这是一个 PHP 代码审计相关的 CTF 题目,目标是绕过正则表达式过滤,构造合适的 payload 来获取 flag.php 文件中的内容。
代码分析:
1.highlight_file(file); :高亮显示当前文件代码。
2.error_reporting(0); :关闭错误报告。
3.include "flag.php"; :包含 flag.php 文件。
4.$a=$_GET['c']; :从 URL 的 GET 参数 c 中获取值。
5.正则表达式过滤:过滤了一系列字符,包括 flag 、空格、特殊符号以及数字和部分标点符号。
6.eval("var_dump($$a);"); :将 $$a 作为变量进行 var_dump 操作。
PS 重要的知识点:
超全局变量即可 GLOBALS,在 PHP 中,$GLOBALS 是一个超全局变量,它是一个包含了所有全局变量的数组。每个全局变量都是这个数组的一个元素,其键名是全局变量的名称,值是全局变量的值。这意味着你可以通过 $GLOBALS 来访问和修改任何全局变量,无论你当前的代码作用域是什么。
构造payload /?c=GLOBALS

Polar靶场-爆破题目
这道 CTF 题目要求我们构造一个 GET 请求的 pass 参数,使得经过 md5 加密后的字符串满足特定条件从而获取 flag
代码条件分析
1.substr($pass, 1,1)===substr($pass, 14,1) && substr($pass, 14,1) ===substr($pass, 17,1) :意味着 md5 加密后的字符串的第 2 位、第 15 位和第 18 位字符相同。
2.(intval(substr($pass, 1,1))+intval(substr($pass, 14,1))+substr($pass, 17,1))/substr($pass, 1,1)===intval(substr($pass, 31,1)) :将上述相同位置的字符转换为整数进行数学运算,结果要等于 md5 字符串的第 32 位转换为整数的值。
构造思路
由于直接找到满足条件的 pass 值比较困难,我们可以通过编写 Python 脚本来进行暴力破解,遍历可能的输入,计算其 md5 值并检查是否满足条件。
import hashlib
# 遍历所有可能的字符串
for i in range(1000000):
pass_str = str(i)
md5_hash = hashlib.md5(pass_str.encode()).hexdigest()
# 检查第一个条件
if md5_hash[1] == md5_hash[14] and md5_hash[14] == md5_hash[17]:
# 检查第二个条件
try:
left_side = (int(md5_hash[1], 16) + int(md5_hash[14], 16) + int(md5_hash[17], 16)) / int(md5_hash[1], 16)
right_side = int(md5_hash[31], 16)
if left_side == right_side:
print(f"找到满足条件的 pass: {pass_str}")
print(f"对应的 md5 值: {md5_hash}")
break
except ZeroDivisionError:
continue
运行python文件爆破获取数字,构造即可获取flag

Polar靶场-XFF题目
根据题目提示,需要IP地址为1.1.1.1才能获取flag,此类型题目修改xff字段即可,推荐谷歌小插件进行修改获取flag

Polar靶场-rce1题目
查看题目提示,正常过滤空格,执行ls查看目录下文件

使用制表符(%09)
制表符也能作为参数分隔符,在 URL 中,制表符的编码是 %09 。
构造的 payload 示例:
?ip=1.1.1%7Ccat%09fllllaaag.php#
flag在网页源代码中

Polar靶场-GET-POST题目

查看题目,需满足两个条件:
GET提交id参数,令id=1且同时POST需提交jljcxy参数,令jljcxy=flag
构造提交,获取flag

Polar靶场-被黑掉的站题目
查看题目,被黑掉的网站,一般都会被上传webshell,先扫描目录看一下

扫描目录发现/index.php.bak、shell.php
访问/index.php.bak网站,发现疑似为密码本

访问shell.php网址

猜测index.php.bak应该为shell.php的密码,使用提供的index.php.bak密码进行爆破
获取flag

Polar靶场--签到题题目
查看题目,没有任何提示,抓包发现cooike存在猫腻,修改didi参数等于yes,获取base编码数据

解密base64编码数据

访问./data/index.php路径

发现存在 PHP 代码,此代码存在文件包含漏洞:
(1)它接收用户通过 GET 方法传入的 file 参数
(2)使用 str_replace('../', '', $file) 尝试过滤目录遍历字符,但这种过滤方式并不完善,可以通过构造特殊的 payload 绕过。
路径遍历 + PHP 伪协议 ,构造paylpad读取flag
?file=php://filter/convert.base64-encode/resource=....//....//....//....//flag

解密base获取flag


浙公网安备 33010602011771号