当前位置:网站首页>uploads-labs靶场(附源码分析)(更新中)
uploads-labs靶场(附源码分析)(更新中)
2022-07-03 15:53:00 【MUNG东隅】
pass-01
存在前端验证

onsubmit:当提交表单时执行一段 JavaScript。它只认true或者false.如果不返回值,则默认为true

写一个图片马,后缀是图片后缀,然后bp抓包改就行了

蚁剑连接

源码分析
前端:

checkile()函数
function checkFile() {
var file = document.getElementsByName('upload_file')[0].value;
if (file == null || file == "") {
alert("请选择要上传的文件!");
return false;
}
//定义允许上传的文件类型
var allow_ext = ".jpg|.png|.gif";
//提取上传文件的类型
var ext_name = file.substring(file.lastIndexOf("."));
//判断上传文件类型是否允许上传
if (allow_ext.indexOf(ext_name + "|") == -1) {
var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
alert(errMsg);
return false;
}
}首先通过getElementsByName获得表单元素,它获得的也是类数组,如果想准确得到某一个元素,可以使用数组下标的方式获取,那么这里document.getElementsByName('upload_file')[0].value;就获得了文件名。
后面if语句判断上传文件是否为空
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
实例:
var str="Hello world!";
document.write(str.substring(3)+"<br>");
document.write(str.substring(3,7));
---------------------------------------------------------------------
lo world!
lo w indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 lastIndexOf() 方法获取后缀名 返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex 处开始。 字符串中的字符被从左向右索引。首字符的索引(index)是 0,最后一个字符的索引是 stringName.length - 1。 例子:
String name = "upload.doc";
// 获取后缀名
String sname = name.substring(name.lastIndexOf("."));
//获得upload部分
String fileName=name.substring(0,name.lastIndexOf("."));if (allow_ext.indexOf(ext_name + "|") == -1) ,在允许上传的后缀名里查找刚刚提取出的后缀名,如果找不到indexOf()函数会返回-1,这样就判断出了
边栏推荐
- How to use annotations such as @notnull to verify and handle global exceptions
- String functions that you need to know
- 互斥对象与临界区的区别
- Microservices Seata distributed transactions
- Persisting in output requires continuous learning
- Popular understanding of linear regression (II)
- 几种常见IO模型的原理
- Get the executable path through the process PID (queryfullprocessimagename)
- A Fei's expectation
- Microservice - fuse hystrix
猜你喜欢

Visual upper system design and development (Halcon WinForm) -5 camera

Function introduction of JMeter thread group

请做好3年内随时失业的准备?

Seckill system 3- product list and product details

WinDbg analysis dump file

Subclass hides the function with the same name of the parent class

秒殺系統3-商品列錶和商品詳情

Popular understanding of random forest

Microservice - declarative interface call openfeign

Concurrency-02-visibility, atomicity, orderliness, volatile, CAS, atomic class, unsafe
随机推荐
几种常见IO模型的原理
Please be prepared to lose your job at any time within 3 years?
Download and install common programs using AUR
Secsha system 1- login function
秒杀系统2-Redis解决分布式Session问题
Break through 1million, sword finger 2million!
VC下Unicode和ANSI互转,CStringW和std::string互转
WinDbg分析dump文件
Qt常用语句备忘
Distributed task scheduling XXL job
Unity功能——Unity离线文档下载及使用
Summary of concurrent full knowledge points
CString中使用百分号
阿飞的期望
2022年Q2加密市场投融资报告:GameFi成为投资关键词
Visual upper system design and development (Halcon WinForm) -1 Process node design
C language brush questions ~leetcode and simple questions of niuke.com
Function introduction of JMeter thread group
Principles of several common IO models
Seckill system 2 redis solves the problem of distributed session