攻防世界Web进阶区
0x01. Cat
- 难度系数 1.0
- 题目来源:
XCTF 4th-WHCTF-2017
- 题目描述: 抓住那只猫
- 题目场景: http://111.198.29.45:43180/ 具体参见攻防世界
- 题目附件:无
解题思路
- 尝试提交空域名,返回Invalid Url, 提交题目给出的loli.club,什么也没有反应,但现在观察地址框 http://111.198.29.45:43180/index.php?url=loli.club , 应该想到可以构造get请求
-
通过尝试应该可以发现,URL后面加:
- 正常url, 好像没什么反应,(查看官方writeup,说返回ping结果)
- 非法URL(特殊符号),返回
Invalid URL
- URL编码超过%80,返回Django报错
3. 队报错代码进行代码审计,可以得到有关数据库的相关信息,获得数据库径/opt/api/database.sqlite3
4. 使用@+文件名来读取本地文件,构造payload:
http://111.198.29.45:43180/index.php?url=@/opt/api/database.sqlite3
- 搜索关键词
ctf
得到flag,AWHCTF{yoooo_Such_A_G00D_@}
附注
官方用curl
构造payload
curl 'http://111.198.29.45:43180/index.php?url=@/opt/api/database.sqlite3' | xxd | grep -A 5 -B 5 WHCTF
0x02. ics-05
- 难度系数 1.0
- 题目来源:
XCTF 4th-CyberEarth
- 题目描述: 其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统
- 题目场景: http://111.198.29.45:43227/ 具体参见攻防世界
- 题目附件:无
解题思路
- 题目提示是设备维护中心后门,所以打开页面后直接点击设备维护中心菜单进入
2. 再点击云平台设备维护中心
, 发现地址栏url变了,并且页面中出现index字样
3. 想到可以,利用php://filter
伪协议读取页面源码
http://111.198.29.45:31639/index.php?page=php://filter/convert.base64-encode/resource=index.php
-
base64解码后,进行代码审计获取到有用信息
//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试 if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') { echo "<br >Welcome My Admin ! <br >"; $pattern = $_GET[pat]; $replacement = $_GET[rep]; $subject = $_GET[sub];