Polar靶场 简单难度

Polar靶场 简单难度

swp

由题可知该题考查swp文件,直接扫盘扫出文件名
请添加图片描述

查看后得到如下结果
请添加图片描述

可知该题需要同时绕过preg_match和strpos,于是可以尝试最大回溯次数绕过

请添加图片描述

简单rce

由题可知该题关键在于使sys传入的指令不被过滤,可以使用passthru代替system,sort或strings代替cat,%09或${IFS}代替空格,再用post方式传入yyds=666,即可得到flag

请添加图片描述

蜜雪冰城吉警店

题目提示我们点第九款单子,于是在控制台中随意修改一处id为9
请添加图片描述

修改完成之后在点击修改处的按钮,即可获得flag
请添加图片描述

召唤神龙

F12后在源代码中找到一串jsfuck代码,直接在控制台里面跑就可以得到flag
请添加图片描述

seek flag

f12后看到如下注释

请添加图片描述

先扫一下文件看看,扫到了robots文件

请添加图片描述

查看后可以得到flag3

请添加图片描述

在抓的包中的响应头找到了flag2

请添加图片描述

同时发现了cookie为id=0,尝试使用bp抓包并将cookie修改为id=1后上传
请添加图片描述

成功得到flag1,最后将三部分拼凑即可得到完整flag

jwt

进题之后先注册一个账户然后登录,在数据包中找到hit和jwt
请添加图片描述
请添加图片描述

用jwtcrack得到jwt的密钥为SYSA
请添加图片描述

再前往jwt.io将jwt中原先注册的id改为admins,得到新的jwt
请添加图片描述

用该jwt代替原有的jwt值发包,发送之后发现什么也没有,查看了wp之后得知用户名应该是admin而不是admin,于是再用admin作为id得到新的jwt,替换后发包,在密码处得到flag
请添加图片描述

login

f12后找到了学号和密码,成功登录之后并没有给什么信息。看了wp之后知道是将学号从20200101往上逐个取值进行爆破,将得到的回显进行拼接

在bp中进行如下设置之后开始爆破
请添加图片描述

爆破后发现好像就是学号02-11的登录回显,进行拼凑得到flag{dlcg}

iphone

根据题目,抓包后修改UA为iphone或者ipad即可
请添加图片描述

浮生日记

试了几次之后得知输入的值在后台会存储在value值中,由此可以根据源码 传入如下内容

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

因为存在对script的过滤,所以对其进行双写绕过,传入后得到flag

$$

该题代码中的var_dump可用于显示变量,该题过滤了较多符号,于是该处可以使用全局变量GLOBALS,上传后即可得到flag
请添加图片描述

爆破

进题后得到如下代码

<?php
error_reporting(0);

if(isset($_GET['pass'])){
    $pass = md5($_GET['pass']);
    if(substr($pass, 1,1)===substr($pass, 14,1) && substr($pass, 14,1) ===substr($pass, 17,1)){
        if((intval(substr($pass, 1,1))+intval(substr($pass, 14,1))+substr($pass, 17,1))/substr($pass, 1,1)===intval(substr($pass, 31,1))){
            include('flag.php');
            echo $flag;
        }
    }
}else{
    highlight_file(__FILE__);

}
?>

该代码则是要求传入的pass值经过md5编码后满足第一位等于第十四位,第十四为等于第十七位,同时第一位加第十四为加十七位整除第一位等于第三十一位,因为运算的存在所以字符由数字和字母组成,不包含符号。

抓包在bp中尝试爆破具体设置如下
请添加图片描述

为了提高效率,位数从2位开始尝试,如果没有符合值再提高位数

请添加图片描述

爆破后可知3j和ZE符合该条件,随意选一个传入即可得到flag
请添加图片描述

XFF

根据题目要求,抓包后用XFF伪造ip为1.1.1.1后发送就直接得到flag了
请添加图片描述

rce1

直接拼接如下语句

127.0.0.1|cat${IFS}f* 

由于该题的flag被注释掉了,所以ping后要到源码里面找flag
请添加图片描述

GET-POST

按照题目要求,用get方式上传id=1,出现提示让我们用post方式上传jljcxy=flag,上传后得到flag

请添加图片描述

被黑掉的站

进题之后看描述应该存在着木马文件,扫一下扫到了shell.php和index.php.bak两个文件
请添加图片描述

查看内容如下
请添加图片描述

请添加图片描述

推测bak文件里的内容就是webshell的pass,将bak文件的内容导入bp进行爆破,得知nikel为正确pass
请添加图片描述

将其输入后即可得到flag

请添加图片描述

签到题

进题后找了一下,发现cookie为didi=no
请添加图片描述

尝试修改为didi=yes,发送后出现了一段base64字符
请添加图片描述

解码后发现是文件路径
请添加图片描述

进入后发现是一段php代码
请添加图片描述

利用双写绕过和php伪协议构造如下payload

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

然后得到一串base64字符,解码后得到flag
请添加图片描述

签到

进入题目后发现提交按钮被禁用了,于是先把disabled删除,使提交按钮可以正常使用
请添加图片描述

点击一次提交之后在源码中出现新的提示
请添加图片描述

知道该提示后将“ilovejljcxy”上传,发现有长度限制,于是将长度也进行修改

请添加图片描述

上传后即可得到flag

session文件包含

进题后要求我们随意输入内容然后提交,出来了两个链接可以点击,点击后会发现url后为/action.php?file=n.txt(n为1或2),于是尝试使用伪协议读取action.php,得到一串base64字符
请添加图片描述

解码后得到如下代码

<?php
session_start();
error_reporting(0);
$name = $_POST['name'];
if($name){
	$_SESSION["username"] = $name;
}
include($_GET['file']);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href=action.php?file=1.txt>my dairy</a>
<a href=action.php?file=2.txt>my booklist</a>
</body>
</html>

先通过name变量上传一句话木马
请添加图片描述

然后用蚁剑连接,找到flag
请添加图片描述

Don’t touch me

先看源码,找到一个2.php文件
请添加图片描述

前往之后发现有一个无效的click按键,进入源码后把disabled删除,使得click按键可以正常使用
请添加图片描述

点击后跳到end页面,源码中又给出了一个新文件
请添加图片描述

前往该文件即可获得flag
请添加图片描述

robots

根据题目直接查看robots.txt文件
请添加图片描述

出现该页面,然后查看/fl0g.php即可得到flag
请添加图片描述

php very nice

进题后可知该题考查的是反序列化,需要触发的是Example类中的destruct方法,直接构造如下payload

O:7:"Example":1:{s:3:"sys";s:18:"system("cat f*");";}

在源码中得到flag
请添加图片描述

ezupload

猜测该题需上传一句话木马,编写并上传,提示我们需要上传gif文件,于是在上传时抓包修改文件头为image/gif然后再发包
请添加图片描述

接着用蚁剑连接,找到flag
请添加图片描述

cookie欺骗

发现cookie为user=user,抓包将user修改为admin后上传,得到flag
请添加图片描述

upload

在源码中找到被注释掉的提示
请添加图片描述

前往提示中的文件,得到如下一段代码
请添加图片描述

该代码中存在str_ireplace()函数,该函数的具体作用就是在第三个参数中寻找第一个参数,找到后替换成第二个参数的值,第四个参数(可不写)记录替换次数,于是我们在上传木马文件时将后缀由php改为pphphp
请添加图片描述

上传后在源码中找到文件路径,用蚁剑连接
请添加图片描述

成功得到flag
请添加图片描述

干正则

先看代码

<?php
error_reporting(0);
if (empty($_GET['id'])) {
    show_source(__FILE__);
    die();
} else {
    include 'flag.php';
    $a = "www.baidu.com";
    $result = "";
    $id = $_GET['id'];
    @parse_str($id);
    echo $a[0];
    if ($a[0] == 'www.polarctf.com') {
        $ip = $_GET['cmd'];
        if (preg_match('/flag\.php/', $ip)) {
            die("don't show flag!!!");
        }

        $result .= shell_exec('ping -c 2 ' . $a[0] . $ip);
        if ($result) {
            echo "<pre>{$result}</pre>";
        }
    } else {
        exit('其实很简单!');
    }
}

审计后可知首先要做的就是使 $a[0] == ‘www.polarctf.com’ 这个条件满足,然后就是通过cmd这个变量传入命令,于是用get方式上传如下payload

id=a[0]=www.polarctf.com&cmd=|cat f*

在源码中得到flag
请添加图片描述

cool

进题后看到如下代码
请添加图片描述

对flag,system,php进行了过滤

用passthru替换system进行绕过,构造如下payload

a=passthru(cat f*);

以get方式上传即可得到flag请添加图片描述

  • 31
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值