在本文中,咱们将重点介绍使用Kali Linux工具DIRB的临时目录,并尝试在Web服务器中查找隐藏的文件和目录。php
一个路径遍历攻击也被称为“目录遍历”目标访问的文件和目录存储在Web根文件夹以外。经过使用带有“ ..”的序列的引用文件及其变体来操纵变量,或者使用绝对文件路径,能够访问存储在文件系统上的任意文件和目录,包括应用程序源代码,配置,和重要的系统文件。node
要求web
目标-BWAPP实验室,DVWA实验室,shell
攻击者– Kali Linux浏览器
本文的内容安全
DIRB介绍服务器
利用多个单词表进行目录遍历微信
Dirb的默认工做cookie
列举具备特定扩展名列表的目录网络
将输出保存到磁盘
忽略没必要要的状态码
默认工做Vs在警告消息中不中止工做
速度延迟
不递归(-r)
显示不存在页面
扩展列表(-X参数)与扩展头(-H参数)
不对网址(-t)强制使用结尾的“ /”
HTTP身份验证(-u用户名:密码)
什么是DIRB?
DIRB是一个Web内容扫描程序。它查找现有的(和/或隐藏的)Web对象。它基本上是经过对Web服务器发起基于字典的攻击并分析响应来工做的。
它带有一组易于使用的预配置攻击词表,但您可使用自定义词表。此外,DIRB有时能够用做经典的CGI扫描仪,但请记住是内容扫描仪,而不是漏洞扫描仪。
主要目的是帮助进行专业的Web应用程序审核。特别是在与安全性相关的测试中。它涵盖了经典Web漏洞扫描程序未涵盖的一些漏洞。DIRB寻找其余通用CGI扫描程序没法找到的特定Web对象。它既不搜索漏洞,也不搜索容易受到攻击的Web内容。
资料来源:https://tools.kali.org/web-applications/dirb
工具DIRB是内置的Kali Linux。打开终端并键入如下命令以获取软件包中包含的工具的概述:
rb
-a <agent_string>:指定您的定制USER_AGENT。 -c <cookie_string>:为HTTP请求设置cookie。 -f:精细调整NOT_FOUND(404)检测。 -H <header_string>:将自定义标头添加到HTTP请求。 -i:使用不区分大小写的搜索。 -l:找到时打印“ Location”标题。 -N <nf_code>:忽略此HTTP代码的响应。 -o <输出文件>:将输出保存到磁盘。 -p <代理[:端口]>:使用此代理。(默认端口为1080) -P <proxy_username:proxy_password>:代理身份验证。 -r:不要递归搜索。 -R:交互式递归。(询问每一个目录) -S:静默模式。不要显示通过测试的单词。(用于哑终端) -t:不要在网址上强制使用结尾的“ /”。 -u <用户名:密码>:HTTP身份验证。 -v:也显示NOT_FOUND页。 -w:不要在警告消息上中止。 -X <扩展名> / -x <扩展名文件>:在每一个单词后加上该扩展名。 -z:添加毫秒延迟,以避免致使过多的Flood。
利用多个单词表进行目录遍历
上面的攻击经过使用默认的wordlist_files common.txt起做用,可是咱们能够更改此单词列表,并能够选择另外一个单词列表进行目录遍历。您必须按照如下路径查看全部可用的单词表。
1234 |
cd /usr/share/wordlists/dirbls –lacd /usr/share/wordlists/vulnsls -la |
您能够从下面的图像中看到,有不少文本文件做为wordlist。咱们能够根据须要使用它们。
Dirb的默认工做
在此攻击中,common.txt被设置为目录遍历的默认单词列表,抗议者可使用如下命令。打开终端,而后键入如下命令以启动“布鲁塞尔电话簿”攻击。
1 |
dirb http://192.168.1.106/dvwa/ |
DIRB使用common.txt文件返回在目标URL中找到的枚举目录,以下图所示。
列举具备特定扩展名列表的目录
在不少状况下,咱们须要在目标服务器上提取特定扩展名的目录,而后可使用dirb扫描的-X参数。此参数接受文件扩展名,而后在目标服务器或计算机上搜索给定的扩展名文件。
1 |
dirb http://192.168.1.106/dvwa/ -X .php |
上面的命令将提取与php扩展名相关的全部目录路径,以下图所示。
将输出保存到磁盘
出于记录维护,更好的可读性和未来参考的目的,咱们将dirb扫描的输出保存到文件中。为此,咱们将使用dirb扫描的参数-o能够将dirb扫描的输出保存在文本文件中。
1 |
dirb http://192.168.1.106/dvwa/ -o output.txt |
上面的命令将在枚举目录的桌面上生成一个output.txt文件。
既然咱们已经成功执行了命令,如今让咱们遍历该位置以确保输出是否已经保存在文件上。在这种状况下,咱们的输出位置是/root/output.txt。
忽略没必要要的状态码
Status-Code元素是一个3位整数,其中Status-Code的第一位定义响应的类别,然后两位不具备任何分类做用。在这种攻击中,咱们在代码302上使用–N参数,以下所示。
1 |
dirb http://192.168.1.106/dvwa/ -N 302 |
从给定的屏幕快照中您能够了解到,dirb扫描忽略了NOT FOUND代码302。
默认工做与警告消息不间断不间断工做
在以下所示的常规Dirb扫描期间,某些页面会生成警告;Dirb扫描会跳过那些遇到任何警告的目录。
1 |
dirb http://192.168.1.106/ |
在进行很是深刻且冗长的扫描时,咱们但愿dirb扫描不要避免这些警告并进行深刻扫描,所以咱们使用dirb扫描的-w参数。
1 |
dirb http://192.168.1.106/ -w |
如您所见,即便在默认扫描中缺乏警告消息以后,也会列出突出显示的目录/ dev / shell。
速度延迟
在不一样状况下工做时,咱们遇到了某些环境,没法处理由Dirb扫描建立的泛洪,所以在这些环境中,将扫描延迟一段时间是很重要的。使用dirb扫描的-z参数能够轻松完成此操做。在此参数中,以毫秒为单位提供时间。就像在给定示例中所示,咱们给了100秒的延迟。
1 |
dirb http://192.168.1.106/dvwa -z 100 |
不递归(-r)
默认状况下,dirb扫描以递归方式扫描目录。这意味着它将扫描目录,而后遍历该目录以扫描更多子目录。可是在某些状况下,若是时间不足,咱们会将Dirb设置为不递归扫描。这可使用-r参数来实现。
1 |
dirb http://192.168.1.106/dvwa -r |
显示不存在页面
404错误是HTTP状态代码,这意味着您尝试在其网站上访问的页面没法在其服务器上找到。404 Not Found错误消息常常由各个网站定制。在某些状况下,咱们也须要找到404页,默认状况下,dirb会跳过。要查找这些页面,咱们将使用-v参数。
1 |
dirb http://192.168.1.106/dvwa -v |
从下面的图像中能够看到,它还提取了全部与404错误相关的目录。
扩展列表(-X参数)与扩展头(-H参数)
经过将–X参数与具备特定扩展名(例如.php)的目标URL一块儿使用,它枚举了全部具备.php扩展名的文件或目录,但经过将–H参数与特定扩展名一块儿使用(例如.php与目标URL一块儿)它将枚举用php命名的全部文件或目录,以下图所示。
1 |
dirb http://192.168.1.106/dvwa -H .php |
不对网址(-t)强制使用结尾的“ /”
从前面状况中使用的攻击开始,为了运行dirb工具,咱们将不得不在URL的末尾添加一个正斜杠(/)以便在dirb中接受。为了检查咱们是否须要对URL末尾进行一次无正斜杠的攻击。
1 |
dirb http://192.168.1.105/bwapp/portal.php |
您会发现,因为缺乏正斜杠,所以扫描未成功执行,咱们在本文前面已讨论了其重要性。
使用相同的命令并进行一些更改后再次尝试这种攻击,所以,要运行该命令,咱们必须在上一个命令中添加-t。
1 |
dirb http://192.168.1.105/bwapp/portal.php -t |
如今,咱们能够观察到即便没有正斜杠,咱们仍然能够成功执行dirb扫描。
HTTP受权(-u用户名:密码)
HTTP身份验证/身份验证机制所有基于401状态代码和WWW身份验证 响应标头的使用。最普遍使用的 HTTP身份验证 机制是 Basic。客户端将用户名和密码做为未加密的base64编码文本发送。
所以,为了在dirb的帮助下绕过这种身份验证,咱们使用了如下命令:
1 |
dirb http://testphp.vulnweb.com/login.php -u test:test |
结果,将显示测试的状态码200:目标URL上的测试和受权凭证。
代理网址
使用– p选项可将代理URL用于全部请求,默认状况下,它可在端口1080上使用。您能够观察到,在Web浏览器中浏览目标网络IP时,它显示了“禁止访问错误”,这表示该网页是在某些代理后面运行。
为了确保这一预测,咱们两次运行了dirb命令,首先在默认状况下在端口80上运行,再在端口3129上运行–p选项(启用代理参数)。
12 |
dirb http://192.168.1.108dirb http://192.168.1.108 –p 192.168.1.108:3129 |
从下面给出的图像中,您能够参考从以上命令得到的输出结果,这里在执行第一个命令时没有得到任何目录或文件,而在第二个命令中其余执行成功了。
本文分享自微信公众号 - 网络安全与信息技术(chuanqzk)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。