文件上传 06 解析攻击

本文记录文件上传学习过程,教程为 《Upload Attack Framework V1.0》

解析攻击

网络渗透的本质

主体就是代码注入+代码解析/执行

像缓冲区溢出攻击,sql 注入攻击,文件上传攻击,文件包含攻击,脚本代码注入等等

主要分为两种情况

  1. 直接解析/执行攻击

    像缓冲区溢出和sql 注入攻击,脚本代码注入就是很明显的属于这里攻击

    直接将代码注入到一个解析/执行环境里,直接就能让代码得到执行

    所以危害性也来得最大,效果最明显

    shellcode 注入程序后,直接劫持EIP,进行该系统环境权限做任何操作

    sql 命令注入数据库后,直接就能执行该数据库账号权限下的任何操作

  2. 配合解析/执行攻击

    算是一种组合攻击,在这类情况下

    往往不像第一种情况能拥有直接的解析/执行环境

    比较明显的就是我们的上传攻击

    我们需要先上传数据(注入代码)到服务端上去

    然后想办法去调用解析/执行环境(比如Web 应用程序解析漏洞)

    来解析/执行已经注入到了服务端的代码

1. 直接解析

能以asp,php 之类的扩展名存储在服务器上

2. 本地文件包含解析

主要是php 的本地文件包含(远程文件包含不属于上传攻击绕过范畴)

3. .htaccess解析

用户自己定义如何去调用解析器解析文件就可以了

4. web应用程序解析漏洞以及其原理

  1. [*] Apache 解析漏洞

    解析: test.php.任意不属于黑名单且也不属于Apache 解析白名单的名称

    描述:一个文件名为x1.x2.x3 的文件,Apache 会从x3 的位置往x1 的位置开始尝试解析如果x3 不属于Apache 能解析的扩展名,那么Apache 会尝试去解析x2 的位置,这样一直往前尝试,直到遇到一个能解析的扩展名为止

    测试:测试了下面这些集成环境,都以它们的最新版本来测试,应该能覆盖所有低版本

     WampServer2.0 All Version (WampServer2.0i		/ Apache 2.2.11) [Success]
     WampServer2.1 All Version (WampServer2.1e-x32 	/ Apache 2.2.17) [Success]
     Wamp5 All Version (Wamp5_1.7.4 					/ Apache 2.2.6) [Success]
     AppServ 2.4 All Version (AppServ - 2.4.9 		/ Apache 2.0.59) [Success]
     AppServ 2.5 All Version (AppServ - 2.5.10 		/ Apache 2.2.8) [Success]
     AppServ 2.6 All Version (AppServ - 2.6.0 		/ Apache 2.2.8) [Success]
    
     上面测试过的集成环境都有这个扩展名解析顺序漏洞(muma.php.jpg)(%00 截断),
     然后所有测试过的集成环境都有对 php3 扩展名按 php 解析这个小洞
     (本质上来说这个不算漏洞,只是在针对一些名单不全的黑名单时,能有绕过的机会)。
    
  2. [*] IIS 解析漏洞

    解析:test.asp/任意文件名| test.asp;任意文件名| 任意文件名/任意文件名.php

    描述:IIS6.0 在解析asp 格式的时候有两个解析漏洞,一个是如果目录名包含".asp"字符串,那么这个目录下所有的文件都会按照asp 去解析,另一个是只要文件名中含有".asp;“会优先按asp 来解析 IIS7.0/7.5 是对php 解析时有一个类似于Nginx 的解析漏洞,对任意文件名只要在URL 后面追加上字符串”/任意文件名.php"就会按照php 的方式去解析(IIS6.0 没测试)

    测试:测试了下面这些集成环境,都以它们的最新版本来测试,应该能覆盖所有低版本

     IIS6.0 (Win2003 SP2 + IIS6.0) [Success]
     IIS7.0 (Win2008 R1 + IIS7.0) [Success]
     IIS7.5 (Win2008 R2 + IIS7.5) [Success]
    
     针对IIS6.0,只要文件名不被重命名基本都能搞定
    
     对于 {任意文件名/任意文件名.php} 这个漏洞其实是出现自 php-cgi 的漏洞,
     所以其实跟IIS 自身是无关的
    
    1. 使用文件名为 evil2.asp;xxxxxxx 的文件

    2. 使用 test.asp 目录下的文件名为 eval 文件

    3. 使用文件名为 evilcode 文件

  3. [*] Nginx 解析漏洞

    解析:任意文件名/任意文件名.php | 任意文件名%00.php

    描述:目前Nginx 主要有这两种漏洞,一个是对任意文件名,在后面添加/任意文件名.php 的解析漏洞,比如原本文件名是test.jpg,可以添加为test.jpg/x.php 进行解析攻击。还有一种是对低版本的Nginx 可以在任意文件名后面添加%00.php 进行解析攻击。

    测试:测试了下面这些环境

     nginx 0.5.* [Success]
     nginx 0.6.* [Success]
     nginx 0.7 <= 0.7.65 [Success]
     nginx 0.8 <= 0.8.37 [Success]
    

    对于任意文件名/任意文件名.php 这个漏洞其实是出现自php-cgi 的漏洞,所以其实跟nginx 自身是无关的

    上传图片,然后通过xx.jpg%00.php 解析漏洞连接一句话木马

  4. 从漏洞原理来说总归有4 类web 应用程序解析漏洞

    [*] Apache 的扩展名顺序解析漏洞 - 这个是Apache 自身的漏洞

    [*] IIS 的asp 解析漏洞 - 这个是IIS 自身的漏洞

    [*] Nginx 的%00 解析漏洞 - 这个是Nginx 自身的漏洞

    [*] php-cgi 的默认配置漏洞 - 这类漏洞主要出现在IIS 和Nginx 这类以CGI 形式调用php 的web 应用程序而Apache 通常是以module 的形式去调用php,所以很少出现这个漏洞

  5. php-cgi 的默认配置漏洞

    Bug #50852 FastCGI Responder’s accept_path_info behavior needs to be optional

    地址: https://bugs.php.net/bug.php?id=50852&edit=1

    这个漏洞由cgi.fix_pathinfo 的值造成的

    php-cgi 默认的配置里cgi.fix_pathinfo 是被注释掉的

    实际运行效果是以cgi.fix_pathinfo = 1 在运行

    而通常安全意识不高的管理员在安装IIS+php 或Nginx+php 的时候都是以默认配置在安装自然这种情况下,这类服务器全都会产生漏洞

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值