目的:练习做题手感和思路
CAT
搜索框搜索
弹出?url=
猜测是SSRF,所有协议均被过滤
http://
file:///
dict://
gopher://
回归题目和描述,由CAT 联想是命令执行,依然是 invalid url
思路切入点 invalid url => fuzz
fuzz是我思路和实践弱项,积累
?url=%88 宽字节,获取报错信息
html源码
复制粘贴本地查看
看到了熟悉的django报错页面,看来是将输入的参数传到了后端的django服务中进行解析,而django设置了编码为gbk导致错误编码了宽字符(超过了ascii码范围)。
同时看到项目的绝对路径为/opt/api,结合之前fuzz没有过滤掉的@ 和CURLOPT_POSTFIELDS 知识点
这里还需要懂一些django开发的基本知识,django项目下一般有个settings.py 文件是设置网站数据库路径(django默认使用的的是sqlites数据库) 如果使用的是其它数据库的话settings.py则设置用户名和密码。除此外settings.py还会对项目整体的设置进行定义。
读取settings.py文件,这里需要注意django项目生成时settings.py会存放在以项目目录下再以项目名称命名的文件夹下面。
?url=@/opt/api/api/settings.py
获取到数据库信息路径
?url=@/opt/api/database.sqlite3
|