攻防世界WEB进阶——Cat wp
首先打开题目是个发现是个云端测试
提示输入域名
没反应
输入百度的ip 220.181.38.148
反馈了
PING 220.181.38.148 (220.181.38.148) 56(84) bytes of data. --- 220.181.38.148 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms
再输入127.0.0.1
反馈了
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.064 ms --- 127.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.064/0.064/0.064/0.000 ms
可以看出执行了ping并返回结果
试试用管道执行命令
127.0.0.1 | ls
返回Invalid URL
看来是行不通
因为这是传输的域名
通过url参数传递数据
所以应该可以传递url编码
试一试%70
没问题可以正常传输
变成了p
进行fuzz
发现超过0x7F(127)都会报错
url编码使用 16进制 编码
标准ascll码范围是0-127
超过127都会报错
尝试输入%80(ascll码128)
报错
页面返回报错信息
通过报错信息判断后台至少运行了 php 和 django
OK懵了
看看大佬的wp
发现关键点在curl文件上传php组件
搜了一下
关键又在CURLOPT_POSTFIELDS这个参数
CURLOPT_POSTFIELDS
全部数据使用HTTP协议中的 “POST” 操作来发送。 要发送文件,在文件名前面加上@前缀并使用完整路径。 文件类型可在文件名后以 ‘;type=mimetype’ 的格式指定。 这个参数可以是 urlencoded 后的字符串,类似’para1=val1¶2=val2&…’,也可以使用一个以字段名为键值,字段数据为值的数组。 如果value是一个数组,Content-Type头将会被设置成multipart/form-data。 从 PHP 5.2.0 开始,使用 @ 前缀传递文件时,value 必须是个数组。 从 PHP 5.5.0 开始, @ 前缀已被废弃,文件可通过 CURLFile 发送。 设置 CURLOPT_SAFE_UPLOAD 为 TRUE 可禁用 @ 前缀发送文件,以增加安全性。 | |
---|---|
网站是使用Django进行开发的,结合PHP可以通过在参数中注入@来读取文件的漏洞,依次查看python的配置文件和数据库得到flag的内容
不清楚大佬是怎么知道php版本是不是5.5.0版本及以上的
也就是说@前缀有没有废弃 CURLOPT_SAFE_UPLOAD 有没有被设置为TRUE
以为是通过Content-Type头被设置为multipart/form-data来看的
但是我的Content-Type头不是啊
有没有大佬帮忙给教一下ORZ
谢谢大佬,给大佬磕头ORZ
接下来就比较简单了
通过@构造payload读取文件
先看看django的配置文件 settings.py
payload:
?url=@/opt/api/api/settings.py
CTRL+F 搜一下database
数据库为sqlite3
django默认使用sqlite3数据库,看来题主没有做任何修改
看看
payload:
?url=@/opt/api/database.sqlite3
CTRL+F
搜索ctf
拿到
WHCTF{yoooo_Such_A_G00D_@}
- XCTF攻防世界web进阶练习_ 2_lottery
- 攻防世界 web 进阶 ics-07
- XCTF攻防世界web进阶练习_ 5_mfw
- 攻防世界 web进阶 NewsCenter
- 攻防世界 web 进阶 Website
- XCTF攻防世界web进阶练习_ 4_upload
- 攻防世界 web 进阶 i-got-id-200
- XCTF攻防世界web进阶练习_ 3_unserialize3
- XCTF攻防世界web进阶练习_ 1_NewsCenter
- 攻防世界 web进阶笔记
- XCTF攻防世界web新手练习_ 2_backup
- 攻防世界web新手之simple_js
- XCTF攻防世界Web
- 攻防世界 web题目 get_post
- 攻防世界web新手之disabled_button
- XCTF攻防世界web新手练习_ 7_weak_auth
- 【攻防世界】CTF web新手07 关于web中的编码问题
- 攻防世界的web(一)
- XCTF攻防世界web新手练习_ 4_disabled_button
- 【攻防世界】CTF web04-06 一些简单的题目