欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

21、渗透测试笔记_文件上传&&解析漏洞_20191118

程序员文章站 2022-05-27 15:45:20
...

1、文件解析漏洞

  • 解析漏洞主要说的是一些被IIS、Apache、nginx在某种情况下解释成脚本文件格式的漏洞

1.1、IIS 5.x/6.0解析漏洞(两种解析)

  • 1)目录解析 /xx.asp/xx.jpg

    在网站下建立文件夹的名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行;

  • 2)文件解析 a.asp;.jpg

    在IIS6.0下,分号后面的不被解析,也就是说a.asp;.jpg会被服务器看成是a.asp,还有默认的可执行文件除了asp还有三种:a.asa、a.cer、a.cdx

1.2、Apache解析漏洞

  • Apache是从右到左开始判断解析,如果为不可识别解析,就在往左判断,如a.php.owf.rar “.owf”和“.rar”这两种后缀是apache不可识别解析,apache就会把a.php.owf.rar解析为php.
  • 如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个a.php.rara.jpg.png…(把你知道的后缀都写上…)去测试后缀是否是合法后缀,任意不识别的后缀,逐级向上识别

1.3、Nginx<8.03空字节代码执行漏洞

  • 影响版本:0.5.,0.6.,0.7<=0.7.65,0.8<=0.8.37
  • Nginx在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码

1.4、htaccess文件解析

  • 如果在Apache中的.htaccess可被执行,且可被上传。那可以尝试在.htaccess中写入:

    <FilesMatch "shell.jpg">SetHandler application/x-httpd-php
    </FilesMatch>
    
  • 在上传shell.jpg的木马,这样shell.jpg就可以解析为php文件

2、检测绕过

2.1、客户端检测绕过(javascript 检测)

  • 首先判断JS本地验证
  • 通常可以根据它的验证警告弹框的速度可以判断,如果你电脑运行较快,那么我们可以用burp抓包,在点击提交时候burp没有抓到包,就已经弹框那么说明这个就是本地js验证。
  • 绕过方法:
    1. 使用burp抓包改名
    2. 使用firebug直接删除掉本地验证的js代码
    3. 添加js验证的白名单如将php的格式添加进去

2.2、服务端检测绕过(MEME类型检测)

  • MIME的作用:

    使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件

  • web服务器使用MIME来说明发送数据的种类,web客户端使用MIME来说明希望收到的数据种类

  • tomcat的安装目录\conf\web.xml中就定义了大量MIME类型;

  • 绕过方法:

    直接使用burp抓包,得到post上传数据后,将Content-Type:text/plain改成Content-Type:image/gif

2.3、服务端目录绕过

  • 当/a/1.php的目录a没有权限时,可以使用…/.php的形式,(…/是到上层目录),这样文件即可上传到和a同级的目录

2.4、服务器检测绕过(文件扩展名检测)

  • 黑名单检测

    黑名单的安全性比白名单的安全性低很多,攻击手法自然也比白名单多一般有个专门的blacklist文件,里面会包含常见的危险脚本文件例如fckeditor2.4.3或之前版本的黑名单

  • 白名单检测

    白名单相对来说比黑名单安全一些,但也不是绝对安全

2.5、绕过黑名单

  1. 文件名大小写绕过
    • 用像Asp、pHp之类的文件名绕过黑名单检测
  2. 名单列表绕过
    • 用黑名单里没有的名单进行攻击,比如黑名单里没有asa或cer之类
  3. 特殊文件名绕过
    • 比如发送的http包里把文件名改成test.asp.或test.asp_(下划线为空格),这种命名方式在windows系统里是不被允许的,所以需要在burp之类里进行修改,然后绕过验证后,会被windows系统自动去掉后面的点和空格,但要注意Uinx/Linux系统没有这个特性
  4. 0x00截断绕过
    • 扩展名检测中,目前我只遇到过asp的程序有这种漏洞,给个简单代码
    • name=getname(http request)//假如这时候获取到的文件名是test.asp.jpg(asp后面为0x00)
    • type=gettype(name)//而在gettype()函数里处理方式是从后往前扫描扩展名,所以判断为jpg
    • if(type==jpg)

2.6、绕过白名单

  1. 0x00截断绕过

    • 用test.asp%00.jpg的方式进行截断,属于白名单文件,再利用服务端代码的检测逻辑,漏洞进行攻击,目前我只遇到过asp的程序有这种漏洞
  2. 解析调用/漏洞绕过

    • 这类漏洞直接配合上传一个代码注入过的白名单文件即可,再利用解析漏洞/调用
  3. htaccess文件攻击

    • 通过一个.htaccess文件调用php的解析器去解析一个文件名中只要包含"haha"这个字符串的任意文件,所以是无论文件名是什么样子,只要包含"haha"这个字符串,都可以被以php的方式解析;一个自定义的.htaccess文件就可以各种各样的方式去绕过很多上传验证机制

    • 建立一个.htaccess文件,里面内容如下:

    • <FilesMatch "haha">
      SetHandler application/x-httpd-php </FilesMatch>
      
    • 同目录有个我们上传一个只有文件名并包含字符串的“haha”,但是却无任何扩展名的文件,里面的内容是php一句话木马

2.7、绕过检测文件头

  • 主要是检测文件内容开始处的文件幻数,比如图片类型的文件幻数如下

  • 要绕过jpg文件幻数检测就要在文件开头写上以下的值

    Value=FF D8 FF E0 00 10 4A 46 49 46
    
  • 要绕过gif文件幻数检测就要在文件开头写上以下的值

    Value=47 49 46 38 39 61
    
  • 要绕过png文件幻数检测就要在文件头写上以下的值

    Value=89 50 4E 47
    
  • 然后再文件幻数后面加上自己的一句话木马代码即可

3、IIS解析漏洞目录解析

  1. 在网站根目录下创建aaa.asp,并将图片马复制到文件夹21、渗透测试笔记_文件上传&&解析漏洞_20191118
  2. 使用浏览器访问此图片,发现已经解析为asp文件
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  3. 打开菜刀,输入密码1进行连接
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  4. 连接成功如下
    21、渗透测试笔记_文件上传&&解析漏洞_20191118

4、IIS解析漏洞文件解析(含**可上传文件)

  1. 打开目标网站,注册个账号进行登录
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  2. 登录后找到文件上传位置
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  3. 同时将浏览器配置代理,打开burpsuite进行抓包
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  4. 点击上传文件,选择要上传的文件,点击上传,看到burp抓到的数据包
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  5. 由于管理员对上传文件类型进行了限制,故可以使用burpsuite**,查看可上传的文件类型,右键将数据包发给Intruder
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  6. 点击Intruder–>Positions–>点击clear$–>选中cmd.asp中的asp–>点击add
    21、渗透测试笔记_文件上传&&解析漏洞_20191118

21、渗透测试笔记_文件上传&&解析漏洞_20191118

  1. 点击Payloads–>选择load …–>选择上传的词典(词典中为常用的webshell后缀名)
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  2. 将最下方的Payload Encoding的勾去掉,点击右上角的Start attack
    21、渗透测试笔记_文件上传&&解析漏洞_20191118

21、渗透测试笔记_文件上传&&解析漏洞_20191118

  1. 点击length,按照长度排序,发现cer;.txt和asp.txt长度不同可以进行上传
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  2. 将木马名改为cmd.cer;.txt和cmd.asp.txt进行上传(**的时候木马已经上传,这里可以进行重新上传进行覆盖)
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  3. 点击文件进行浏览

21、渗透测试笔记_文件上传&&解析漏洞_20191118
21、渗透测试笔记_文件上传&&解析漏洞_20191118

  1. 打开菜刀进行连接(虽然cmd.asp.txt已经上传,但是无法进行解析,故使用cmd.cer;.txt)
    21、渗透测试笔记_文件上传&&解析漏洞_20191118
  2. 成功连接

21、渗透测试笔记_文件上传&&解析漏洞_20191118