文件漏洞上传

一般危害:xss csrf ssrf
获取后台登录

影响业务逻辑
文件上传 严重级别漏洞,可以直接接管你的服务器

初级别:

文件漏洞上传

$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads///上传文件后,文件所保存的位置
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );通过 . 来进行拼接,通过files函数,来记录文件名称
先将上传的文件寸在临时目录下/tmp ,检查没问题后再上传到目标目录下
例如上传的文件名为ZZSlblog.php,那么将会保存在hackable/uploads/ZZSlblog.php目录下

思考:
如何判断文件上传到哪里了呢?
1,有回显: http://192.168.1.69/DVWA-master/dvwa/images/logo.png

1无回显情况:
对目录扫描(uploads目录或images目录,关键词)
2开源项目无回显:
直接审计代码,或者搭一个靶场
3.rename 改名字了 改名方式:时间戳 hash

Medium

文件漏洞上传

$uploaded_name = $_FILES[ 'uploaded' ][ 'name' ]; $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ]; $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
FILEs函数:
作用:
upload对应的你上传文件的名称,
name对应你上传文件的某一个属性’name’=filename
type,size类似
通过BP抓包对他进行实现:

文件漏洞上传
$uploaded_name = BLog1.jpg

$uploaded_type = image/jpeg

$uploaded_size = 508932
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
        ( $uploaded_size < 100000 ) ) { ` xxx }

上传的文件大小必须小于100k

  • 可以通过修改文件类型来进行文件上传绕过
  • 修改文件名的后缀名

常见位置的低级错误已经被发现和修复
犄角旮旯位置寻找(很容易没结果

High级别

文件漏洞上传
// File information
   $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
   $uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1);
   $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
   $uploaded_tmp  = $_FILES[ 'uploaded' ][ 'tmp_name' ];

第2行,将文件名后面拆分出来,拆分成文件类型存到ext中
$uploaded_name = BLog1.jpg

$uploaded_ext =jpg

$uploaded_tmp = 临时文件

$uploaded_size = 508932

if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
        ( $uploaded_size < 100000 ) &&
        getimagesize( $uploaded_tmp ) )

代码审计:
1.文件类型是否为:jpg,jpeg,ext
2.文件大小是否小于100k
3.getimagesize通过文件头判断文件是否为有效图片(绕过:前面加GIF89a)

绕过过程:
图片码=图片+代码

linux方法:
通过mimetype xxx.php来识别文件类型
cat xxx. php>>php xxx.jpg
windows方法;
copy 1.jpg/b+1.php/a 2.jpg ||b&#x662F;&#x4E8C;&#x8FDB;&#x5236;&#xFF0C;a&#x4E3A;ascii&#x7801;

图片码是不能直接被解析执行的,因此要结合文件包含漏洞使用:
include(webshell.jpg)
前提:这个漏洞是服务器端自带的:

<?php
$file = $_GET['file'];
include $file;
?>

上传思路:

1.制作图片马
2.通过文件包含漏洞引用webshell.jpg实现一句话木马的执行

Original: https://www.cnblogs.com/ZZslBl0g/p/16589132.html
Author: ZZslBl0g
Title: 文件漏洞上传

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578275/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球