php文件上传漏洞 抓包,文件上传漏洞之JS前端检测

##介绍

在Web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,例如企业的OA系统,允许用户上传图片、视频、头像和许多其他类型的文件。然而向用户提供的功能越多,Web应用受到攻击的风险就越大,如果Web应用存在文件上传漏洞,那么恶意用户就可以利用文件上传漏洞将可执行脚本程序上传到服务器中,获得网站的权限,或者进一步危害服务器。

##存在文件上传漏洞的原因

如果服务端未对用户所上传的文件进行严格的验证和过滤,就很容易造成可以上传任意文件的情况,包括上传脚本文件(asp、aspx、php、jsp等格式的文件)。

##危害

非法用户可以利用上传的脚本文件控制整个网站,甚至控制服务器。这个恶意的脚本文件,又被称为WebShell,也可将WebShell脚本称为一种网页后门,WebShell脚本具有非常强大的功能(前提是脚本免杀或者服务端没做防御),比如查看服务器目录、服务器中的文件,执行系统命令等。

##靶机搭建

upload.html

JS检查文件后缀

function selectFile(fnUpload){

var filename = fnUpload.value;

var mine = filename.toLowerCase().substr(filename.lastIndexOf("."));

if (mine!=".jpg")

{

alert("请选择jpg格式的照片上传");

fnUpload.outerHTML=fnUpload.outerHTML;

}

}

Filename:

upload2.php

if ($_FILES["file"]["error"] > 0)

{

echo "Return Code: " .$_FILES["file"]["error"] . "
";

}

else

{

echo "Upload: " .$_FILES["file"]["name"] . "
";

echo "Type: " .$_FILES["file"]["type"] . "
";

echo "Size: " .$_FILES["file"]["size"] . "
";

echo "Temp file: " .$_FILES["file"]["tmp_name"] . "
";

if (file_exists("upload/" . $_FILES["file"]["name"]))

{

echo $_FILES["file"]["name"] . "already exists. ";

}

else

{

move_uploaded_file($_FILES["file"]["tmp_name"],

"upload/" . $_FILES["file"]["name"]);

echo "Stored in: " . "upload/" . $_FILES["file"]["name"];

}

}

?>

访问upload.html,上传一个 key.txt 文件

ca924fa4d4b916562d72e9bea1114cf1.png

结果,网页给了一个警告,告诉我们要上传jpg。那我们就先上传一个jpg文件,看看究竟是怎么回事。

170ae48b4ea948e50503f3868d7cc147.png我们上传jpg文件,网页就不提示错误。接下来,点击submit,提交文件。

fd09891dafee712304e6a87c7e09e1ee.png可以看到,该图片已经保存到upload目录下了

e78c3ad451e9395cce3de1f1ac4b33ec.png

那我们该怎么绕过前端JS,上传我们的WebShell呢?

当然要抓包修改啦!

首先,正常选择一个jpg文件

425cb0ff9d75ad5619fc4b09575e006e.png

点击submit,抓包,并做如下修改,再发送

9c376a8314a53bca3c9769f112b91181.png

可以看到 1.php文件已经被上传到upload目录下了:

72fde756ae4f7e598b5db89a3bdffc41.png

24f4dbaf91fcc592a977b237b43159a9.png接下来,对我们上传的恶意脚本进行访问

995e41944b3ded013070c1e77acfc733.png 恶意代码成功执行。

该漏洞呢,开发者仅在前端页面设置了上传文件格式的限制,并没有在服务端进行限制,所以我们可以通过burp抓包,轻松地绕过前端检测,从而达到我们的恶意目的。

以上就是上传文件漏洞,绕过JS检测的全部过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值