upload-labs

pass01

源码解释

document.getElementsByName ()通过元素名称获取文档的第一个元素,这里获取的文档的名称是uoload_file这一表单元素(收集用户输入的信息内容)

file==null的意思是文件为空,这里通过判断真假值来判断用户是否选择了文件,如果为真值即为空的话就提示用户上传文件

将一些扩展名定义为allow_ext,然后用file.substring(file.lastIndexOf("."))获取文件扩展名,意思是从.这个字符开始截取到字符串末尾以得到扩张名

allow_ext.indexOf(ext_name + "|") == -1,检查字符串后面有无紧跟|组成的字符串,有则结果为-1,这样的话就说明扩展名不允许,那么就弹出不允许上传的提示,返回false阻止文件上传

解题:

提示上传文件,只能是图片,所以不能直接上传php木马

尝试上传php之后抓包,啥也没有,那么尝试传看看jpg的木马在抓包改格式,将jpg改成php重放一下

在响应页找不到路径,返回网站看看,在照片上找到了

用蚁剑连接成功

pass02

源码

$is_upload = false, 初始化一个变量,用于标记文件是否上传成功,初始值为false

$msg = null,初始化一个变量,初始值为 null

if (isset($_POST['submit'])),检查post传参方式

if (file_exists(UPLOAD_PATH)),检查上传目录UPLOAD_PATH是否纯在,若不纯在给出提示

if((_FILES\['upload_file'\]\['type'\] == 'image/jpeg') \|\| (_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')),检查上传文件类型是否为所写的方式,若不是给出提示字符串

temp_file = _FILES['upload_file']['tmp_name'],获取临时文件名

img_path = UPLOAD_PATH. '/' . _FILES['upload_file']['name'];,获取临时文件路劲

move_uploaded_file(temp_file, img_path),将来时文件移动到指定的上传目录,之后判断移动成功与否给出相应的字符串提示

解题:

和第一关一样的界面

延续第一关的办法尝试抓包php,直接就抓到了,但是响应页没有路径,尝试修改php上传方式为jpg,然后用第一关的办法去获得路径

发送之后返回网站发现上传成功了,这里要注意,如果自己手打修改上传方式可能会出错,我试了好几遍手打image/jpeg都上传失败

一样看路径

蚁剑连接成功

pass03

相关推荐
Zaralike4 分钟前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
云姜.15 分钟前
网络协议----OSI七层网络协议 和 TCP/IP四层(五层)网络协议
网络·网络协议
!chen25 分钟前
LabVIEW TCP Server端工具TCP通信
网络·tcp/ip·labview
枷锁—sha1 小时前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
郝学胜-神的一滴1 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
池央1 小时前
CANN 算子诊断与故障定位:oam-tools 在异构计算错误解析中的作用
网络
“αβ”1 小时前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
释怀不想释怀1 小时前
Linux网络基础(ip,域名)
linux·网络·tcp/ip
开开心心就好1 小时前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender
子榆.1 小时前
CANN 性能分析与调优实战:使用 msprof 定位瓶颈,榨干硬件每一分算力
大数据·网络·人工智能