当前位置:网站首页>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,这样就判断出了
边栏推荐
- Win32 create window and button (lightweight)
- Microservice API gateway zuul
- Visual upper system design and development (Halcon WinForm) -3 Image control
- Detailed explanation of four modes of distributed transaction (Seata)
- 驱动与应用程序通信
- MongoDB 的安装和基本操作
- Download and install common programs using AUR
- 秒杀系统2-Redis解决分布式Session问题
- Microservice - Nacos registration center and configuration center
- CString中使用百分号
猜你喜欢

详解指针进阶2
![[system safety] 43 PowerShell malicious code detection series (5) automatic extraction of ten thousand words from abstract syntax tree](/img/cd/00954b9c592c253d42e6a3b8298999.jpg)
[system safety] 43 PowerShell malicious code detection series (5) automatic extraction of ten thousand words from abstract syntax tree

Baidu AI Cloud helps Shizuishan upgrade the smart health care model of "Internet + elderly care services"

UnityShader——MaterialCapture材质捕捉效果 (翡翠斧头)

WinDbg分析dump文件

Automatic generation of client code from flask server code -- Introduction to flask native stubs Library

突破100万,剑指200万!

Jvm-06-execution engine

Popular understanding of linear regression (I)

Subclass hides the function with the same name of the parent class
随机推荐
Wechat payment -jsapi: code implementation (payment asynchronous callback, Chinese parameter solution)
使用AUR下载并安装常用程序
Srs4.0+obs studio+vlc3 (environment construction and basic use demonstration)
Detailed pointer advanced 1
Salary 3000, monthly income 40000 by "video editing": people who can make money never rely on hard work!
Vs2017 is driven by IP debugging (dual machine debugging)
Visual upper system design and development (Halcon WinForm) -4 Communication management
App移动端测试【5】文件的写入、读取
详解指针进阶2
UnityShader——MaterialCapture材质捕捉效果 (翡翠斧头)
Jvm-08-garbage collector
Popular understanding of linear regression (I)
Unityshader - materialcapture material capture effect (Emerald axe)
几种常见IO模型的原理
Digital image processing -- popular Canny edge detection
大csv拆分和合并
Markdown file titles are all reduced by one level
[combinatorial mathematics] binomial theorem and combinatorial identity (binomial theorem | three combinatorial identities | recursive formula 1 | recursive formula 2 | recursive formula 3 Pascal / Ya
Get the executable path through the process PID (queryfullprocessimagename)
Use percent sign in CString