任务087:手动漏洞挖掘(三)
手动漏洞挖掘一定要大量的进行尝试在尝,有的时候一天都找不到漏洞也是属于正常的
-
Directory traversal (目录便利)
目录便利漏洞: 正常情况下都是访问www里的文件。通过URL地址和参数地址从而访问到www以外的目录或文件,要是你用权限比较高的话运行服务器那么访问其他目录的权限就比较高就是服务器软件的权限 -
File include(文件包含)
文件包含漏洞:比如php的include函数他可以吧www文件以外的目录 include到页面里,其实正常情况下程序员不会这样设计程序的,通常是设计有漏洞导致的include函数过滤不严格所导致的 -
文件包含和目录便利都是可以查看到其他目录的文件,有的人都会把他搞成一样,其实详细来说是有区别的
-
明显特征
URL里如果有?配置=文件名就要注意了,后面的值是页面文件,这样可能就存在漏洞的地
列如URL里有?page=a.php ?home=b.html ?file=content
这个file=文件名就要警戒起来,可能也是通过 include函数来调用的
也有可能=页面文件名的也可能是在www文件里的都是也可以修改如?page=其他文件,看看能不能叫其他文件包含过来 -
进行测试 实验靶机metasploitable-linux-2.0.0
可以看到这个URL
5漏洞测试本地文件包含显示/etc/passwd的内容
使用怎么参数来显示…/…/…/…/…/…/…/…/…//etc/passwd
前是这个…/是进入到上个目录的命令多个…/,其实和cd …一样
下面是…/…/…/…/…/…/…/…/…/他的作用
5.1.1一个…/效果
不能会到上一层
5.1.2多个…/
一个就是会到上一个目录二个就是会到上上层目录
5.1.3这个…/…/…/…/…/…/…/…/…//etc/passwd就是像从最低目录开始查看/etc/passwd
可以看到页面已经出现passwd文件的内容了
其实linux都是从/目录开始不像win系统所以服务器是linux系统可以应为靶机就是linux系统可以直接标明绝对路径就可以了
5.2.0使用这个URL///etc/passwd来查看passwd
-
编码绕过字符,过滤
有的web发现你访问的是文件名的时候可能就会自动添加.php
比如我们要访问/etc/passwd他就会自动添加/etc/passwd.php就会导致文件访问说没有这个文件
有的web版本添加“.”和“%00”后面加上这两个的其中一个有可能就吧自动添加.php省略掉,这个%00就等于空字符,遇到%00后的后面的所有字符都被省略了
服务器过滤128一下的码都是不被URL过滤的都是可以在URL正常显示的服务器不会过滤的
6.1..和/是有可能是被过滤的
linux目录都是/什么什么/什么什么,而win系统都是c:\什么什么\什么什么
常用的绕过过滤的都是使用URL编码来绕过过滤,有的时候一层URL编码没有绕过那就在URL 后在进行一层URL编码也就是二层URL编码,都是你的编码要服务器能识别出来,所有要大量尝试方法。
6.1.1下面是…/URL编码
使用URL编码来查看/etc/passwd
…/编码成了%2e%2e%2f
成这样%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f/etc/passwd
还是可以正常查看 的
…/双层编码
…/双层编码来查看/etc/passwd
…/双层编码后变成%25%32%65%25%32%65%25%32%66
成这样
%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66/etc/passwd
可以看到是访问不成功的应为这个靶机服务器只能解码一层
本地文件包含只能查看文不能执行文件,其实不然很多情况下也可以执行代码的
本地文件下面演示一下代码执行,有很多种方法,下面就演示其中常适用用的一种这个应为我没有找到所有 -
远程文件包含
先做一次验证在kali用nc监听80端口
nc -nvlp 80
在靶机是请求会请求到kali这个服务器上
看见kali已经看到请求了