实验室:通过路径遍历上传 Web shell

本文详细描述了一个关于服务器安全的实验过程,演示了如何通过目录遍历漏洞来执行上传的PHP脚本。首先,作者上传了一个exploit.php文件,然后使用Burp Suite工具进行过滤和重发请求,尝试改变文件上传路径。通过URL编码目录遍历序列,成功将文件上传到不应包含用户文件的目录,从而使得服务器执行了上传的PHP脚本,实现了Webshell的创建。实验展示了服务器配置不当可能导致的安全风险。
摘要由CSDN通过智能技术生成

前言:

  1. 虽然首先防止危险文件类型被上传显然更好,但第二道防线是阻止服务器执行任何通过网络溜走的脚本。
  2. 作为预防措施,服务器通常只运行其 MIME
    类型已明确配置为执行的脚本。否则,它们可能只是返回某种错误消息,或者在某些情况下,将文件内容作为纯文本提供。这种行为本身可能很有趣,因为它可能会提供一种泄漏源代码的方法,但它会使任何创建 Web shell 的尝试无效。
  3. 这种配置通常在目录之间有所不同。用户提供的文件上传到的目录可能比文件系统上假定最终用户无法访问的其他位置具有更严格的控制。如果您能找到一种方法将脚本上传到不应该包含用户提供的文件的不同目录,那么服务器最终可能会执行您的脚本。

第一步:登录网站,上传一个exploit.php文件,这里并没有阻止上传。
在这里插入图片描述
第二步:打开Burp,设置过滤器,并将指定GET请求发送到“重发器”。
在这里插入图片描述
这里我们可以看到,上传的exploit.php好像并没有运行,而是返回了里面的源代码。
在这里插入图片描述
第三步:当前目录无法运行上传的exploit.php,如果将文件上传路径更改,会不会有意想不到的事情发生?
1.首先将指定的POST请求发送到“重发器”,准备修改其上传路径
在这里插入图片描述
2.这里我们可以看到文件名和它的文件类型,更改“filename”内容为包含目录遍历序列。
在这里插入图片描述
将其更改为:Content-Disposition: form-data; name="avatar"; filename="../exploit.php"
这里我们要注意通过对正斜杠(/)字符进行 URL 编码来混淆目录遍历序列得到:filename="..%2fexploit.php"
在这里插入图片描述
第四步:将修改后的放入浏览器,然后我们回到Burp找到指定的GEET请求
在这里插入图片描述
这里将请求发送到“重发器”,查看文件是否运行成功,并查看返回的结果
在这里插入图片描述
在这里插入图片描述

然后点击发送,发现exploit.php文件成功运行,将密码提交,实验完成!

可能文中有的地方术语不对或者技术上的错误,还请大佬多多保函,给予改正,万分感谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值