Hydra爆破[无验证码]Web页面

Hydra是密码爆破神器,读者可以阅读这篇文章,了解Hydra支持的协议。其中,爆破Http登陆密码比爆破其他协议的密码更为复杂,本文将介绍如何爆破HTTP登陆页面的密码。HTTP有两种方式发送密码:Get Method和Post Method,后者比前者复杂,因此需要区别对待。

0.区分Get/Post类型的登陆页面

0.1.使用Wireshark:

分析HTTP协议怎会少了Wireshark?区分Web是以Get Method还是以Post Method发送密码对Wireshark而言简直是小菜一碟:选择网卡后,在"Display fitler"中输入http,然后刷新登入页面,回到Wireshark,分组列表的"Info"列会显示该登入页面使用何种Method发送密码。如下图,是我登入TP-Link路由器(TL-WR841N)管理页面时,Wireshark捕获的结果,TP-Link以Http Get Method方式发送密码:

Hydra爆破[无验证码]Web页面_第1张图片

0.2.使用Firefox-firebug插件:

用Firefox打开登入页面,按F12或者在页面上右键-"查看元素",激活Firebug,如下图:

Hydra爆破[无验证码]Web页面_第2张图片

点击Firebug-"网络",然后登入页面。网络标签页会列出登入页面发出的请求,以及消息头。消息头中将列出请求类型:

Hydra爆破[无验证码]Web页面_第3张图片

因为访问Web页面少不了浏览器,所以本文就使用Firebug演示。有了上面的铺垫,我们由简单到复杂,爆破登陆页面。

1.爆破Get Method类型的登陆页面

先从Get Method入手,靶机还是TP-Link的登陆页面。用hydra爆破Get Method类型的登陆页面,需要关注2个信息:服务器IP和登陆页面(Login Page)。在Firebug-网络标签页中选择一个请求-进入右侧的消息头(Headers),点击"编辑和重发"按钮,Firebug会列出在新请求(New Request)框中IP和登陆页面的信息:

Hydra爆破[无验证码]Web页面_第4张图片

 Hydra爆破[无验证码]Web页面_第5张图片

上图中服务器IP是192.168.2.1;请求的登陆页面是 "/"。现在可以基于这些信息开始构建hydra的命令(假设你已经有爆破字典,没有的话可以参考这篇文章生成字典):

hydra -l Eugene -P wordlist.txt -t 4 -vV -f 192.168.2.1 http-get /
#-l Eugene是登入账户名 简单起见没有使用用户名字典
#-P 指定密码字典
#-f 爆破成功后hydra就停下
#对于参数http-get 需要提供前面firebug给出的IP:"192.168.2.1"和登陆页面:"/"

人品足够好,hydra不久会给出密码(password:123321as):

Hydra爆破[无验证码]Web页面_第6张图片

2.爆破Post Method类型的登陆页面

爆破Post Method类型的登陆页面相对麻烦,需要关注4个信息:服务器IP,登录页面,消息主体(Request Body)和错误消息(payload)。所幸,这些信息在Firebug中也有提供。

消息主体(其实是POST消息提交的表单参数)位于:Firebug-网络-消息头-编辑和重发-新请求,如下图:

Hydra爆破[无验证码]Web页面_第7张图片

错误消息位于:Firebug-网络-响应-响应载荷(payload),(PS:错误消息作为hydra区分登录是否成功的重要参考信息。并不需要提取全部错误消息,只需要找到代表性的登录错误提示即可),如下图:

Hydra爆破[无验证码]Web页面_第8张图片

先看一个简单的页面(老婆做的页面...),输入错误的密码后会在页面上打印一段错误消息,比如我输入name:admin,key:1234,看下Firebug的输出:


name: key:

 

Hydra爆破[无验证码]Web页面_第9张图片

Hydra爆破[无验证码]Web页面_第10张图片

Firebug显示服务器IP:192.168.0.151;登陆页面是/post.php;请求主体,也就是POST提交的表单参数:uName=admin&uKey=1234;服务返回的错误消息中包含"Error"字符串。因此,我们可以这样构建hydra命令行:

hydra -l admin -P wordlist.txt -f -t 4 -vV 192.168.0.151 http-post-form "/post.php:uName=^USER^&uKey=^PASS^:Error"

运行命令,同样,人品够好的话hydra会马上返回结果:

Hydra爆破[无验证码]Web页面_第11张图片

再修改一下登陆页面,当输入错误的密码时,弹出错误对话框:


name: key:
alert('ERROR')"; }; ?>

Hydra爆破[无验证码]Web页面_第12张图片

修改后的消息头和响应载荷(payload)分别为:

Hydra爆破[无验证码]Web页面_第13张图片

Hydra爆破[无验证码]Web页面_第14张图片

错误消息中包含"alert"字符串,将它作为关键字,构建如下hydra的命令:

hydra -l admin -P wordlist.txt -f -t 8 -vV 192.168.0.151 http-post-form "/post2.php:uName=^USER^&uKey=^PASS^:alert"

最终获得账号密码

Hydra爆破[无验证码]Web页面_第15张图片

你可能感兴趣的:(器之卷)