打开题目,是一个查询域名的输入框。
输入了www.baidu.com没有反应,输入127.0.0.1发现执行成功,进行命令拼接,
提示了错误url,应该是被过滤掉了,用字典测试一下,发现只有@没有被过滤,考虑到输入的字符都会被url编码后传入,我们试一下宽字节%df
发现报错,我们保存为html查看一下
从这里可以知道后端含有Django框架,我们也知道没有过滤掉@,并且当 curlopt_safe_upload
为 true 时,所以在请求前面加上@的话phpcurl组件是会把后面的当作绝对路径请求,来读取文件。
访问settings项目,默认路径为/opt/api/api/settings.py
用同样的方式,导入html文件打开。
看到此路径,我们继续用@的方式打开,搜索ctf即可
本章完
学到了新的知识,还是挺不错的,做题过程中也看了看其他大佬的思路,并不是完全靠自己,如有不同意见,欢迎指出。