Upload-Lab第1关:轻松绕过前端验证的技巧!

第一关简介

upload-lab 的第一关设计了一个简单的文件上传表单,前端通过JavaScript 进行文件扩展名验证。只有特定类型的文件(如 .jpg, .png 等)可以通过验证并上传。我们的目标是绕过前端验证,上传一个包含恶意代码的文件。 下图是第一关的源码:

了解前端验证

首先,打开第一关的页面,查看文件上传表单的 HTML 代码和 JavaScript 代码。通常可以通过浏览器的开发者工具F12来查看页面源代码和调试 JavaScript

可以看到,checkFile 函数在表单提交时会检查文件的扩展名。如果扩展名不在允许的范围内,文件上传会被阻止。

绕过前端验证

要绕过前端验证,可以通过以下几种方法:

  1. 禁用 JavaScript:在浏览器中禁用 JavaScript,然后重新加载页面并上传文件。这种方法简单直接,但在实际场景中并不总是可行。
  2. 修改 HTML 代码:使用浏览器的开发者工具修改页面代码,去掉或修改验证函数。例如,将 onsubmit="return checkFile()"改为 onsubmit="return true"
  3. 直接发送请求:使用工具如 Burp SuitePostman 直接向服务器发送文件上传请求,绕过前端验证。

实践绕过验证

我们选择使用开发者工具修改HTML代码。具体步骤如下:

  1. 打开浏览器的开发者工具F12
  2. 找到并选中 <form> 标签,修改 onsubmit 属性为 return true,或者,直接把这个onsubmit 函数调用删除。下图是把onsubmit修改为return true

  1. 选择要上传的文件,例如,一个名为 shell.php 的恶意文件,内容如下:
<?php phpinfo(); ?>
  1. 提交表单,上传成功如下图所示:


上传成功后,通过浏览器的返回结果得到webshell的存储位置,访问webshell,如下图:

详细的展示了当前PHP的所有信息。这样就把webshell上传成功了。

总结

通过上述步骤,我们成功绕过了 upload-lab 第一关的前端验证,上传了一个包含恶意代码的文件。这展示了前端验证的不可靠性,强调了在实际开发中必须在服务器端实施严格的文件类型和内容检查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

didiplus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值