https://www.ichunqiu.com/battalion?t=1&r=0
进入题目链接,是一张黑人问号图片:
直接使用burp suite抓包送到Repeater模块,检查发送和相应报文的HTTP头部字段,并未发现可疑字段,图片是base64编码,点击href链接,依然还是刚的页面,尝试更改请求方法,将GET更改为POST,响应如下:
如果了解过Django的话应该很容易看出来这是Django的报错页面,这一点可以从红色箭头指向的地方看出来,下面是一张Django的初始界面,对比一下:
下面的工作就是去搜索往年的与Django有关的write up,找到一篇:
https://bbs.ichunqiu.com/thread-14365-1-1.html
????
然后我就去看了一下他的github页面,找到了对应的文件,并下载了下来,提示说密码是他的生日,那我们直接制作字典并**即可
字典制作代码:
#include <stdio.h>
#include <stdio.h>
int main()
{
int year = 0, month = 0, day = 0;
for(year=1990; year<=2018; year++)
for(month=1; month<=12; month++)
for(day=1; day<=31; day++)
printf("%d%02d%02d\n", year, month, day);
return 0;
}
**脚本代码:
#!/bin/bash
cat ./password.txt | while read LINE
do
#将标准错误和标准输出都重定向至文件123中
unzip -P "$LINE" gift.zip > 123 2>&1
grep -q "bad" ./123
if [ $? -eq "0" ]; then
rm -rf S*
continue
else
grep -q "incorrect" ./123
if [ $? -eq "0" ]; then
echo "wrong password"
continue
else
echo $LINE
break
fi
fi
done
当我们给unzip提供错误的密码有时也能将文件解密,但是会提示:
因此我们先检查输出中是否存在字符串bad(因为incorrect在两种情况中都会出现,bad只会出现在这种情况中)
最后执行getPasswd.sh,成功获得压缩包密码:
因为脚本直接把文件解压了,其实我们知不知道密码也无所谓,现在SECRET_KEY.KEY已经躺在当前目录中了
有了这个东西,我们就可以进行针对Django的命令执行漏洞攻击了,因为我没有公网IP,所以后面的步骤没做。。。。。。