首页 > 其他分享 >web——upload-labs——第一关

web——upload-labs——第一关

时间:2024-11-18 12:45:08浏览次数:3  
标签:web 验证 upload labs 文件 木马 攻击者 服务器 上传

今天新开一个upload-labs的靶场,文件上传,加油!!!!

先讲讲文件上传

文件上传:在Web开发中,文件上传功能是一个允许用户将文件(例如图片、文档)上传到服务器的常见特性。为了确保安全和数据一致性,通常需要在这个过程中实施前端验证和后端验证。这两种验证机制的目的是确保上传的文件符合预定的要求和安全标准。

前端验证

前端验证,也被称为客户端验证,是在用户的浏览器中执行的。这通常涉及到JavaScript及其他客户端技术,用以在用户提交文件之前检查文件。它的主要优点是用户体验;由于验证在用户设备上完成,因此可以即时给出反馈,而不需要等待服务器响应。

前端验证通常包括以下检查:

文件大小:确保上传的文件不超过服务器设置的最大文件大小限制。


文件类型:检查文件扩展名或MIME类型,确保只有允许的文件类型可以上传。


文件名:防止非法字符或敏感数据被包含在文件名中。


图像尺寸:特别是对图像文件,可以检查其尺寸符合特定要求。


虽然前端验证可以提高用户体验并减少服务器收到无效请求的次数,但不能保证安全,因为攻击者可以绕过前端验证(例如,禁用JavaScript或使用工具构造HTTP请求)。

后端验证

后端验证
后端验证,在服务器端进行,是安全措施的关键。当文件上传到服务器后,后端代码(如PHP、Node.js、Java等)会对文件进行一系列检查,以确保文件符合安全和业务逻辑标准。

后端验证通常包括以下检查:

文件大小:和前端类似,但是在服务器端再次验证是必不可少的安全措施。


文件类型:通过检查文件的实际内容(比如文件的魔数/签名)来确定其类型,而不只是依赖于扩展名,因为扩展名可以被伪造。


文件内容:扫描文件内容,确保没有恶意代码或不合规的数据。


用户权限:验证上传文件的用户是否有足够的权限进行该操作。


后端验证是防止恶意文件上传和其他上传相关安全威胁的最后防线。即使前端验证被绕过,后端验证也应能够阻止不安全的文件上传到服务器。
 

怎么看是前端验证还是后端验证

1.查看前端代码

通常在用户选择文件后,浏览器会通过 JavaScript 对文件进行验证,比如检查文件类型、大小、上传格式等。你可以通过查看页面的 HTML 和 JavaScript 代码来确认是否有相关的验证。

2.查看返回信息

二,一句话木马介绍

一句话木马(One-liner Trojan 或 Webshell)是一种常见的网络安全攻击工具,通常用于Web服务器的非法控制。它称为“一句话”,因为攻击者只需在目标服务器上的一个可访问的Web页面中植入一小段代码,就可以实现对服务器的远程控制。

这种木马通常以PHP、ASP、JSP等服务端脚本语言的形式出现,因为这些语言能够在服务器上执行。一句话木马的代码很简短,但功能却非常强大,能够接收远程命令并在服务器上执行这些命令。

例如,一个PHP语言的一句话木马可能看起来像这样:

<?php @eval($_POST['password']); ?>
在这个上下文中,'password' 实际上并不指代传统意义上的密码,而是一个参数名称,用于传递执行代码到服务器上的一句话木马。一句话木马是由攻击者植入的恶意代码,通常隐藏在一个合法的服务器文件中。攻击者通过发送HTTP POST请求,并在请求体中包含'password' 参数来传递他们想要执行的代码。

举例来说,攻击者可能会发送一个包含如下数据的POST请求:
password=phpinfo();

在服务器端,`$_POST['password']` 会接收到 `phpinfo();` 这段PHP代码。然后,当服务器上的一句话木马执行 `eval($_POST['password']);` 时,它会执行 `phpinfo();` 函数,这会导致服务器显示出PHP的配置信息。

这个参数名称 'password' 在这里只是用作远程传递代码的一个占位符,并不是用作身份验证。攻击者通常会选择一个不太引人注意的参数名,以避免激起安全软件或管理员的怀疑。在实际攻击中,攻击者可能会选择任何名称作为参数,不一定是 'password'。

在这个例子中,`$_POST['password']`是攻击者通过HTTP POST请求发送的代码或命令。`eval`函数会执行这些代码,这就允许攻击者远程执行任何他们想在受感染服务器上运行的PHP代码。

一旦一句话木马被上传并植入到Web服务器,攻击者就可以通过Web请求与之交互,进行多种恶意操作,比如:

- 数据窃取:访问数据库,盗取敏感信息。
- 网站篡改:修改网站内容或数据库。
- 服务器控制:作为跳板进一步渗透内网,安装更多的恶意软件。
- 建立后门:长期控制和访问服务器。
- 分布式拒绝服务 (DDoS) 攻击:利用服务器作为攻击其他目标的资源。

由于一句话木马非常隐蔽,且通常体积很小,因此很难被发现。它们可能会通过各种方式被上传到服务器,例如利用文件上传漏洞、开发者的错误配置、甚至是通过第三方组件的安全漏洞。

为了防御一句话木马,可以采取以下措施:

- 使用文件上传白名单,只允许特定类型的文件上传。
- 设置合适的文件权限,避免服务器上的文件被恶意修改。
- 定期更新和打补丁,修复已知的安全漏洞。
- 使用Web应用防火墙 (WAF) 或其他入侵检测系统来识别和阻止木马活动。
- 定期进行安全审计和代码审查。
- 对上传的文件进行扫描,检查可能的恶意代码。

总的来说,一句话木马是一个非常危险的安全威胁,需要网站管理员和安全专业人员保持警惕,并采取适当的安全措施来防范             
原文链接:https://blog.csdn.net/2302_80946742/article/details/137714313

开始第一关

1.第一步 判断是什么验证(前端还是后端)

上传一个看看

像这样很快的在浏览器中显示不允许上传的弹窗,并没有响应的情况下,就是属于客户端验证,即前段验证。

 

发现有源码,是前端验证,这个源码为

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;
    }

只允许上传jpg,png,gif的文件

有两个方法来搞

2.第二步

方法一 :关闭JavaScript

直接关闭javascript就可以了上传了

上传php一句话木马

出现一个图片,复制链接

可以登录

使用菜刀登录一下

成功注入

方法二:使用burp来抓包

打开burp

抓包

向这个网站传入一个以.jpg为后缀的文件

然后使用burp抓包

将图片后缀改为.php

成功进入

结束

标签:web,验证,upload,labs,文件,木马,攻击者,服务器,上传
From: https://blog.csdn.net/2301_80905479/article/details/143794994

相关文章

  • Go语言跨平台桌面应用开发新纪元:LCL、CEF与Webview全解析
    开篇寄语在Go语言的广阔生态中,桌面应用开发一直是一个备受关注的领域。今天,我将为大家介绍三款基于Go语言的跨平台桌面应用开发框架——LCL、CEF与Webview,它们分别拥有独特的魅力和广泛的应用场景。通过这三款框架,你将能够轻松开发出功能强大、界面美观的跨平台桌面应用程序。......
  • XSS-labs
    环境:Windows10+phpstudy+xss-labs靶场:https://github.com/do0dl3/xss-labs放在(网站根目录)练习方法:通过输入语句判断是否弹窗,查看源代码(以及F12)找出编改信息,尝试注入语句一、第一关直接注入观察三处箭头,可以发现它是向服务器提交了一个name参数,值为“test”,从页面回......
  • 什么是WEB
    万维网(WorldWideWeb,WWW),简称Web,是一个通过互联网提供信息和服务的全球性网络。它是由万千网站、网页、媒体内容和其他在线资源组成的庞大信息系统,通过浏览器访问和交互。万维网利用超文本(Hypertext)和超链接技术,使得人们可以方便地浏览不同的网页和资源,快速地获取信息。1.......
  • Javaweb开发核心之应用上下文知识(笔记)
     什么是应用上下⽂ServletContext简介:讲解Javaweb作⽤用域对象介绍和ServletContext讲解1.理解应用上下文定义:应用上下文是一个ServletContext对象,表示整个Web应用的全局信息和状态。它在Web应用启动时创建,在应用停止时销毁。作用:全局信息共享:可存储应用范围内......
  • 进行web开发所必须要掌握的基本常识-01
    web开发基础web开发的两种模式服务器渲染的开发模式(前后端不分离)服务器端渲染的开发模式,就是由**服务器发送给客户端HTML页面,页面是由服务器端把页面结构和数据动态拼接**而成的。优点1.前端页面可以**快速渲染、首屏加载速度快**。因为页面是由后端动态生成的HTML,浏......
  • CTFWeb篇04-SQL注入
    SQL注入什么是SQL注入SQL注入就是指WEB应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数代入数据库查询,攻击者可以通过构造不同的SQL语句来是实现对数据库的任意操作。即通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串......
  • aiortc && WebSocket and django-channels
    aiortchttps://github.com/aiortc/aiortc/tree/mainWebRTCandORTCimplementationforPythonusingasyncioWhatisaiortc?aiortcisalibraryforWebReal-TimeCommunication(WebRTC)andObjectReal-TimeCommunication(ORTC)inPython.Itisbuilton......
  • 随便写点ctfwp(web方向)
    最近社团一直在发作业,哎。。随便写点看看得了23333//本文章提供给入门ctf且对web方向感兴趣的同学 (d'∀')希望对你们有帮助(^_っ^)WEB1看题目描述应该是与MD5绕过有关可以不去思考sql注入尝试输出1.2.3.。。。回显都是password=1,2,3查看源代码也没什么有用的信息......
  • 猿人学web端爬虫攻防大赛赛题第20题——2022新春快乐
    题目网址:https://match.yuanrenxue.cn/match/20解题步骤解题之前需要先了解wasm是什么:https://docs.pingcode.com/ask/294587.html看数据包。sign是一串加密的字符串,t一看就是时间戳。全局搜索api/match/20,只有一处。打断点,触发。看下sign的生成逻辑。"sign":window......
  • 基于webGL的可视化大屏很惊艳,动态效果更惊艳
    基于webGL的可视化大屏堪称惊艳之作。它利用先进的技术将数据以生动的形式呈现,无论是复杂的业务数据还是地理信息等,都能清晰展示。其色彩的运用和图形的构造相得益彰,营造出极具视觉冲击力的画面。而动态效果更是将这种惊艳提升到了新高度。数据的流动不再是静态展示,而是像......