使用fuzzDB进行web安全测试

写在前面:
fuzzDB看字面意思就知道,他是一个用于fuzz网站的库。类似于wwwscan之类工具的字典,但是他的过人之处是他是“开源”的,会有很多大神帮你维护一个字典,想想都心旷神怡啊。
正文:
自从写了一个FuzzDB的介绍之后,基友们纷纷表示想看到关于这款工具的更多细节。这篇文章介绍了,FuzzDB中我最喜欢的几个特性以及怎样使用它们。如果下面的内容还不能让你满足,或者你想在新的文章中看到什么,请给我留言。
Exploiting Local File Inclusion(本地文件包含)
在进行本地文件包含漏洞的fuzz时,fuzzDB可以帮我们做很多事。(更多关于这个漏洞你可以看这里)
首先,他对于目录遍历有很多功能,要遍历多深,怎样进行编码以绕过黑名单,以及一些常见的安全漏洞,freeDB都会为你提供。而且它还包含8种不同的攻击模式
https://code.google.com/p/fuzzdb/source/browse/trunk/attack-payloads/path-traversal/traversals-8-deep-exotic-encoding.txt
举个例子来说:
/%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时也可以把他们加到目录上。
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包含了很多常见方法的名字,这些方法通常是不显示在普通用户界面,但是可以直接调用的。
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包含了很多常用的测试变量。
https://code.google.com/p/fuzzdb/source/browse/trunk/attack-payloads/BizLogic/DebugParams.fuzz.txt
样例文件中包含
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也搜集了这些文件的信息。
https://code.google.com/p/fuzzdb/source/browse/trunk/#trunk%2Fdiscovery%2FPredictableRes
比如你确定目标服务器运行着Apache Tomcat。那么你可以通过fuzzDB调用一系列的默认文件路径,说不定可以得到泄露的敏感信息和进一步攻击的可能性。
https://code.google.com/p/fuzzdb/source/browse/trunk/discovery/PredictableRes/ApacheTomcat.fuzz.txt
再比如你已经确定了有一个叫做 /admin 的目录,fuzzDB也会提供很多通常在 /admin 下的文件,让你进行扫描。
https://code.google.com/p/fuzzdb/source/browse/trunk/discovery/PredictableRes/Logins.fuzz.txt
Forcible Browsing for Potentially Interesting Files(备份文件)
某些操作系统和文件编辑器,会不经意的泄露一些敏感文件的备份,这最终这会导致源码的泄露,
https://code.google.com/p/fuzzdb/source/browse/#svn%2Ftrunk%2Fdiscovery%2FFilenameBruteforce
freeDB收集了上百条后缀名,其中包含了100多个压缩包文件的后缀名,和很多常用备份文件的后缀名。
实践中,你在遍历目录的时候,把这些后缀名添加到文件名后面做替换即可。

使用fuzzDB进行web安全测试:等您发表观点!

发表评论


快捷键:Ctrl+Enter