目录
五、shrine
解题方法:
过程:
六、lottery
解题方法:
过程:
五、shrine
文章图片
解题方法: 1、php源码理解,SSTI(服务器端)模板注入
过程: Ctrl+U六、lottery
查看源码
文章图片
使用了2个模块flask和os模块,看是否能模块注入
文章图片
app.route传了两个路径
文章图片
过滤()和'config','self'被加入了黑名单
文章图片
访问shrine路径
/shrine/{{1+3}}
进行了运输,存在SSTI(服务器端)模板注入
文章图片
又因为过滤()和'config','self'被加入了黑名单
1、payload:
/shrine/{{url_for.__globals__['current_app'].config}}
文章图片
2、payload:
/shrine/{{get_flashed_messages.__globals__['current_app'].config['FLAG']}}
文章图片
文章图片
解题方法: 1、逻辑漏洞,弱相等
过程: 游走一遍【#|【攻防世界WEB】难度三星9分入门题(下)(shrine、lottery)】
文章图片
然后再是注册
文章图片
文章图片
文章图片
在此处看见了flag
文章图片
点击buy后
抓包
出现api.php的post传参
文章图片
api.php成了重点
查看robots.txt发现了
标明不能通过git获得源码
文章图片
发现题目给的附件
就是源码
文章图片
自动审计
(没啥漏洞)
文章图片
自己查看源码
可以发现
1、request是json格式(json支持布尔型数据)
文章图片
2、7位数的对比,是一位一位对比的
3、且使用的是弱相等(TRUE,1,"1"都是相等的,只是类型不同)
文章图片
构造payload
[true,true,true,true,true,true,true]
即改为
{"action":"buy","numbers":[true,true,true,true,true,true,true]}
使用bp抓包
文章图片
文章图片
再点击buy
文章图片
推荐阅读
- #|【攻防世界WEB】难度四星12分进阶题(Confusion1)
- 组会|MITRE ATT&CK超详细学习笔记-01(背景,术语,案例)
- #|【project】Adruino小型自平衡机器人EVA(+硬件+源代码+3D文件)
- 入侵检测|IPS眼中的——SQL注入绕过与反绕过
- 渗透测试|【文件包含漏洞】——文件包含漏洞防御
- #|多传感器融合技术简介
- Leetcode每日刷题|LeetCode.565. 数组嵌套____暴力dfs->剪枝dfs->原地修改
- 心余力绌(企业面临的软件供应链安全困境)
- #|【数字IC】深入浅出理解AXI协议