Polar WEB(1-20)

SWP

据说swp是vim编辑器非正常退出产生的文件。怎么利用呢?

用dirsearch扫描出/.index.php.swp

php 复制代码
function jiuzhe($xdmtql) {
	return preg_match('/sys.*nb/is',$xdmtql);
}
$xdmtql=@$_POST['xdmtql'];
if(!is_array($xdmtql)) {
	if(!jiuzhe($xdmtql)) {
		if(strpos($xdmtql,'sys nb')!==false) {
			echo 'flag{*******}';
		} else {
			echo 'true .swp file?';
		}
	} else {
		echo 'nijilenijile';
	}
}

这里了解到利用了正则回溯上限这个知识点,一旦匹配的字符串太长,就会直接返回false防止超负荷运转。

所以可以利用这一点构造payload。

参考polar CTF web简单 - kriton - 博客园。这里必须不能太大数字,不然报错。

php 复制代码
import requests
 
url = 'http://fd6dfdd7-68bc-4cf2-a0d6-f3aa664b1be9.www.polarctf.com:8090/'
data = {
    'xdmtql': 'sys nb'+'very' * 250000
}
 
r = requests.post(url=url, data=data).text
print(r)

简单RCE

根据WP是采用include 绕过(因为过滤了空格)

元甲大佬的做法:

?sys=echo%09`ca''t%09/flag`;

上传

不允许上传php文件,尝试上传图片抓包。

也不太行,怀疑是有了过滤。

查看得知是Apache服务器,可以考虑上传htaccess

未过滤它,先设置为默认解析gif为php,上传gif,没有回显。response有个<?,怀疑是这个被过滤了,那么只能考虑绕过了。

polar 上传 - adotdot - 博客园

参考WP,只需base编码图片马即可。

但是这里上传htaccess的时候提示内容不能有file。小知识:\表示换行,在这里可以绕过。

好了,蚁剑链接即可

.htaccess文件内容:必须换行

也可以用AddHandler,就可以不用FileMatch:

.htaccess文件:

AddType application/x-httpd-php .jpg

php_value auto_append_fi\

le "php://filter/convert.base64-decode/resource=shell.jpg"

复制代码
<FilesMatch "\.jpg">
    SetHandler application/x-httpd-php
</FilesMatch>
php_value auto_append_fi\
le "php://filter/convert.base64-decode/resource=1.jpg"

到底给不给flag呢

看了PolarD&N-CTF-web方向-中等_polarctf web 解题-CSDN博客提示

应该是代码审计,这个flag是错误的。怀疑有其他的php文件,因为这些代码是远远不够

看一下知道了,首先需要让post和get有一个含有flag

利用foreach的特点,构造flag变量应该。但是只要get传了一个flag,肯定会被你覆盖

也是再次参考了每日一题 ------ [PolarCTF]到底给不给flag呢 - Sxrhhh 的个人小站

了解到可以在这里下功夫,利用临时变量先存储flag再说,第二个foreach是障眼法

也可以看出来web主要还是不要固化自己的思维,在一些操作点多思考,发散思维。

写shell

查看代码注意到file_put_content,文件名称利用get,php连接符是.,所以要试着将exit函数绕过。

看了WP知道可以利用编码进行绕过/每日一题 ------ [PolarCTF]写shell - Sxrhhh 的个人小站

如果我们将其认为是一段 base64 编码的话,他会被省略无关字符,变为 phpexit ,一共七个字符。那么如果我们转换为原始文本,为了不影响后面的 payload 的转换,按照 4:3 的转换标准,我们需要补上一个合法字符凑齐 4 的倍数

根据wp构造即可,关键是base解码绕过exit

PHP是世界上最好的语言

通过这道题,我学到了:

1.$_POST本身也是个变量

题目不允许我们在get、post直接传flag1、flag2,但是必须有这俩参数,那要怎么做呢?

看extract函数,是将$_POST变量的数组键值对转换为变量赋值,如下所示:

parse_str($_SERVER['QUERY_STRING']);这个语句也刚好可以利用起来。

所以可以利用这两个函数来进行构造

但是这里的变量不能加引号!

蜜雪冰城吉警店

看源码必须是id=9,与其分析加密逻辑,不如直接改其中一个奶茶id=9

注入

估计是一个盲注。报错不会回显,应该是数字型注入

好吧,是Xpath注入。Xpath注入主要是有个]在后面,我们需要将它的节点列出来

我还得不断学习xpath。这里的|类似于SQL的union!然后不断扩大节点。

payload:1']|//*|//*['

召唤神龙

翻看源码,发现main.js出现一串加密,很可疑

解密后是flag

seek flag

访问robots.txt拿到

复制代码
flag3:c0ad71dadd11}

接着寻找前两段flag,抓包看看

响应体找到了Flag2: 3ca8737a70f029d

就只剩下flag1,观察到请求里有cookie: id=0。将id改为1得到flag1:flag{7ac5b

拼接即可。

JWT

利用工具找到密钥

JWT其实是用于身份验证,伪造jwt即可

点击个人中心即可(必须是手动劫持)

非常好绕的命令执行

看代码,接受了3个参数,绕过了很多东西,而且不能全是空白,以及必须是由可打印字符构成。那也就是绕这些东西。

还是参考了Polar靶场 非常好绕的命令执行-CSDN博客

需要在payload处下功夫,首先传入参数看看自己猜想是否正确。即三个参数的相对位置

是这种情况,我们需要将后面的括号删掉,最好的办法就是注释掉。然后主要构造1 和 2即可。

可以看到大概思路对了,那么接下来就是思考绕过的事情了。

需要学习的知识:空格绕过也可以用<重定向符,以及``执行命令!

login

只有一登录框,看注释输入2020010即可登陆成功

看样子也不是sql注入

polarctf靶场【web】login、被黑掉的站、GET-POST、网站被黑、robots_polarctf login-CSDN博客

看WP才知道原来最后几位数字会输出flag。这也启示写web一定要注意输入不能太合法合规了哈哈。

本以为会很长,也不长。

这又是一个上传(待更新)

主要参考:Polar 这又是一个上传_这又是一个上传 polar-CSDN博客

(这个webshell管理工具叫做游魂)

是前端校验,禁用JS即可绕过

用户组不是root

php_info的flag是错误,因此需要提权

今天才看书学到了SUID提权,拿来试试

可以发现扫出来这么多,看WP知道了关键在pkexec

提权前提:完整的tty是很多命令执行的前提,比如sudo,不是完整的tty是不能sudo的。

使用哥斯拉的superterminal(命令执行),可以直接解决没完整tty的问题

找地方上传马

看到tmp可写

上传,输入make,运行cve开头的文件(注意用哥斯拉运行)

iphone

从这里就反应过来是不是要改UA,于是搜索一下iphone的UA即可

Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1

$$

逻辑很简单,flag.php有flag,关键是怎么利用$$获得值。

其实我这里新学了PHP的特性:GLOBALS超全局数组

爆破

听名字就是要爆破

看样子是要构建一个MD5,难道我们拿出这个md5再进行一个个尝试吗?先这样做看看

但是这样绝对做不了,所以从md5特性考虑,由于有一个做了除数,不能再用0e的方法,我们可以试试别的

卧槽,看了WP还真的是爆破,不能够用特性了

【Web】记录Polar靶场<简单>难度题一遍过(全)_polar靶场 jwt-CSDN博客

用BP爆破吧

XFF

搜索到xff是请求头和代理有关的,点开题目看看

提示这玩意:

那用X-Forwarded-For即可

rce1

知道使用命令连接符,但是不要忘记加上IP

| 只执行第二个命令

|| 先执行第一个命令若成功则继续执行第二个命令

& 不管第一个命令是否执行成功都会执行第二个命令

&& 必须两个命令都成功才能执行

;  类似&

【Web】记录Polar靶场<简单>难度题一遍过(全)_polar靶场 jwt-CSDN博客

踩坑的是最后在注释里面

浮生日记

进去之后提示说是弹个窗看,估计是XSS

看来我的xss还是不太熟练,看了WP

polarctf靶场【web】swp、召唤神龙、浮生日记、干正则_polarctf swp-CSDN博客

c初步判断是过滤了尖括号。

其实不是,看了半天才知道这里出问题了

<input name=keyword value="<a ="java:alert(1)"/> ">

我们试着闭合value即可.还要双写绕过。

相关推荐
崔庆才丨静觅16 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606117 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了17 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅17 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅17 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅18 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment18 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅18 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊18 小时前
jwt介绍
前端
爱敲代码的小鱼18 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax