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即可.还要双写绕过。

相关推荐
吃饺子不吃馅2 小时前
AntV X6图编辑器如何实现切换主题
前端·svg·图形学
余防3 小时前
XXE - 实体注入(xml外部实体注入)
xml·前端·安全·web安全·html
jump_jump3 小时前
前端部署工具 PinMe
运维·前端·开源
Baklib梅梅4 小时前
优秀文档案例解析:打造高效用户体验的最佳实践
前端·ruby on rails·前端框架·ruby
慧一居士4 小时前
VUE、jquery、React、Ant Design、element ui、bootstrap 前端框架的 功能总结,示例演示、使用场景介绍、完整对比总结
前端
GISer_Jing4 小时前
0926第一个口头OC——快手主站前端
开发语言·前端·javascript
MediaTea5 小时前
Jupyter Notebook:基于 Web 的交互式编程环境
前端·ide·人工智能·python·jupyter
少年阿闯~~5 小时前
CSS——重排和重绘
前端
个人看法6 小时前
h5实现一个吸附在键盘上的工具栏
前端·javascript·vue