web 渗透 --- 文件上传漏洞

目录

1、文件上传漏洞利用分析:

上传规律分析

上传验证方式

2、上传漏洞技术:

Js本地突破上传

突破攻击手法:

其他验证类型可通过burpsuite修改进行绕过

.htaccess上传相关

3、利用DVWA进行漏洞测试

low级别

medium级别

high级别

 impossible级别

总结:


1、文件上传漏洞利用分析:

  1. 上传规律分析

    1. 客户端和服务端上传文件命名一致
    2. 客户端和服务端上传文件命名不一致(时间日期等随机命名)
  2. 上传验证方式

    1. 本地端js验证
    2. 文件头验证
    3. 文件后缀验证
    4. 文件类型验证
    5. 其他验证

 

2、上传漏洞技术:

filepath修改,filetype修改,%00截断,文件头伪造,.htaccess后门等技术

 

Js本地突破上传

Javascript本地验证过滤上传,如何去判定这类验证?

  1. 根据返回时间
  2. 根据网站源代码

web 渗透 --- 文件上传漏洞_第1张图片

 

脚本语言代码:服务端代码 /= 客户端代码

Html,javascript:服务端代码 == 客户端代码

 

突破攻击手法:

本地浏览器禁用js

代码复制本地创建,修改指向action地址,删除js代码即可

其他验证类型可通过burpsuite修改进行绕过

web 渗透 --- 文件上传漏洞_第2张图片

.htaccess上传相关

使用:

  1. 隐藏后门
  2. 如果存在替换.htaccess的文件权限的话 我们可以尝试书写规则 解析php

利用步骤:
创建一个.htaccess文件:
代码内容:

设置命名带有php.gif的文件将php解析执行
php.gif”>
SetHandler application/x-httpd-php

 

3、利用DVWA进行漏洞测试

low级别

不进行任何过滤:

  • 使用kali的weevely 生成一个后门程序
weevely generate 123456 /root/Desktop/backdoor.php
  • 上传后门程序
  • 连接后门程序
weevely http://10.0.0.35/dvwa/hackable/uploads/backdoor.php 123456

web 渗透 --- 文件上传漏洞_第3张图片

源代码

Your image was not uploaded.
';     }     else {         // Yes!         echo "
{$target_path} succesfully uploaded!
";     } } ?>

 

medium级别

  • 对文件类型、大小进行验证

  • 源代码

Your image was not uploaded.
';         }         else {             // Yes!             echo "
{$target_path} succesfully uploaded!
";         }     }     else {         // Invalid file         echo '
Your image was not uploaded. We can only accept JPEG or PNG images.
';     } } ?>
  •  使用comparer进行比较

web 渗透 --- 文件上传漏洞_第4张图片

  •  通过修改文件类型,成功上传后门程序

web 渗透 --- 文件上传漏洞_第5张图片

 

high级别

  • 对文件后缀、文件类型及文件头进行过滤
  • 源代码
  • getimagesize()函数,获取图像信息。需要修改头文件
Your image was not uploaded.
';         }         else {             // Yes!             echo "
{$target_path} succesfully uploaded!
";         }     }     else {         // Invalid file         echo '
Your image was not uploaded. We can only accept JPEG or PNG images.
';     } } ?>

web 渗透 --- 文件上传漏洞_第6张图片

  •  修改文件头部,文件类型,文件后缀,上传成功

web 渗透 --- 文件上传漏洞_第7张图片

 impossible级别

  • 对上传的文件进行重命名,隐藏了保存路径
  • web 渗透 --- 文件上传漏洞_第8张图片
  • 源代码
  • ${target_file} succesfully uploaded!
    "; } else { // No echo '
    Your image was not uploaded.
    '; } // Delete any temp files if( file_exists( $temp_file ) ) unlink( $temp_file ); } else { // Invalid file echo '
    Your image was not uploaded. We can only accept JPEG or PNG images.
    '; } } // Generate Anti-CSRF token generateSessionToken(); ?>

    总结:

  1. 校验扩展名是否在范围内
  2. 图像文件的情况下确认其文件头
  3. 针对上传文件大小进行约定
  4. 服务器端校验,重新渲染图片
  5. 上传文件重命名,并且把文件地址隐藏

你可能感兴趣的:(web,渗透)