前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用fuzzDB进行web安全测试

使用fuzzDB进行web安全测试

作者头像
FB客服
发布2018-02-02 14:59:59
2.7K0
发布2018-02-02 14:59:59
举报
文章被收录于专栏:FreeBufFreeBuf

写在前面:

fuzzDB看字面意思就知道,他是一个用于fuzz网站的库。类似于wwwscan之类工具的字典,但是他的过人之处是他是“开源”的,会有很多大神帮你维护一个字典,想想都心旷神怡啊。

正文:

自从写了一个FuzzDB的介绍之后,基友们纷纷表示想看到关于这款工具的更多细节。这篇文章介绍了,FuzzDB中我最喜欢的几个特性以及怎样使用它们。如果下面的内容还不能让你满足,或者你想在新的文章中看到什么,请给我留言。

Exploiting Local File Inclusion(本地文件包含)

在进行本地文件包含漏洞的fuzz时,fuzzDB可以帮我们做很多事。(更多关于这个漏洞你可以看这里)

首先,他对于目录遍历有很多功能,要遍历多深,怎样进行编码以绕过黑名单,以及一些常见的安全漏洞,freeDB都会为你提供。而且它还包含8种不同的攻击模式

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/attack-payloads/path-traversal/traversals-8-deep-exotic-encoding.txt

举个例子来说:

代码语言:javascript
复制
/%c0%ae%c0%ae\{FILE}
/%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
/%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae/{FILE}

在你实际进行fuzz的时候,把{FILE}中的内容替换成攻击目标已知存在的文件,比如说unix系统的目标则可以使用,“etc/password”,然后查询返回的结果看看有没有成功的返回包。可以对返回结果进行根据bytes大小的排序,这样你就会轻易的找到成功包含文件的返回包。

在cheatsheet上面讨论了一种方法,可以注入服务端脚本(可以理解为上传一句话),不过如果你想这样做,必须对服务器文件有写权限。http主机服务器在两个地方允许有写权限,error log和access。fuzzdb其中有一个文件专门存放了常见的error log存放目录。在进行fuzz时也可以把他们加到目录上。

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/attack-payloads/lfi/common-unix-httpd-log-locations.txt

Fuzzing for Unknown Methods(测试未知方法)

当服务端没有对用户可以拥有的权限做出正确的验证,就会出现权限漏洞。在使用 role-based access control的网站上就经常会出现这个问题,在展示菜单的时候根据用户的权限展示,但是在选择的时候却没用验证权限。因为他们觉得,用户不会使用一个,页面上不存在的选项。这些疏忽很容易被不怀好意黑客利用。

Fuzzdb包含了很多常见方法的名字,这些方法通常是不显示在普通用户界面,但是可以直接调用的。

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/attack-payloads/BizLogic/CommonMethods.fuzz.txt

这些方法的名称,可以被放在get,post,cookie,REST url中进行提交。 另外,对javascript文件进行暴力的扫描也可能让你有意想不到的收获。因为有些网站的设计者,把所有的js全部堆在一起,而不是根据不同的用户权限把js区分开来。你可以在这些js文件在当中,找到一些你遍历网站找不到的信息。

Leftover Debug Functionality(未删除的调试功能)

有些时候一些调试用的代码会被遗留到服务器上,当这些代码被触发时,可能会返回详细的报错信息。其中可能包含一些敏感的配置信息,这些信息有助于我们进一步的渗透。

fuzzDB包含了很多常用的测试变量。

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/attack-payloads/BizLogic/DebugParams.fuzz.txt

样例文件中包含

代码语言:javascript
复制
admin=1
admin=true
admin=y
admin=yes
adm=true
adm=y
adm=yes
dbg=1
dbg=true
dbg=y
dbg=yes
debug=1
debug=true
debug=y
debug=yes

'1' 'true' 'y' 'yes' 时最常出现的几个值,如果你们发现了其他的,请加到我的工程中来。

实际应用中,把这些值,通过get post cookie 或者 序列化之后提交,然后看看返回结果如何。

Predictable File Locations(预测文件位置)

有一些web框架和服务器会有很多固定的文件,fuzzDB也搜集了这些文件的信息。

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/#trunk%2Fdiscovery%2FPredictableRes

比如你确定目标服务器运行着Apache Tomcat。那么你可以通过fuzzDB调用一系列的默认文件路径,说不定可以得到泄露的敏感信息和进一步攻击的可能性。

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/discovery/PredictableRes/ApacheTomcat.fuzz.txt

再比如你已经确定了有一个叫做 /admin 的目录,fuzzDB也会提供很多通常在 /admin 下的文件,让你进行扫描。

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/trunk/discovery/PredictableRes/Logins.fuzz.txt

Forcible Browsing for Potentially Interesting Files(备份文件)

某些操作系统和文件编辑器,会不经意的泄露一些敏感文件的备份,这最终这会导致源码的泄露,

代码语言:javascript
复制
https://code.google.com/p/fuzzdb/source/browse/#svn%2Ftrunk%2Fdiscovery%2FFilenameBruteforce

fuzzDB收集了上百条后缀名,其中包含了100多个压缩包文件的后缀名,和很多常用备份文件的后缀名。

实践中,你在遍历目录的时候,把这些后缀名添加到文件名后面做替换即可。

[原文地址,译/FreeBuf小编蓝蓝]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档