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

文件上传——js验证及如何绕过js验证

程序员文章站 2022-05-26 08:16:04
...

实验环境:php和burp suite

实验步骤:

一、文件上传——js验证

html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta charset="utf-8">
</head>
<body>
<form  action="fileupload.php" onsubmit="return checkupload();" method="POST"enctype="multipart/form-data">
    <input type="file" id="uploadfile" name="uploadfile">
    <input type="submit">
</form>

<script type="text/javascript">
    function checkupload(){
        //判断文件类型
        //1.获取文件名   
        //document.getElementById   在html中通过id属性获取标签
          var filetag=document.getElementById("uploadfile")
          var filename=filetag.value;
        //2.从文件名上截取后缀名
        //a.获取最后一个点出现的位置
          var lastpos=filename.lastIndexOf(".");
        //b.通过.截取文件
          var ext = filename.substring(lastpos+1);
        //3.判断后缀名,如果不是jpg  阻止表单的提交
        if (ext !="jpg"){
            alert("文件类型错误,上传失败");
            return false;
        }
    }

php代码如下:

<?php
   header("Content-Type:text/html;charset=utf-8");
   if (isset($_FILES["uploadfile"])){
       $uploadfile=$_FILES["uploadfile"];
           //将上传的文件从临时目录移动到当前web目录(当前目录下的uoload目录)
            $filename=$uploadfile["tmp_name"];
            $destination="upload/".$uploadfile["name"];
            //上传中文件名乱码  将文件名从utf-8编码转换为gbk编码
            $destination=iconv("utf-8","gbk",$destination);
            //问题2   上传一些文件报错  上传的路径采用绝对路径
            move_uploaded_file($filename,$destination);
   }

执行html代码

1.上传的是jpg格式的文件:

文件上传——js验证及如何绕过js验证

运行结果如下,图片成功上传:

文件上传——js验证及如何绕过js验证                   文件上传——js验证及如何绕过js验证

2.如果上传php文件

文件上传——js验证及如何绕过js验证

运行结果如下,文件上传失败:

文件上传——js验证及如何绕过js验证

二、如何绕过js验证,成功上传php文件

方法一:打开火狐浏览器,输入about:config,点击显示全部

 文件上传——js验证及如何绕过js验证 

输入java,找到javascript.enabled,双击true,改为false,如下图所示:

文件上传——js验证及如何绕过js验证

再次上传php文件,上传成功

文件上传——js验证及如何绕过js验证文件上传——js验证及如何绕过js验证

方法二:利用bp抓包,修改数据

首先可先将php文件的后缀改成jpg格式,让其通过前端的验证

文件上传——js验证及如何绕过js验证

打开bp,进行抓包,抓包成功,并将文件后缀名改为php,按forwars按钮,即可上传成功

文件上传——js验证及如何绕过js验证文件上传——js验证及如何绕过js验证

文件上传——js验证及如何绕过js验证

 

 

相关标签: web渗透