文章目录
前言
本篇文章仅作为本人学习笔记
了解webshell
webshell本质上是一张网页,网页由什么语言构成,webshell就是什么类型,。
webshell由PHP,jsp,asp等web应用程序语言开发,但是不具备常见的网页功能。例如登录,注册等等。webshell具备文件管理、端口扫描、提权、获取系统信息等功能。拥有比较完善功能的webshell一般称为大马。功能简单的webshell称为小马。
一、文件上传漏洞介绍
文件上传是Web 应用的必备功能之一,比如上传头像、上传附件共享⽂件等。如果服务器配置不当或者没有进行足够的过滤,Web 用户就可以上传任意文件,包括恶意脚本文件、exe 程序等,这就造成了文件上传漏洞。
二、文件上传漏洞危害
上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本、程序等。如果Web 服务器所保存上传文件的可写目录具有执行权限,那么就可以直接上传后门文件,导致网站沦陷。如果攻击者通过其他漏洞进行提权操作,拿到系统管理权限,那么直接导致服务器沦陷。同服务器下的其他网站无一幸免,均会被攻击者控制。
三、文件上传漏洞原理
由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件。
四、文件上传漏洞绕过方法
- 前端JS绕过
由于前端代码过滤敏感文件,只需要删除前端限制函数即可绕过
- 黑白名单绕过
由于PHP解析引擎不只认识PHP后缀,phtml,php3等也都可以作为PHP文件解析
-
文件类型绕过(mime、文件头、文件内容)
-
路径截断绕过(00 截断)
-
中间件解析漏洞
-
条件竞争
有的服务器采用了先保存,再删除不合法文件的方式,在这种服务器中,可以反复上传一个会生成 Web Shell的文件并尝试访问,多次之后即可获得 Shell。
-
二次渲染
-
编辑器漏洞
五、文件上传漏洞防御方法
- 上传目录的用户执行权限全部取消
- 判断文件类型使用随机数改写文件名和文件路径
- 网站服务器和文件服务器分离
- 白名单检查
- 限制文件大小
六、WAF绕过
有的 waf 在编写过程中考虑到性能原因,只处理一部分数据,这时可以通过加入大量垃圾数据来绕过其处理函数。
另外,Waf 和 Web 系统对 boundary 的处理不一致,可以使用错误的 boundary 来完成绕过。
实验步骤:
- 安装安全狗WAF
- 此时上传PHP文件被拦截,使用BP进行抓包,插入脏数据,文件上传成功
————————————————————————————
七、任意文件包含
1. 文件包含函数
2.使用pikachu远程文件包含,实现靶场主机解析远程主机的木马
kali主机开启python,windows server 2016 上pikachu靶场作为演示
PHP文件写入URL,进行访问
八、任意文件读取
1. 修复方案
- 过滤用户数据,如“/” "*” ""等特殊字符;
- 更新中间件;
- 要下载的文件地址保存至数据库中;
- 文件路径保存至数据库,让用户提交文件对应 ID 或session 下载文件;
- 用户下载文件之前需要进行权限判断;
- 文件放在 web 无法直接访问的目录下;
- 不允许提供目录遍历服务;
- 公开文件可放置在 web 应用程序下载目录中通过链接进行下载;
———————————————————————————————
更新ing…