题目 — Cat
一、writeup
主页嗅到了命令执行
的气息,但是无法拼接执行
对?url进行fuzz测试,发现 - . / 和 @
没有被过滤掉
这里输入?url = %36可以回显出 6,%36 正是6对应的url编码。这说明服务器对我们输入的内容会进行 url解码 并显示到url上
这里猜测服务器端是否使用了gbk编码
,看看宽字节
是否可以引发报错
成功引起报错。将报错的内容复制下来用浏览器打开,是Django的报错页面。Django的版本是:1.10.4
。python的版本是:2.7.12
在报错栈中可以找到相关的代码
可见后台使用了gbk编码
,存在宽字节注入,并且在报错页面还有很奇怪的一点,我们用的是GET方式
提交的参数,但是到了服务器端,却是POST方式
还有一点很奇怪这里的content_type
是:multipart/form-data
,在表单中进行文件上传时才会用到这个格式,而我们这里并没有上传文件呀。