| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 文件上传Getshell复习~ -> 正文阅读 |
|
[PHP知识库]文件上传Getshell复习~ |
文件上传漏洞文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。显然这种漏洞是getshell最快最直接的方法之一,需要说明的是上传文件操作本身是没有问题的,问题在于文件上传到服务器后,服务器怎么处理和解释文件。 WebShell最常见利用文件上传漏洞的方法就是上传网站木马(webshell)文件, 上传检测流程
1 客户端校验这一类的检测通常是在上传页面的含有专门检测文件的javascript代码,最常用的就是检测扩展名是否合法,有白名单校验也有黑名单形式的校验。由于JavaScript是在客户端执行的,那么这种校验是可以通过先上传文件,然后再通过burp抓包就修改来绕过的。
1.1 客户端校验的判断方式如果在浏览文件页面,还未点击上传按钮就弹出来弹框(例如:只能上传.jpg/.png后缀名的文件),而此时我们还未和服务器进行交互,那么这样一般就是在客户端进行了校验 1.2 客户端校验的绕过方法1 在上传的页面进行F12大法,修改js检测函数 2 将木马的后缀改为允许的类型,后再抓包进行修改 3 上传webshell.jpg.php 有的前端程序检查后缀的时候,前面符合就会通过 2 服务端检测2.1 MIME类型检测服务器端检测文件MIME类型可能的代码如下
2.1.1?MIME类型检测绕过方法:配置Burp Suite代理进行抓包,将Content-Type修改为image/gif,或者其他允许的类型 2.2?目录路径检测上传的数据包中,如果存在path(或者其他名称)等能够操作上传路径的参数,修改该参数配合解析漏洞Get Webshell,该方法一般asp系统用比较多。 2.3 文件扩展名检测2.3.1 黑名单检测黑名单的安全性比白名单低很多,服务器端,一般会有个专门的blacklist文件,里面会包含常见的危险脚本文件类型,例如:html | htm | php | php2 | hph3 | php4 | php5 | asp | aspx | ascx | jsp | cfm | cfcbat | exe | com | dll | vbs | js | reg | cgi | htaccess | asis | sh等等。黑名单则可以通过对关键函数的各类混淆变化来绕过。
2.3.2?白名单检测仅允许指定的文件类型上传,比如仅允许上传jpg | gif | doc | pdf等类型的文件,其他文件全部禁止。 3 绕过方法3.1 文件名大小写绕过3.2 文件名双写绕过3.3 名单列表绕过3.4 不常见的扩展名例如: PHP3、PHP4、PHP5 3.5 特殊文件名绕过比如在发送的HTTP包中,将文件名改为 上传不符合windows文件命名规则的文件名
3.6?0x00截断:在许多语言的函数中,比如在C、PHP等语言的常用字符串处理函数中,0x00被认为是终止符。攻击者通常会利用该字符构造特殊的后缀名或目录来绕过白名单的限制。比如应用原本只允许JPG上传,攻击者修改POST包,构造文件名为 操作方法: 3.7 冒号截断冒号截断:冒号(“:”)是一个在系统中不能作为文件名的符号,在文件保存时会自动截断冒号后面的内容,住是某些文件保存函数中没有对其处理,可以尝试构造类似于1.php:1.jpg的文件绕过白名单检测。 3.8 .上传.htaccess文件绕过-------------------------------------------------------------------------------- 参考资料-奇安信社区Zxl2605 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 5:13:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |