文件上传漏洞

文章:

文件上传漏洞 (上传知识点、题型总结大全-upload靶场全解)_upload靶场题型-CSDN博客

核心目的

  1. 上传Webshell(如一句话木马)
    • 典型场景:上传一个PHP文件(如<?php @eval($_POST['cmd']);?>),利用蚁剑、菜刀等工具连接,从而执行任意命令、读取文件或提权。
    • 适用条件:服务器需能解析该文件(如PHP环境),且上传后的文件路径已知、权限可执行。
  2. 其他攻击形式
    • 服务端解析漏洞:例如利用.jpg文件被解析为PHP(Apache解析漏洞),即使不直接上传PHP文件也可执行代码。
    • 覆盖关键文件:比如上传恶意.htaccess覆盖配置,或替换系统文件破坏服务。
    • 钓鱼攻击:上传伪造的HTML/脚本文件,诱导用户触发XSS或窃取信息。
    • 拒绝服务(DoS):上传超大文件消耗服务器资源。

CTF中的常见考法

  1. 绕过前端验证
    • 直接篡改HTTP请求,修改Content-Type(如image/jpeg)或文件后缀名(如.php5.phtml)。
  2. 绕过服务端检查
    • 文件头欺骗:在PHP文件开头加入图片的魔术字(如GIF89a)绕过内容检测。
    • 双写后缀:如shell.php.jpg → 部分过滤逻辑可能删去最后一个后缀,保留.php
    • 大小写绕过:尝试.PhP.pHp绕过黑名单。
  3. 配合其他漏洞
    • 文件包含漏洞:上传一个非可执行文件(如图片马),通过Local File Inclusion(LFI)触发执行。
    • .htaccess利用:上传自定义的.htaccess文件,强制将特定后缀(如.txt)解析为PHP。
  4. 非Webshell解法
    • 直接泄露Flag:题目可能要求上传文件后,通过路径访问直接读取上传内容中的Flag。
    • 逻辑漏洞:例如上传时修改参数实现目录穿越(../../flag.txt)。