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

admin 2024年7月31日23:42:07评论21 views字数 1125阅读3分45秒阅读模式

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

大家好!我是一个热衷于分享IT技术的up主。在这个公众号里,我将为大家带来最新、最实用的技术干货,从编程语言到前沿科技,从软件开发到网络安全。希望通过我的分享,能够帮助更多的小伙伴提升技术水平,共同成长!欢迎关注,一起探索科技的魅力吧!

简介

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

Upload-Lab第一关:轻松绕过前端验证的技巧!
前端验证上传文件类型

了解前端验证

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

Upload-Lab第一关:轻松绕过前端验证的技巧!
查看源码

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

绕过前端验证

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

  1. 禁用 JavaScript:在浏览器中禁用 JavaScript,然后重新加载页面并上传文件。这种方法简单直接,但在实际场景中并不总是可行。

  2. 修改 HTML 代码:使用浏览器的开发者工具修改页面代码,去掉或修改验证函数。例如,将onsubmit="return checkFile()"改为 onsubmit="return true"

  3. 直接发送请求:使用工具如 BurpSuitePostman 直接向服务器发送文件上传请求,绕过前端验证。

实践绕过验证

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

  1. 打开浏览器的开发者工具F12

  2. 找到并选中 <form> 标签,修改 onsubmit 属性为 return true,或者,直接把这个onsubmit 函数调用删除。下图是把onsubmit修改为return true

Upload-Lab第一关:轻松绕过前端验证的技巧!
删除前端文件校验
  1. 选择要上传的文件,例如,一个名为 shell.php 的恶意文件,内容如下:
<?php phpinfo(); ?>
  1. 提交表单,上传成功如下图所示:
Upload-Lab第一关:轻松绕过前端验证的技巧!
webshell上传成功

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

Upload-Lab第一关:轻松绕过前端验证的技巧!
展示PHPinfo信息

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

总结

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

推荐阅读

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

原文始发于微信公众号(攻城狮成长日记):Upload-Lab第一关:轻松绕过前端验证的技巧!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月31日23:42:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Upload-Lab第一关:轻松绕过前端验证的技巧!https://cn-sec.com/archives/3019040.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息