polar-ctf 简单(web)

polar-ctf 简单(web)

目录

1. 简单Rce

2. seek flag

3. jwt

4. $$

5. XFF

6. GET-POST

7. 被黑掉的站

8. rce1

9. 签到题

10. upload

11. 机器人

12. 干正则

13. 覆盖

14. debudao

15. 审计

16. 井字棋

17. button

18. 来个弹窗

19. php very nice

20. 狗黑子的RCE

21. 命运石之门

22. rce命令执行系统

23. uploader

24. bllbl_ser1

25. 1ncIud3

26. 投喂

27. 简单的导航站

28. background

29. 俄罗斯方块

30. 代码审计easy

31. VIP

32. white

33. help

34. cookie欺骗2.0


1. 简单Rce

看到题目代码过滤了一些关键字符cat tac 和system都被过滤了,不能再去使用。但是可以利用vi命令进行读取flag

执行外部命令函数:system()、passthru()、exec()

2. seek flag

进入题目找找flag。在cookie中将id改成1,得到了第一段flag

在其get请求包中看到第二段flag

dirsearch进行目录扫描,看到有一个robots.txt,访问后得到第三段flag

3. jwt

进入是一个登录界面,先登录再注册,进入主页后并未得到有用信息

抓包后看到一个hint:flag-is-admin-password,得知username为admin

先注册一个新用户,注册成功就去登录

抓包看到JWT,拿去解密,需要对称密钥,在kali中利用jwt-cracker进行爆破解密,解密后得知其密钥为SASY

./jwtcrack

进行解密,将jwt中的代码解码然后更换username和对称密钥,然后再进行编码,将重新编码后的代码进行更换,发包,得到falg

4. $$

$GLOBALS:用于访问所有全局变量(来自全局范围的变量),即可以从PHP脚本中的任何范围访问的变量。

5. XFF

抓包修改X-Farded-For:1.1.1.1,然后发送看到flag

6. GET-POST

先传id

再传post

7. 被黑掉的站

在页面中并无得到有用信息

在kali中利用dirsearch -u 网址,扫描出两个成功发送的包,index.php.bak shell.php

访问index.php.bak,得到一个像是密码字典的文件

访问shell.php,看到一个登录框,和前面给的刚好呼应上了

利用bp进行弱口令爆破

完成后得到登陆密码(nikel),登录后成功得到flag

8. rce1

?ip=127.0.0.1|ls

空格被过滤了,用${IFS}进行绕过

?id=127.0.0.1|cat${IFS}fllllaaag.php

查看网页源代码得到flag

9. 签到题

发现提交按钮不可以提交,然后修改前端的提交值

随便输入123,然后提示提交ilovejljcxy就可以得到flag

再次修改然后输入ilovejljcxy,发现有字数限制,再修改字数限制

最后得到flag

10. upload

查看网页源代码,看到?action=show_code,访问后看到php等许多文件后缀被过滤了

选择一句话木马图片上传

利用bp抓包,将文件后缀名利用双写绕过改成php后缀,发送请求,成功更换

利用蚁剑进行连接,成功看到flag

11. 机器人

利用Kali中dirsearch进行扫描,查到了一个/robots.txt文件

访问后看到flag,但发现只有一半,尝试提交果然不对

Disallow是一个目录,尝试访问但访问不了

利用dirsearch扫描看到了/27f5e15b6af3223f1176293cd015771d/flag.php文件

访问后看到flag后半段,前后两段拼在一起得到flag

12. 干正则

参数为id,包含flag.php文件

flag .php 被过滤

pyload:?id=a[0]=www.polarctf.com&cmd=|ls;

pyload:?id=a[0]=www.polarctf.com&cmd=|cat `ls`; 查看源代码后看到flag

13. 覆盖

代码说用GET传参(id),需要a[0]=www.polarctf.com

$ip = $_get['cmd'] 获取名为cmd的 GET 参数值,并赋给变量$ip

?id=a[0]=www.polarctf.com&cmd=;cat fla*

14. debudao

查看网页源代码看到一个flag,提交后是错误的

最后在cookie中找到真的flag

15. 审计

在url中输入?xxs=240610708,md50e绕过

16. 井字棋

在控制台中输入declareWinner("您赢了"!);然后弹窗弹出flag

17. button

出现一个“点击我"的按钮,但是并不能点击到

查看了一下网页源代码,看到一个js文件,说要点击好多9999次,很显然这是不可能的,看到下面看有一个方法查看 flag,访问proxy.php?file=flag,访问后是空白页面,查看网页源代码看到flag

18. 来个弹窗

利用:<script>alert('xss')</script>正常提交,但并没有显示,可能被过滤了

利用双写绕过<script>alert('xss')</sscript>,攻击成功

得到一副图片,说flag就是该人物名称MD5加密,上网查找后用MD5加密得到flag

19. php very nice

php反序列化

当PHP脚本执行完毕或对象被销毁时,_destruct() 自动执行

如果$sys是恶意代码就会被执行

构造php代码

设置要执行的系统命令

创建Example对象

序列化对象并输出

payload:?a=O:7:"Example":1:{s:3:"sys";s:13:"system('ls');";}

出现两个目录

利用php伪协议读取一下(?)

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

解码得到flag

20. 狗黑子的RCE

过滤了很多命令和符号

有两个参数gouheizi1和gouheizi2

原始输入中的 'gouheizi' 会被移除

如果 POST gouheizi2=ggouheiziouheizihi,处理后变成 ghi,不等于 "gouheizi"

要使处理后等于 "gouheizi",原始输入必须是 "gouheizi"(因为移除 'gouheizi' 后为空)或其他包含 'gouheizi' 的组合

payload如下,过滤字符用l\s进行过滤,执行后再根目录下看到flag.php查看php文件

c\at /fl\ag.php

21. 命运石之门

登录框α线,随便试试,不行,还看不到验证码

查看网页源代码,得到一串编码,解码说验证码是否好使不重要

目录扫描,扫到个password.txt文件,这就应该是爆破了

然后爆破出密码是hunangleiSAMA0712,成功到达第二个β线

接着爆破,得到密码huan9le1Sam0,得到flag

22. rce命令执行系统

尝试输入命令,但貌似都被过滤了,都不能进行正常的输出

看看环境变量是否可以输出,尝试输入env,能成功输出,看到有flag,但是它是个假的

进行目录扫描,扫到一个flag.txt文件,访问看到了提示

txt > php,l > 1,这像是让我们将文件名称进行改变一下,改变一下进行访问

得到另一个提示,要给XOR_KEY进行传参

?XOR_KEY=Polar,成功执行,得到真正的flag

23. uploader
 <?php $sandBox = md5($_SERVER['REMOTE_ADDR']);//生成专属目录名:获取访问者的IP地址,并用MD5加密 if(!is_dir($sandBox)){ mkdir($sandBox,0755,true);//要创建的目录名,目录权限0755,true表示允许递归创建 if($_FILES){//判断是否上传文件 move_uploaded_file($_FILES['file']['tmp_name'],$sandBox."/".$_FILES["file"]["name"])// $_FILES['file']['tmp_name']:PHP自动保存的上传文件临时路径 echo "上传文件名: " . $_FILES["file"]["name"] . "<br>"; echo "文件类型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo $sandBox; } highlight_file(__FILE__); 

$sandBox."/".$_FILES["file"]["name"]:目标路径(专属目录 + 原文件名),这个很重要!!

只给出了上传的代码,没有上传的方式,需要自己写一个上传的html页面

上传一句话木马的php文件,之后进行访问,记得加上专属目录名(用md5加密的访问者的IP地址)。然后进行命令执行

<!DOCTYPE html> <html> <body> <form action="http://70c5aad8-a20c-4181-80c0-8bd102f6233c.www.polarctf.com:8090/" enctype="multipart/form-data" method="post" > <input name="file" type="file" /> <input type="submit" type="submit" /> </form> </body> </html> 

24. bllbl_ser1

题目给了一串反序列化代码

<?php class bllbl { public $qiang;//我的强 function __destruct(){ $this->bllliang(); } function bllliang(){ $this->qiang->close(); } } class bllnbnl{ public $er;//我的儿 function close(){ eval($this->er); } } if(isset($_GET['blljl'])){ $user_data=unserialize($_GET['blljl']); } ?>

一共就两个类,构造一下代码

<?php class bllbl{ public $qiang; } class bllnbnl{ public $er; } $a=new bllbl(); $b=new bllnbnl(); $a->qiang=$b; $b->er='system("ls /");'; echo serialize($a); ?>

25. 1ncIud3

在该题目中,当你传入../时,会将其转换成空

当 PHP 把这个路径传给操作系统时,系统会按上面的规则规范化,最终变成 ../../test.php,实现了目录穿越。PHP 拼接路径后传给系统,系统规范化路径传入的内容就会变成../../../../f1a9,从而成功读取

26. 投喂

27. 简单的导航站

网页源代码中得到密码

注册,登陆下

产看用户列表,有代码,用数组进行绕过,得到用户名字符串,需要爆破(在文件管理中的登录框进行爆破)

得到账号为P0la2adm1n,登陆进去是一个上传页面,没有过滤,直接上传php的木马文件,然后蚁剑进行连接

上传路径为/uploads/上传的文件名

看到很多flag

在flag验证框中进行flag验证,爆破

28. background

d和p一个表示执行的命令,一个表示执行的语句,然后是要用POST方法去获取change_background.php文件

payload:d=cat&p=/flag

29. 俄罗斯方块

要是直接玩也是可以的,就是耗时太久了

直接在控制台进行分数修改,让score=10,然后玩一把就可以得到提示,但是这个提示就是一串文字

又查看js代码看到有一个获取文件,get_squirrt1e.php,访问后就可以得到flag

30. 代码审计easy

<?php $page = 'hello.php'; if (isset($_GET['page'])) { $page = $_GET['page']; } $base_dir = __DIR__ . '/pages/'; $target = $base_dir . $page; if (preg_match('/https?:\/\//i', $page)) { echo "远程 URL 不允许呦。"; exit; } if (file_exists($target)) { $content = file_get_contents($target); echo "<pre>" . htmlspecialchars($content, ENT_QUOTES|ENT_SUBSTITUTE, 'UTF-8') . "</pre>"; } else { if (@file_exists($page)) { $content = file_get_contents($page); echo "<pre>" . htmlspecialchars($content, ENT_QUOTES|ENT_SUBSTITUTE, 'UTF-8') . "</pre>"; } else { echo "No!: " . htmlspecialchars($page); } }

这题flag在根目录

31. VIP

抓包,修改vipStatus的值,no修改成yes

32. white

是一个命令执行的界面

 ls pwd whoami date echo base64 sh 
命令包含不允许的内容,匹配模式: /[;&`$\'\"<>?*[\]{}()#@!%]/
禁止危险函数(如 system、eval、tac、cat 等)
命令包含不允许的内容,匹配模式: /\b(etc|proc|dev|bin|sbin|usr|home|flag)\b/i

在过滤的命令中没有过滤管道符(|),这是可以利用的一个点。管道符拼接

echo bHM= 输出字符串 bHM=(这是 ls 的 Base64 编码结果)

base64 -d 对输入的 Base64 字符串解码(bHM= 解码后得到 ls)

sh 调用 Shell 执行输入的命令(即执行 ls,列出当前目录文件

也可以用反斜杠\来进行绕过flag关键字的过滤

33. help

直接查找js文件就可以了

34. cookie欺骗2.0

登录成功然后抓包,修改user,发包,认证失败。那可能后面的值也要修改

hfrel拿去解码,发现时rot13加密,结果是user1。同样将admin进行rot13加密,替换上去,发包得到flag

Read more

Flutter for OpenHarmony: Flutter 三方库 envied_generator 给鸿蒙应用的敏感 API Key 穿上“不可破解”的防护服(安全性加固利器)

Flutter for OpenHarmony: Flutter 三方库 envied_generator 给鸿蒙应用的敏感 API Key 穿上“不可破解”的防护服(安全性加固利器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 应用开发时,我们不可避免地要集成各种三方服务(如高德地图 KEY、Firebase Secret、或是鸿蒙分布式服务的授权 Token)。如果你直接将这些字符串写在 Dart 代码里,任何初级黑客都能通过反编译你的 HAP 包,轻松获取这些敏感资产,导致巨大的商业损失。 envied_generator 配合 envied 就是专门解决这一安全痛点的。它不仅能将配置从 .env 文件读取到代码中,更关键的是它支持 Obfuscate(代码混淆)。它将你的 Key 转化为一串复杂的位运算逻辑,让反编译后的结果变得面目全非,为鸿蒙应用的资产安全筑起第一道堤坝。 一、配置加固工作流模型 该库通过代码生成,将明文配置文件转化为混淆后的 Dart 类。 .env (敏感明文) envied_generator

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 week_of_year 为鸿蒙应用提供精准的年度周数统计与业务分析支持(日历计算专家)

Flutter for OpenHarmony: Flutter 三方库 week_of_year 为鸿蒙应用提供精准的年度周数统计与业务分析支持(日历计算专家)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 的办公自动化(OA)、排班管理或财务统计应用开发时,我们经常需要处理“周”的概念。 1. 周报提交:今天是今年的第几周? 2. 生产计划:第 15 周需要完成哪些鸿蒙节点的部署? 3. 数据报表:按周对鸿蒙设备的运行状态进行汇总。 虽然 Dart 的 DateTime 类非常强大,但它并没有原生支持“获取当前是第几周”。week_of_year 软件包通过对 DateTime 对象的精简扩展,让你能一行代码获取 ISO-8601 标准的周数。 一、周数计算逻辑模型 符合国际标准(ISO-8601)的周数计算,通常将包含一年中第一个周四的那一周定为第 1 周。 DateTime

By Ne0inhk

灵感画廊:5分钟快速上手Stable Diffusion艺术创作

灵感画廊:5分钟快速上手Stable Diffusion艺术创作 你是否曾有过这样的瞬间:脑海中闪过一个绝妙的画面,却苦于无法用画笔或软件将其呈现?或者,面对复杂的AI绘画工具,被一堆看不懂的参数和按钮劝退?今天,我将带你体验一款与众不同的AI艺术创作工具——灵感画廊。它没有冰冷的工业界面,只有如艺术沙龙般的恬静空间,让你在5分钟内,将脑海中的“梦境碎片”凝结成永恒的视觉诗篇。 1. 什么是灵感画廊? 灵感画廊不是一个普通的Stable Diffusion WebUI。它是一款基于 Stable Diffusion XL 1.0 模型深度定制的沉浸式艺术创作终端。它的设计哲学很特别:让创作过程本身成为一种审美享受。 想象一下,你走进一间充满宣纸色调、衬线字体和极简留白的数字画室。这里没有令人眼花缭乱的滑块和选项卡,只有“梦境描述”、“尘杂规避”和“挥笔成画”这样充满诗意的交互。它的目标,就是为你提供一个可以专注捕捉灵感的静谧空间。 对于新手来说,它的最大价值在于 “开箱即用” 和 “直观友好”。你不需要理解“

By Ne0inhk

无需任何拓展Copilot接入第三方OpenAI接口教程

禁止搬运,转载需标明本文链接 省流:修改"C:\Users\你的用户名称\.vscode\extensions\github.copilot-chat-0.35.0\package.json"中的"when": "productQualityType != 'stable'"为"when": "productQualityType == 'stable'",即可在copilot添加支持openAI的第三方接口 我在寻找怎么让copilot接入第三方接口的时候,通过别人的贴子(长期有效)接入第三方 OpenAI 兼容模型到 GitHub Copilot-ZEEKLOG博客发现了官方的讨论Add custom OpenAI endpoint configuration

By Ne0inhk