Kali Linux学习笔记—Web渗透(4) 手动漏洞挖掘

实验环境:
metasploitable ip:172.16.2.65
Security Level:low

kali linux ip:172.16.2.63

一、文件上传漏洞

网站上传头像、文件、图片等功能

  • 直接上传webshell
  • 修改文件类型上传webshell
    • Mimetype—文件头、扩展名
  • 修改扩展名上传webshell
    • 静态解析文件扩展名时可能无法执行
  • 文件头绕过过滤上传webshell
  • 上传目录权限

1.Security Level = low

成功上传图片文件,将提示的目录复制粘贴到url上可查看图片。
在这里插入图片描述

vi 3.php
<?php echo shell_exec($_GET['cmd']);?>
# 读取一个cmd变量的值,get下来后交给shell_exec函数执行,执行结果通过echo显示

在这里插入图片描述
将3.php文件Upload
在这里插入图片描述
成功上传后,在url后访问,给cmd赋值,?cmd=pwd
下图说明目前的web application存在上传漏洞,服务器端脚本代码对文件没有过滤。
在这里插入图片描述
打开BurpSuite->Proxy->HTTP history,可以看到网站对上传文件的大小有限制。
上传大小大于100000的文件,可以使用BurpSuite修改。手动扩大数值后成功上传图片。
在这里插入图片描述

成功绕过,上传图片
在这里插入图片描述

2.Security Level = medium

上传一张符合大小的图片,没能上传成功。
在这里插入图片描述
查看源代码:
比low级别多了个判断图片类型为“image/jpeg”
在这里插入图片描述
通过BurpSuite查看,发现图片类型为“image/png”与上面源代码中的类型不符,所以不成功。右键“send to repeater”
在这里插入图片描述
修改为“image/jpeg”
在这里插入图片描述
成功上传。
在这里插入图片描述

紧接着上传原先的网页木马3.php,开启BurpSuite的截断代理功能,强行修改文件类型。
在这里插入图片描述
在这里插入图片描述
上传成功!
在这里插入图片描述
在这里插入图片描述

3.Security Level = high

查看源代码:
通过判断文件扩展名来过滤,此时如果仍以文件“3.php”命名则上传不成功。
绕过方法:开启BurpSuite截断代理功能,将文件名修改为“3.php.jpeg”
在这里插入图片描述
上传成功!
在这里插入图片描述

4.更高级别过滤

更高级别的过滤会检测文件内容。例如以.jpeg为扩展名的文件,检查文件头内容,如果像上几步直接修改扩展名并将文件则会被网站过滤掉,这里需要更机智的绕过。

修改文件名为“1.php.jpeg”和内容保留源文件头然后添加网页木马。
在这里插入图片描述
修改后
在这里插入图片描述
上传成功!
在这里插入图片描述
成功获得shell!
在这里插入图片描述

二、防范

  • 可以通过文件系统权限设置
sudo chmod a-x uploads/

三、总结

  • web application存在文件上传漏洞大多数是因为程序员在编码时没有对文件目录进行权限限制。
  • 绕过有很多方法,有时需要一点想象力。
  • 善用BurpSuite,有变量的地方就有机会。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值