当前位置:网站首页>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,这样就判断出了
边栏推荐
- Summary of JVM knowledge points
- Popular understanding of gradient descent
- Principles of several common IO models
- Creation and destruction of function stack frames
- 需要知道的字符串函数
- Approval process design
- About text selection in web pages and counting the length of selected text
- A Fei's expectation
- Semi supervised learning
- 整形和浮点型是如何在内存中的存储
猜你喜欢

使用AUR下载并安装常用程序

Halcon and WinForm study section 2

如何使用 @NotNull等注解校验 并全局异常处理

Jvm-03-runtime data area PC, stack, local method stack

函数栈帧的创建和销毁

Microservice - declarative interface call openfeign

CString getbuffer and releasebuffer instructions

Jvm-08-garbage collector

Detailed explanation of string function and string function with unlimited length

Find mapping relationship
随机推荐
Jvm-06-execution engine
Create gradle project
秒杀系统3-商品列表和商品详情
坚持输出需要不断学习
VC下Unicode和ANSI互转,CStringW和std::string互转
Pandora IOT development board learning (HAL Library) - Experiment 5 external interrupt experiment (learning notes)
Three dimensional reconstruction of deep learning
do{}while()的妙用
Detailed explanation of string function and string function with unlimited length
Go语言自学系列 | golang switch语句
Summary of JVM knowledge points
Intelij idea efficient skills (III)
Reflection on some things
Markdown file titles are all reduced by one level
Nifi from introduction to practice (nanny level tutorial) - flow
Please be prepared to lose your job at any time within 3 years?
Distributed task scheduling XXL job
Redis installation under windows and Linux systems
Redis在Windows以及Linux系统下的安装
Seckill system 3- product list and product details