Web安全攻防实战教程-课件全套 第1-7章 Web安全技术与实践指南 - 代码审计:从理论到实战_第1页
Web安全攻防实战教程-课件全套 第1-7章 Web安全技术与实践指南 - 代码审计:从理论到实战_第2页
Web安全攻防实战教程-课件全套 第1-7章 Web安全技术与实践指南 - 代码审计:从理论到实战_第3页
Web安全攻防实战教程-课件全套 第1-7章 Web安全技术与实践指南 - 代码审计:从理论到实战_第4页
Web安全攻防实战教程-课件全套 第1-7章 Web安全技术与实践指南 - 代码审计:从理论到实战_第5页
已阅读5页,还剩248页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026/03/05Web安全技术与实践指南CONTENTS目录01

Web安全概述02

Web安全技术体系03

TCP/IP与HTTP/HTTPS协议04

Web安全环境部署CONTENTS目录05

靶场环境搭建与应用06

Web安全信息收集07

信息收集实战演练08

Web安全防护总结Web安全概述01互联网时代的安全挑战

互联网与生产生活的深度融合互联网已渗透到生产、生活、工作、学习等各个领域,为企业和个体提供支撑,使其产生极强依赖性,成为社会运转不可或缺的基础设施。

网络安全是互联网发展的前提用户使用互联网默认以安全性为前提,若出现财产损失、隐私泄露、信息被盗等问题,将导致用户抛弃互联网,因此保障网络安全是互联网发展的必要条件。

Web安全的重要性凸显Web应用程序在互联网中扮演重要角色,但其存在的安全漏洞可能导致信息泄露、系统瘫痪等严重后果,Web安全成为网络安全体系的关键组成部分。Web安全的核心价值

防范财产损失与隐私泄露安全漏洞可能使攻击者窃取用户财产、泄露个人隐私,如通过注入漏洞访问系统保密数据,或利用XSS漏洞窃取Cookie等敏感信息,对用户造成直接损害。

维护用户信任与品牌声誉安全事件会严重打击用户对平台的信任,导致用户流失。企业若因安全漏洞导致用户信息泄露或服务中断,将损害品牌声誉,影响长期发展。

保障业务连续性与系统稳定逻辑漏洞、服务器端请求伪造等漏洞可能破坏业务完整性、导致系统瘫痪,影响业务正常运转。Web安全措施能确保应用程序安全稳定运行,保障业务连续性。Web安全技术体系02常见Web安全漏洞解析

01注入漏洞发生于用户输入与应用程序交互过程,攻击者注入恶意代码(如SQL注入、命令注入),绕过验证访问保密数据。例如,在输入域注入“select”“union”等SQL语句,未处理直接执行可窃取数据库信息。

02跨站脚本攻击(XSS)漏洞攻击者将恶意脚本注入Web页面,用户浏览时执行脚本,可窃取Cookie、会话令牌等敏感信息。如注入JavaScript代码获取用户登录凭证,进而冒充用户操作。

03跨站请求伪造(CSRF)漏洞攻击者利用目标用户合法身份,以其名义执行非法操作,如更改密码、转账等。例如,诱导用户点击包含恶意请求的链接,在用户已登录状态下完成非授权操作。

04服务器端请求伪造(SSRF)漏洞攻击者通过应用程序服务器发送网络请求,绕过防火墙访问内部系统。通常攻击目标是外网无法直接访问的内部服务,如利用SSRF访问内网数据库服务器。常见Web安全漏洞解析

文件上传漏洞攻击者上传恶意文件至服务器,导致服务器被攻击或传播恶意文件。例如,上传带有后门的PHP文件,获得服务器控制权限。逻辑漏洞利用业务或功能设计缺陷获取敏感信息或破坏完整性,常见于密码修改、支付等功能。如密码修改流程缺少旧密码验证,允许未授权更改;支付金额可被篡改导致资金损失。OWASPTop102025解读01失效的访问控制(排名第1)自2021年跃居首位后持续为重大威胁,未经授权用户可访问机密数据或修改权限。案例:普通用户因系统漏洞可查看、编辑其他用户数据。02安全配置错误(排名第2)从2021年第5位上升,云环境中配置错误成主要风险。案例:允许不必要的端口、服务或权限,如开放默认账户未删除,导致攻击者轻易入侵。03软件供应链故障(新增,排名第3)由“易受攻击和过时的组件”扩展,涵盖代码依赖、构建系统等全供应链威胁。案例:某公司使用存在Log4j漏洞的日志组件,导致服务器被远程控制。04加密机制失效(排名第4)虽排名下降,但仍是数据泄露核心原因。案例:数据库加密数据检索时自动解密,使SQL注入可获取明文信用卡号。05注入(排名第5)含SQL注入、XSS等,因业界防范意识提升排名下降。案例:用户输入“select”等SQL语句未处理,直接执行导致数据泄露。OWASPTop102025解读不安全的设计(排名第6)设计阶段缺乏威胁建模,导致根本性缺陷。案例:不安全的身份鉴权机制,需大量后期编码弥补漏洞,甚至无法修复。认证和授权失败(排名第7)弱密码、会话管理不当仍普遍。案例:会话超时设置错误,用户关闭浏览器未注销,攻击者1小时后仍可通过该浏览器登录。软件和数据完整性故障(排名第8)未验证完整性导致风险。案例:家用路由器固件更新无需签名,攻击者利用未签名固件入侵设备。安全日志记录和监控失败(排名第9)缺乏有效监控使入侵难以及时发现。案例:数据被窃取后,因无日志和监控,无法确定窃取时间和路径。异常条件处理不当(新增,排名第10)面对异常情况未安全响应,引发逻辑漏洞等。案例:转账时扣款成功但收款方未到账,因无事务回滚,采用“故障开放”策略导致资金损失。Web安全防御策略遵循安全标准研发

严格遵守ISO27001、GB/T32914—2023等标准,规范研发流程,规避不安全行为和已知漏洞,从源头保障软件安全性。实施渗透测试

系统发布前进行代码审计和渗透测试,修复漏洞;发布后定期全面测试,及时发现关键漏洞,确保系统持续安全。部署Web应用防火墙(WAF)

在Web应用与互联网间放置WAF,监控过滤恶意HTTP流量,阻断SQL注入、XSS等攻击,仅允许合法用户访问。系统加固

确保软件、网络、操作系统、数据库等各组件安全,部署后配置安全参数,消除潜在漏洞,防止成为攻击切入点。运行中安全保障与检测告警

及时安装漏洞补丁,处理已知风险;部署日志检测分析和预警系统,发现可疑流量或访问行为时及时预警,技术人员快速响应保障系统安全运行。TCP/IP与HTTP/HTTPS协议03TCP/IP协议体系架构

TCP/IP协议分层结构TCP/IP协议族由应用层、传输层、网络层和数据链路层4层组成,各层独立定义协议标准,协同完成数据通信。

各层核心功能应用层提供HTTP、FTP等服务接口;传输层通过TCP/UDP实现端到端数据传输;网络层基于IP协议进行路由选择;数据链路层负责物理介质访问与帧传输。

分层设计优势遵循“高内聚、低耦合”原则,支持硬件/软件标准化开发,允许不同厂商设备互通,简化故障定位与维护。TCP与IP协议核心机制

TCP连接管理通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手释放连接(FIN→ACK→FIN→ACK),确保可靠通信。

TCP可靠传输机制采用序列号、确认应答、重传机制、流量控制(滑动窗口)和拥塞控制,保障数据顺序性与完整性。

IP协议核心功能基于32位IP地址进行逻辑寻址,通过路由算法选择最佳路径,利用TTL(生存时间)防止数据包无限循环。HTTP协议详解

请求/响应模型客户端发送请求(请求行+请求头+请求正文),服务器返回响应(状态行+响应头+响应数据),基于TCP连接实现无状态通信。

常用请求方法GET用于获取资源,POST提交数据,PUT更新资源,DELETE删除资源,HEAD获取头部信息。

状态码与头属性状态码分5类:1xx(信息)、2xx(成功,如200)、3xx(重定向,如301)、4xx(客户端错误,如404)、5xx(服务器错误,如500);常见头属性包括User-Agent、Cookie、Content-Type等。HTTPS的安全机制

HTTP与HTTPS差异HTTP明文传输,存在数据泄露、篡改风险;HTTPS基于SSL/TLS加密,提供数据机密性、完整性和身份认证。

加密原理采用混合加密:非对称加密(RSA/ECC)传输对称密钥(AES/DES),对称加密用于后续数据传输,兼顾安全性与效率。

数字证书作用由CA机构签发,验证服务器身份,防止中间人攻击,确保客户端与目标服务器安全通信。Web安全环境部署04CentOS系统安装与配置虚拟机创建在VMwareWorkstation中新建虚拟机,选择“典型”配置,稍后安装操作系统,指定客户机操作系统为LinuxCentOS764位,命名虚拟机为“CentOS79”并设置存放路径,分配100GB硬盘空间且拆分为多个文件,自定义硬件加载CentOS7.9安装镜像。系统安装启动虚拟机,选择安装语言为“简体中文”,在“安装信息摘要”中配置网络和主机名,打开以太网开关获取IP,设置root管理员密码,完成安装并重启系统。网络配置与远程登录验证安装net-tools网络工具,使用XShell通过SSH协议,以root用户和密码远程登录CentOS服务器,验证系统远程访问功能正常。Web服务器与数据库环境搭建XAMPP安装在CentOS的/opt目录下创建lampp文件夹,上传XAMPP安装文件并赋予执行权限,运行安装程序,修改配置文件中LD_ASSUME_KERNEL值为2.8.0。服务启动与防火墙设置启动XAMPP服务,开启Apache、MySQL等组件,配置防火墙开放80和3306端口,重启防火墙使设置生效,确保外部可访问Web服务器和数据库。数据库远程访问配置登录MariaDB,授权root用户远程登录并设置密码为“123456”,配置XAMPP开机启动,通过浏览器访问服务器IP验证XAMPP首页正常显示。安全测试工具部署

浏览器插件与网络扫描工具HackBar:Firefox插件,用于Web参数修改、注入测试,解压配套资源后安装即可使用。Nmap:通过yuminstallnmap安装,可实现主机探测、端口扫描、版本检测等功能,验证安装通过nmap-version命令。

Web渗透与数据库工具BurpSuite:Windows环境下安装JDK1.8+后,下载社区版安装,包含Proxy、Intruder等模块,用于流量拦截、自动化攻击。sqlmap:基于Python,解压安装包至/opt目录,创建软链接,通过sqlmap--version验证,支持多种SQL注入类型检测。

浏览器攻击框架BeEF:通过Docker拉取janes/beef镜像,运行容器并映射3000端口,访问http://IP:3000/ui/authentication,使用默认账号beef登录,用于浏览器渗透测试与会话劫持。靶场环境搭建与应用05SQL注入靶场:sqli-labs

部署步骤:文件上传与解压从官网下载“sqli-labs-master.zip”,上传至CentOS服务器的“/opt/lampp/htdocs”目录,解压缩并将文件夹重命名为“sqli”。

数据库配置:连接参数设置编辑“/opt/lampp/htdocs/sqli/sql-connections/db-creds.inc”文件,修改数据库用户为“root”,密码为“123456”,数据库名为“security”。

访问验证与数据库初始化在浏览器中访问“http://[CentOSIP]/sqli/”,点击“Setup/resetDatabaseforlabs”链接创建数据库,完成安装后即可进入关卡练习。

学习作用:SQL注入原理与实战提供多个关卡,模拟不同SQL注入场景(如联合查询、盲注等),帮助学习者掌握注入漏洞的发现、利用及防御方法。文件上传靶场:upload-labs安装过程:文件部署下载“upload-labs-master.zip”,上传至“/opt/lampp/htdocs”目录,解压缩并重命名为“upload”,直接通过浏览器访问“http://[CentOSIP]/upload/”即可使用。漏洞类型:场景覆盖包含文件名欺骗、文件类型欺骗、文件上传路径绕过、文件内容检测绕过等21种常见文件上传漏洞场景,覆盖前端验证、后端校验等防御绕过方法。实验价值:攻防技术演练通过模拟真实环境中的文件上传漏洞,帮助学习者理解漏洞原理,掌握恶意文件构造、绕过技巧及防御策略,提升实战能力。综合靶场:DVWA与Pikachu

DVWA:多漏洞场景与安全级别部署步骤:上传“DVWA-master.zip”至“/opt/lampp/htdocs”,解压缩并重命名为“dvwa”,修改PHP配置(allow_url_include=On)及数据库参数,设置目录权限后访问初始化数据库。支持Low/Medium/High/Impossible四个安全级别,涵盖SQL注入、XSS、CSRF等10+漏洞类型。

Pikachu:多类型漏洞覆盖安装流程:上传“pikachu-master.zip”至“/opt/lampp/htdocs”,解压缩并重命名为“pikachu”,修改“inc/config.inc.php”数据库密码为“123456”,点击初始化链接完成安装。包含暴力破解、XSS、CSRF、SQL注入、文件包含等10+漏洞,提供直观的漏洞测试界面。

综合实战价值DVWA适合分级别进阶学习,Pikachu侧重漏洞场景多样性,二者均为安全从业者提供贴近实战的综合训练环境,助力掌握漏洞挖掘与防御全流程。Web安全信息收集06Web站点基础信息获取

01WHOIS查询:域名注册信息通过WHOIS协议可查询域名注册状态、注册人联系方式、注册商、DNS服务器等关键信息。例如查询“WONIUNOTE.COM”,可获取其注册商为阿里云,创建日期2017年8月26日,DNS服务器为DNS25.HICHINA.COM等。

02SEO综合查询:备案与归属信息通过“站长之家”等平台的SEO综合查询,可获取网站归属公司、备案号、IP地址等。如查询“”,显示备案号为蜀ICP备15014130号,归属公司为成都蜗牛创想科技有限公司,IP地址9。子域名扫描技术子域名扫描的意义子域名扫描可发现更多潜在服务,增加漏洞发现概率,尤其针对防守薄弱的子域名。同一组织不同子域名可能存在相同漏洞,遗忘子域名或用户较少的子域名易成为攻击突破口。DNSdumpster工具使用访问DNS,输入目标域名(如“”),可获取DNS服务器、邮件服务器、子域名列表及关联关系图,支持导出Excel表格。例如扫描可发现子域名“”“”及其对应IP地址。常用子域名扫描工具除DNSdumpster外,常用工具还包括subDomainsBrute、subfinder、OneForAll、Layer子域名挖掘机和Sublist3r,可根据需求选择不同工具进行深度扫描。Nmap扫描应用主机发现使用命令“nmap-sn/24”扫描网段,可发现活跃主机及其MAC地址、IP地址。例如扫描结果显示、、为活跃主机。端口扫描执行“nmap-p1-1024”扫描指定IP的1-1024端口,可获取开放端口及服务类型。例如扫描发现80/tcp(http)、81/tcp(hosts2-ns)、443/tcp(https)等端口开放。服务版本与操作系统探测通过“nmap-p80-sV”探测80端口服务版本,结果显示Apachehttpd2.4.38;使用“nmap-p80,100-O”可识别操作系统,如Linux3.7-3.9。后台地址与敏感文件扫描扫描重要性与敏感目标后台地址扫描可探测网站结构,发现敏感文件(如sitemap.xml、备份文件)、后台登录地址、上传目录、数据库管理台(如phpMyAdmin)等,是突破认证机制的关键步骤。“御剑”工具使用“御剑”后台扫描工具支持自定义域名、线程数、响应码等参数,扫描“”可发现上传目录“/upload”。使用前需将工具添加至杀毒软件排除项,避免误杀。其他扫描工具与策略常用工具还包括7kbscan-WebPathBrute、dirsearch、BBScan等。扫描策略可结合字典爆破、爬虫递归等方式,重点关注备份文件(.sql、.bak)、安装路径、后台登录页(admin/login.php)等。CMS指纹识别

指纹识别原理通过HTML、JavaScript、CSS等文件中的特征码(如Meta标签、PoweredBy信息)识别网站CMS、Web容器及操作系统。例如Discuz!CMS会在页面中包含“PoweredbyDiscuz!”特征。

WhatWeb在线识别访问WhatWeb输入目标网址,可识别CMS类型、Web服务器、脚本语言等。扫描某论坛网站显示其使用“Discuz!X3.4”,包含JQuery1.5.2、Apache服务器等信息。

其他指纹识别工具除WhatWeb外,云悉指纹、潮汐指纹、Webfinger等工具也可用于指纹识别,帮助快速定位目标系统使用的技术栈及潜在漏洞。信息收集实战演练07目标IP与端口探测

通过DNSdumpster获取真实IP访问DNS,输入目标域名(如),可获取关联IP地址(如9)及DNS服务器、邮件服务器等信息,支持结果导出为Excel表格。

Nmap扫描开放端口使用命令“nmap-p1-1024”扫描目标IP的1-1024端口,可发现开放端口及对应服务,如80/tcp(http)、443/tcp(https)等。

Nmap服务版本探测执行“nmap-p80-sV”可获取端口对应服务版本,例如“Apachehttpd2.4.38(Unix)OpenSSL/1.0.2qPHP/5.6.40”,为漏洞利用提供依据。指纹识别与漏洞分析

WhatWeb指纹识别通过WhatWeb在线工具扫描目标网站(如),可识别CMS(如Discuz!)、Web服务器(Apache)、编程语言(PHP7.3.11)等指纹信息,辅助确定系统架构。

指纹与漏洞关联分析识别CMS版本后,可对应查找已知漏洞(如Discuz!X3.4的历史漏洞);Web服务器版本(如Apache2.4.41)可能存在特定CVE漏洞,为渗透测试提供方向。

其他指纹识别工具常用工具包括云悉指纹、潮汐指纹、Webfinger等,可通过特征码匹配快速识别操作系统、Web容器及应用框架,补充WhatWeb的识别结果。Web安全防护总结08安全防御体系构建

设计阶段:安全标准与威胁建模遵循ISO27001、GB/T32914—2023等安全标准,在系统设计阶段引入威胁建模,识别潜在风险,避免不安全的业务流程或鉴权机制。

开发阶段:代码审计与渗透测试系统发布前进行代码安全审计及渗透测试,修复漏洞;发布后定期开展全面渗透测试,及时发现关键漏洞。

部署阶段:安全配置与企业级防护采用Web应用防火墙(WAF)过滤恶意流量,做好服务器、数据库等组件的安全加固,避免不必要的功能开启或端口暴露。

运维阶段:监控告警与漏洞修复部署日志检测分析和预警系统,及时安装漏洞补丁,对可疑流量或访问行为实时预警,保障系统持续安全运行。未来安全趋势与挑战

云环境与配置安全风险云环境中安全配置错误已成为主要风险(OWASPTop102025位列第二),需加强动态配置管理与合规性检查。案例:云服务器因默认账户未删除、不必要端口开放导致数据泄露。

软件供应链安全威胁供应链故障(OWASPTop102025新增类别)涵盖代码依赖、构建系统等全链条风险,需加强第三方组件审计与漏洞管理。案例:Log4j漏洞导致全球大量服务器被攻击,凸显开源组件安全隐患。

防御技术发展方向混合加密(HTTPS模式)、AI驱动的异常行为检测、自动化漏洞扫描将成为主流,同时需强化DevSecOps流程,实现安全左移。THEEND谢谢2026/03/05SQL注入漏洞深度剖析与防御实践CONTENTS目录01

SQL注入漏洞概述02

查询注入漏洞03

报错注入漏洞04

盲注CONTENTS目录05

其他注入类型06

SQL注入漏洞防御07

使用sqlmap注入08

实训案例SQL注入漏洞概述01SQL注入漏洞的定义

核心原理攻击者通过浏览器或客户端,将恶意SQL语句插入网站参数,由于应用程序未对输入进行有效过滤,导致恶意SQL语句被带入数据库并执行。

攻击路径用户可控参数(如URL中的id、表单输入等)是注入点,攻击者通过拼接恶意代码构造攻击URL或请求数据,利用程序漏洞触发数据库执行非预期操作。SQL注入漏洞的危害数据库信息泄露攻击者可窃取敏感数据,如用户凭证(用户名、密码)、个人信息(手机号、邮箱)及业务数据(交易记录、客户资料)。数据完整性破坏恶意SQL语句可修改数据库内容,导致数据不一致,影响业务流程(如订单状态篡改、账户余额异常)。数据库服务器控制严重注入可使攻击者完全控制数据库服务器,执行数据销毁、植入恶意代码等操作,破坏系统可用性。服务器远程控制攻击者可通过数据库服务器进一步入侵操作系统,安装后门程序,实现对服务器的远程控制。查询注入漏洞02查询注入介绍

查询注入基本概念攻击者通过浏览器或客户端将恶意SQL语句插入网站参数,因应用程序未过滤,导致恶意SQL被带入数据库执行的攻击手法。

用户查询场景示例用户通过URL(如/bcbm/html/plugin.php?id=1)查询新闻,服务器以PHP代码(如$result="select*fromarticlewhereid=$_GET['id']")获取参数并拼接SQL执行。

注入点可控参数分析URL中传递的参数(如id)为攻击者可控部分,可通过工具修改参数值(如id=1、id=100或注入攻击代码),实现对系统的攻击。

查询注入类型分类根据注入点参数数据类型分为数字型(如select*fromtableswhereid=1)、字符型(如select*fromtableswhereusername='admin')、搜索型(如select*fromtableswhereidlike'8dm8')。查询注入原理解析查找注入点登录Wiki后台系统,访问新闻列表页面并点击新闻详情,URL显示为/bcbm/read.php?id=2,id=2为可控参数,即潜在注入点。确认注入点方法构造URL带入参数“and1=1”(/bcbm/read.php?id=2and1=1)返回正常结果,带入“and1=2”(/bcbm/read.php?id=2and1=2)返回异常结果,两次结果不一致则确认存在注入点。后台代码逻辑分析后台通过$id=$_GET['id']获取参数,拼接SQL语句“select*fromarticlewherearticleid=$id”执行。当带入“2and1=1”时,SQL为“select*fromarticlewherearticleid=2and1=1”(结果为真);带入“2and1=2”时,SQL为“select*fromarticlewherearticleid=2and1=2”(结果为假),因参数未被过滤导致注入。查询注入漏洞攻击步骤

确定数据库表列数使用“orderbyn”语句(如/bcbm/read.php?id=2orderby7),当n=7时报错,可知主查询列数为6。

使用unionselect联合查询构造URL“/bcbm/read.php?id=-1unionselect1,2,3,4,5,6”,因id=-1无结果,页面返回联合查询结果,确认显示位。

获取数据库信息通过数据库函数获取信息,如URL“/bcbm/read.php?id=-1unionselect1,2,database(),user(),5,6”,返回当前数据库名称(learn)和用户名(root@localhost)。

获取数据库表名利用information_schema库,通过“/bcbm/read.php?id=-1unionselect1,2,3,(selectgroup_concat(table_name)frominformation_schema.tableswheretable_schema='learn'),5,6”获取learn数据库表名(access,article,user)。查询注入漏洞攻击步骤01获取表列名针对user表,构造URL“/bcbm/read.php?id=-1unionselect1,2,3,(selectgroup_concat(column_name)frominformation_schema.columnswheretable_schema='learn'andtable_name='user'),5,6”,返回列名(userid,username,password,role,avatar,createtime)。02获取表数据通过“/bcbm/read.php?id=-1unionselect1,2,3,(selectgroup_concat(concat(username,'==',password))fromuser),5,6”获取user表中用户名和密码(如woniu==123456,admin==admin123等)。报错注入漏洞03报错注入介绍报错注入的定义报错注入是指攻击者构造恶意SQL语句,触发数据库报错机制,使错误信息中包含攻击者所需信息的注入方式。需保证SQL语句结构正确,错误非语法层面,且页面能输出SQL执行错误信息(如使用mysql_error函数)。常用报错注入函数常用的报错注入函数有updatexml、extractvalue、floor等,这些函数报错均基于输入字符串的逻辑冲突。报错注入原理解析

报错注入点的判断构造错误URL,如在正确URL“/bcbm/errins.php?id=1”后插入单引号变为“/bcbm/errins.php?id=1'”,若页面抛出数据库层面错误信息,则基本可判断存在报错注入点。

结合后台代码分析原理后台代码中,当输入参数正确时查询不报错,显示“noerror”;当输入参数错误(如多一个单引号),则通过echomysqli_error($conn)显示数据库错误信息,攻击者利用此机制获取信息。报错注入漏洞攻击过程

获取数据库名称使用updatexml函数构造URL:/bcbm/errins.php?id=1andupdatexml(1,concat(0x7e,database(),0x7e),1)--+,执行后从报错信息中可获取数据库名称,如“learn”。

获取数据库表名构造URL:/bcbm/errins.php?id=1andupdatexml(1,concat(0x7e,(selecttable_namefrominformation_schema.tableswheretable_schema='learn'limit0,1),0x7e),1)--+,可获取表名;使用group_concat函数可一次性获取所有表名,如“access,article,user”。报错注入漏洞攻击过程获取表的列名

以表user为例,构造URL:/bcbm/errins.php?id=1andupdatexml(1,concat(0x7e,(selectgroup_concat(column_name)frominformation_schema.columnswheretable_schema='learn'andtable_name='user'),0x7e),1)--+,因updatexml报错内容长度限制,可结合substr函数获取完整列名,如“userid,username,password,role,avatar,createtime”。获取数据库表内容

构造URL:/bcbm/errins.php?id=1andupdatexml(1,concat(0x7e,substr((selectgroup_concat(concat(username,'==',password))fromuser),1,31),0x7e),1)--+,可获取表中数据,如用户名和密码信息,通过调整substr函数参数可获取全部数据。盲注04布尔型盲注布尔型盲注介绍布尔型盲注是指服务器返回页面不显示查询结果或数据库错误信息,但用户请求结果为真或假时页面有不同回显(如返回true/false或正常/错误页面)的注入方式,需使用length、substr、ascii等字符串操作函数逐个字符猜测数据。布尔型盲注原理解析通过构造不同条件的URL(如“id=1and1=1”和“id=1and1=2”),观察页面返回结果是否不同。若结果不同,说明注入参数被数据库执行,存在布尔型盲注点。后台代码通常根据查询结果返回固定字符串(如true/false),不显示具体数据。布尔型盲注攻击步骤包括获取数据库名称长度(如“id=1andlength(database())=5”)、数据库名称(逐个字符验证,如“substr(database(),1,1)='l'”)、表数量、表名称长度及名称、字段数量及名称、数据量及内容等,需手动或借助工具逐个比对字符。时间型盲注

时间型盲注介绍时间型盲注与布尔型盲注原理相似,但通过响应时间判断结果。当页面无直观回显变化时,结合if判断和sleep函数,若条件为真则正常响应,为假则延迟响应(如sleep(5)),以此推断注入语句执行情况。

时间型盲注与布尔型盲注的区别布尔型盲注依赖页面回显内容变化(如true/false)判断结果;时间型盲注无内容变化,通过响应时间差异(如是否延迟5秒)判断条件真假,适用于更隐蔽的注入场景。

时间型盲注攻击过程利用if(expr1,expr2,expr3)和sleep(n)函数构造注入语句,如“id=1andif(length(database())>5,1,sleep(5))”。通过观察响应时间是否超过5秒,判断条件是否成立,进而获取数据库名称长度、名称等信息,攻击逻辑与布尔型盲注类似,但判断依据为时间延迟。其他注入类型05二次注入

01二次注入原理攻击者将恶意数据存储于数据库,当被读取并拼入SQL执行时引发注入。即使输入时转义,存储后数据可能被还原,导致注入攻击。

02攻击过程演示注册用户名为“admin'#”,密码“12345678”;修改此用户密码时,构造参数使后台执行“updateusersetpassword='123456'whereusername='admin'”,成功篡改admin用户密码。

03原理解析注册时addslashes函数转义单引号,存储为“admin'#”;修改密码时未转义,单引号闭合SQL语句,#注释后续内容,实际执行修改admin用户密码的操作。堆叠注入堆叠注入介绍利用分号分隔多条SQL语句并执行,可实现更新、插入、删除等操作,需后台支持多语句执行(如MySQL的multi_query函数)。攻击过程演示访问“/bcbm/stackins.php?id=3;updateusersetpassword='12345678'whereuserid=3”,执行查询后更新id=3用户密码为12345678。原理解析后台代码使用multi_query函数,拼接参数后执行“select*fromuserwhereuserid=3;updateusersetpassword='12345678'whereuserid=3”,两条语句依次执行,导致数据篡改。宽字节注入宽字节注入介绍通过GBK等宽字节编码,合并转义符(%5c)为汉字,使单引号等特殊字符不被转义,实现SQL注入。攻击过程演示传入“id=1%cf'”,GBK编码下%cf%5c合并为汉字“桓”,单引号未被转义;构造“id=-1%cf'unionselect1,2,database(),user(),5,6--+”获取数据库名称“learn”和用户名“root@localhost”。原理解析后台使用GBK编码,addslashes函数对单引号转义为“'”(%5c%27);输入%cf%27时,%cf%5c被解析为汉字,单引号保留,闭合SQL语句实现注入。头部注入

头部注入介绍服务器处理HTTP头部信息(如Cookie、User-Agent、XFF等)时,未过滤恶意SQL语句,导致注入漏洞。

攻击过程演示通过BurpSuite拦截请求,添加XFF头部“X-Forwarded-For:',updatexml(1,concat(0x7e,database(),0x7e),1),'”,触发报错注入,获取数据库名称“learn”。

原理解析后台将XFF头部信息拼入SQL语句“insertintoheader(...)values(...)”,注入的单引号闭合语句,使updatexml函数执行报错,泄露数据库信息。SQL注入漏洞防御06输入数据的验证和过滤

输入数据的长度验证检查用户输入数据的长度是否符合预期范围,长度符合实际需求即可,避免范围过大。

输入数据类型验证确保用户输入数据的类型与预期的数据类型匹配。

特殊字符与符号处理对输入数据中的特殊字符、特殊符号(如单引号、分号等)进行处理,非必要时禁止输入,必要时进行编码处理。

输入模式确认使用正则表达式对用户输入数据进行验证,确保输入符合特定模式,如输入邮箱时需符合邮箱格式要求。参数化查询

参数化查询的定义参数化查询是一种预编译SQL语句的技术,使用占位符(如“?”)代替SQL语句中的实际参数值,并将参数值作为参数传递给查询。

参数化查询的原理通过预编译SQL语句,将用户输入与SQL代码分离,确保用户输入不会被解释为SQL代码的一部分,从而有效防范SQL注入。

参数化查询的作用是防范SQL注入攻击最有效的方法之一,能从根本上避免因用户输入拼接SQL语句而导致的注入风险。最小化权限与使用防火墙最小化权限原则为数据库用户分配最小权限,只需具有必要操作(如查询、插入和更新)的权限,而非对整个数据库的修改或删除权限,以减少潜在安全风险。Web应用程序防火墙(WAF)WAF能在可疑SQL语句被Web应用程序或数据库接收之前进行拦截,从而防范注入攻击,是防御SQL注入的重要屏障。保持应用程序更新

定期更新软件版本定期更新系统中所使用软件的版本,包括操作系统、数据库、各类中间件等。

修复漏洞与安全隐患新版本通常会修复已知的漏洞和安全隐患,保持更新可减少受到SQL注入攻击的风险。使用sqlmap注入07sqlmap使用详解

查看帮助使用“-h”命令可查看sqlmap所有可用参数,帮助信息会显示基本及高级选项,常用参数可通过此命令快速查询。

判断注入点通过“-u”参数指定URL,sqlmap会自动检测是否存在注入漏洞,如“sqlmap-u/bcbm/boolins.php?id=1”,可识别布尔型盲注、时间型盲注等类型并给出推荐Payload。

检测数据包注入点使用“-r”参数读取抓包文件(如POST请求数据包),sqlmap会验证其中请求是否存在注入点,适用于需提交表单数据的场景。

携带Cookie访问通过“--cookie”参数携带登录后的Cookie数据,可访问需登录才能访问的URL,如“sqlmap-u/bcbm/read.php?id=1--cookie=PHPSESSID=xxx”。

获取数据库信息使用“--current-db”获取当前数据库名称,“--dbs”获取所有数据库,“-D数据库名--tables”获取指定数据库表名,“-D数据库名-T表名--columns”获取表字段,“--dump”获取表内容。sqlmapTamper详解Tamper脚本作用用于绕过WAF、IDS等防御系统,通过修改攻击Payload避开敏感字符过滤,使注入数据能顺利到达应用服务器。常用Tamper脚本功能apostrophemask.py:将单引号替换为UTF-8编码;base64encode.py:对数据进行Base64编码;multiplespaces.py:在SQL关键字间添加多个空格;space2plus.py:用加号替换空格;space2randomblank.py:将空格替换为随机空白字符。Tamper使用方法语法格式为“sqlmap.py-u"URL"--tamper"模块.py"”,可根据防御规则选择合适脚本,也可定制脚本处理特定过滤规则。Tamper脚本结构包含优先级定义、依赖说明及payload处理函数,通过修改payload参数实现绕过,如对输入数据进行编码、替换或添加干扰字符。实训案例08查询注入攻击实践

实训环境准备Windows10计算机(Firefox浏览器+HackBar插件)与CentOS7虚拟机(sqli-labs靶场),靶场服务器IP为。

注入点判断与闭合访问Less-1页面(/sqli/Less-1/?id=1),通过“id=1'and1=2--+”触发页面变化,确认字符型注入点,后台SQL结构为“SELECT*FROMusersWHEREid='$id'LIMIT0,1”。

数据库信息获取使用“orderby”确定表列数为3;构造“id=-1'unionselect1,database(),user()--+”,获取数据库名称security及当前用户root@localhost。报错注入攻击实践

注入点与注入方式确认访问Less-5页面(/sqli/Less-5/?id=1),通过单引号触发数据库报错,确认存在报错注入点,且无法使用联合查询。

利用updatexml函数获取信息构造“id=1'andupdatexml(1,concat(0x7e,database(),0x7e),1)--+”,返回“XPATHsyntaxerror:'~security~'”,获取数据库名称;类似构造获取用户名root@localhost。

关键步骤总结通过报错信息验证注入点→用orderby确定列数→利用报错函数(如updatexml)拼接恶意SQL,从报错信息中提取数据库敏感信息。盲注攻击与sqlmap攻击实践

01布尔型盲注获取数据库名称在Less-8中,通过“id=1'andlength(database())>8--+”判断数据库名称长度为7;利用ascii(substr(database(),n,1))=xxx逐个字符猜测,得到数据库名称security。

02sqlmap自动化注入流程对Less-2执行“sqlmap-u/sqli/Less-2/?id=1--batch”检测注入点;用“--current-db”获取数据库security,“-Dsecurity--tables”获取表users,“-Tusers--dump”导出表内容。

03工具与手动注入对比盲注需手动逐字符猜测,效率低但适用于无回显场景;sqlmap可自动化完成注入,支持多种注入类型,大幅提升效率,是实际测试中的常用工具。练习题解析

基础概念题解析1.查询注入类型:数字型、字符型、搜索型;2.常用报错注入函数:updatexml、extractvalue、floor;3.sqlmap获取所有数据库选项:C.--dbs。

漏洞类型与命令题解析4.SQL注入漏洞类型:查询注入、报错注入、盲注(布尔型/时间型)、二次注入、堆叠注入、宽字节注入、头部注入;5.探测命令:“sqlmap-u/bcbm/boolins.php?id=1--current-db”(数据库),“-D数据库名--tables”(表名)。

知识巩固要点重点掌握注入类型分类依据、核心函数作用(如unionselect、updatexml)、sqlmap关键参数(-u、-D、-T、--dump),理解不同注入场景的适用方法。THEEND谢谢2026/03/06XSS漏洞深度解析与防御实践CONTENTS目录01

XSS漏洞概述02

存储型XSS漏洞03

反射型XSS漏洞04

DOM型XSS漏洞CONTENTS目录05

BeEF进行XSS渗透06

内容安全策略(CSP)07

XSS漏洞练习题与实训08

XSS漏洞防御总结与展望XSS漏洞概述01XSS漏洞的定义与危害XSS漏洞的定义XSS是一种常见的网络安全威胁,允许攻击者在用户浏览器中注入并执行恶意脚本,从而实施窃取用户信息、控制用户会话等恶意操作。XSS漏洞的普遍性根据OWASP报告,XSS始终位居Web应用安全威胁前列,无论是大型互联网公司还是小型网站,都可能成为XSS攻击的目标。XSS漏洞的主要危害XSS攻击后果包括会话劫持、网站篡改、数据窃取、键盘记录等,严重威胁用户隐私与Web应用安全。XSS漏洞的主要类型

存储型XSS漏洞恶意代码被存储到服务器(如数据库、文件),用户访问包含恶意代码的页面时触发攻击,具备隐蔽性和持久性,危害最大。

反射型XSS漏洞恶意脚本附加在URL参数中,服务器未过滤直接返回给浏览器执行,为一次性攻击,常通过邮件等诱导用户点击恶意链接。

DOM型XSS漏洞不经过服务器交互,恶意脚本在客户端通过JavaScript动态修改DOM生成,基于客户端脚本执行,隐蔽性强。存储型XSS漏洞02存储型XSS漏洞介绍存储型XSS漏洞定义存储型XSS漏洞也称为持久性XSS漏洞,指XSS代码被存储到服务器,当其他用户访问包含该代码的页面时,代码被浏览器解析执行。存储型XSS漏洞特点具备隐蔽性和持久性,恶意内容永久存储,可导致多个用户受害,攻击存在不确定性,在时间和空间上无直接关联的页面也可能引发攻击。典型应用场景常见于留言板、博客和论坛等,如恶意用户在论坛发布含恶意代码的留言,其他用户查看时,代码在其浏览器中执行产生攻击行为。存储型XSS漏洞攻击演示

登录系统与准备访问URL/bcbm/login.html,使用用户名“admin”、密码“123456”及验证码登录Wiki后台系统,打开添加新闻页面。

构造攻击内容在添加新闻页面输入标题“免费抽奖”,内容包含恶意JavaScript代码:<imgsrc="/bcbm/image/xss.gif"onclick="for(leti=0;i<10;i++){constxhr=newXMLHttpRequest();xhr.open('GET','/bcbm/');xhr.send();}"/>,并提交。

触发攻击与监控访问新闻列表页面,打开“免费抽奖”新闻详情,单击动图触发攻击。通过Firefox浏览器控制台监控到向服务器连续发送10条请求,实现DDoS攻击。存储型XSS漏洞原理解析后台存储代码问题

add.php代码通过变量接收用户输入的文章标题和内容,未对JavaScript代码处理直接存储到数据库,如$sql="insertintoarticle(author,headline,content,viewcount,createtime)values('$author','$headline','$content',0,now())"。页面展示代码问题

read.php代码获取文章ID后查询数据库,将标题和内容直接返回前台页面,如<div><?=$article['content']?></div>,导致恶意代码被浏览器解析执行。攻击代码执行逻辑

用户查看新闻详情时,恶意代码中的onclick事件在单击动图时触发,循环发送GET请求消耗服务器资源,实际攻击可设置更多循环次数,多个用户单击会造成更严重的DDoS攻击。反射型XSS漏洞03反射型XSS漏洞介绍

漏洞本质与特点反射型XSS漏洞是一种非持久、参数型脚本攻击,具有一次性攻击特性。攻击者将恶意脚本附加到URL参数中,服务器未严格过滤便将其输出到用户浏览器,导致恶意代码执行。

典型攻击场景攻击者发现网站存在反射型XSS漏洞后,构造含恶意代码的URL,通过邮件等方式冒充正常链接发送给用户。用户登录网站后点击该链接,恶意脚本在其浏览器中执行,窃取敏感信息并发送至攻击者服务器。反射型XSS漏洞攻击演示

准备工作打开Firefox浏览器抓包工具(路径:工具→Web开发者→网络),登录系统(URL:/bcbm/login.html,用户名“admin”,密码“123456”),查看抓取数据包中的Cookie数据(如PHPSESSID=j14jkq708bnvgs1bhr81bbs0n5)。

构造恶意攻击内容登录后访问URL:/bcbm/xssref.php,在“搜索内容”文本框输入JavaScript代码“”,点击“提交查询”按钮,生成恶意URL:/bcbm/xssref.php?search=%3Cscript%3Ealert%28document.cookie%29%3B%3C%2Fscript%3E。

获取Cookie数据提交请求后,浏览器弹出对话框,显示获取到的Cookie数据(如PHPSESSID=j14jkq708bnvgslbhr81bbsOn5),与抓包工具获取的Cookie一致,表明攻击成功窃取用户隐私数据。反射型XSS漏洞原理解析

后台代码分析xssref.php后台代码通过“echo'Hello'.$_GET['search'].'XSS漏洞被触发!'”直接获取URL参数search的内容并输出到页面。用户输入的恶意JavaScript代码(如“”)未经过滤,被直接返回给浏览器。

页面源代码验证查看页面源代码,可见服务器返回内容为“HelloXSS漏洞被触发!”,恶意脚本被嵌入HTML中。浏览器解析时执行该脚本,通过document.cookie获取Cookie数据,alert函数弹出对话框展示数据。

攻击延伸风险实际场景中,攻击者可将获取的Cookie数据发送至指定服务器,利用SessionID冒充用户身份登录站点,进一步窃取用户信息或进行恶意操作。DOM型XSS漏洞04DOM型XSS漏洞介绍

DOM型XSS定义与核心特征基于文档对象模型(DOM)的客户端脚本漏洞,恶意脚本无需经过服务器交互,直接在客户端通过JavaScript动态注入页面文档,区别于存储型和反射型XSS的服务器中转特性。

与传统XSS的本质区别存储型和反射型XSS的恶意脚本需经服务器处理后返回客户端,而DOM型XSS的恶意脚本由客户端JavaScript在执行合法代码后动态生成,服务器响应中不包含恶意内容。

典型攻击场景流程攻击者构造含恶意字符串的URL→欺骗用户访问→服务器返回正常响应→客户端执行合法JS时注入恶意脚本→恶意脚本窃取Cookie等数据并发送至攻击者服务器。DOM型XSS漏洞攻击演示

正常请求构造与页面交互访问/bcbm/xssdom.php,在搜索框输入"hellodomXss!"并点击"domxss测试"按钮,页面底部正常显示输入内容,验证功能逻辑。

恶意代码注入与按钮生成单击此处添加项正文

攻击触发与抓包验证点击生成的"clickme"按钮,页面被导航至第三方网站;抓包工具仅捕获xssdom.php初始请求,无后续服务器交互,证明攻击在客户端完成。DOM型XSS漏洞原理解析客户端JavaScript处理逻辑xssdom.php中domXss()函数通过document.getElementById("inputXss").value获取用户输入,直接赋值给contentXss标签的innerText,未做任何过滤。恶意代码注入与标签闭合单击此处添加项正文漏洞核心成因客户端JavaScript直接将用户可控输入作为DOM节点内容动态插入页面,未对HTML标签、事件属性等危险内容进行转义或过滤,导致恶意代码被浏览器解析执行。BeEF进行XSS渗透05BeEF工具原理与模块介绍BeEF简介BeEF是一款强大的浏览器渗透测试框架,为安全研究人员和渗透测试人员评估Web应用安全性提供高效灵活的方式,能帮助提升XSS渗透测试效率。工具原理BeEF内置木马脚本文件hook.js,攻击者提交Payload时将其挂到用户网页。hook.js执行后,BeEF可与用户浏览器交互,获取信息并控制浏览器进行攻击操作,脚本内容可通过:3000/hook.js查看。核心模块功能OnlineBrowsers:显示与BeEF服务器连接成功的在线浏览器;Commands:BeEF核心模块,提供多种命令控制浏览器操作,命令按执行效果用不同颜色标识;CurrentBrowser:展示目标浏览器详细信息、日志等,含Details、Logs等子模块。BeEF常用核心命令01命令颜色标识含义绿色:命令可在目标浏览器执行且用户无异常感知;橙色:命令可执行但用户可能察觉异常,如弹窗、跳转等;灰色:命令未针对目标浏览器验证;红色:命令不适用于目标浏览器。02获取用户Cookie依次选择“CurrentBrowser”→“Commands”→“ModuleTree”→“Browser”→“HookedDomain”→“GetCookie”,点击“Execute”,在“ModuleResultsHistory”查看获取的Cookie数据。03替换网页内链接与网页重定向替换链接:选“ReplaceHREFS”,输入目标URL执行,可将页面链接替换为指定地址;网页重定向:选“RedirectBrowser”,输入重定向网址执行,被攻击浏览器会打开该页面。04社工弹窗在“SocialEngineering”→“PrettyTheft”设置弹窗类型、背景等,执行后用户浏览器出现登录界面,诱导输入用户名密码,攻击者可在“ModuleResultsHistory”查看窃取的登录数据。BeEF攻击实战:盗取DVWACookie环境准备与启动在CentOS启动docker服务并运行BeEF:[root@centos7~]#systemctlstartdocker;[root@centos7~]#dockerrun--rm-d-p3000:3000janes/beef。登录BeEF:访问:3000/ui/authentication,输入用户名“beef”和密码“beef”。DVWA靶场设置与脚本注入登录DVWA(/dvwa/,用户名“admin”,密码“password”),将“SecurityLevel”设为“Low”。在“XSS(Reflected)”文本框输入含hook.js的脚本:,点击“Submit”完成注入。劫持浏览器与获取CookieBeEF的“OnlineBrowsers”显示在线浏览器即劫持成功。选“CurrentBrowser”→“Commands”→“ModuleTree”→“Browser”→“HookedDomain”→“GetCookie”执行,在“ModuleResultsHistory”获取Cookie数据,含PHPSESSID等。BeEF攻击实战:盗取DVWACookie

利用Cookie免登录DVWA配置Edge浏览器代理(地址,端口8080),清空Cookie。启动BurpSuite拦截请求,在拦截消息中添加获取的Cookie数据(如Cookie:security=low;PHPSESSID=gv2ghmbdjhlkn831rjt1jn9d55),转发后成功免登录DVWA。内容安全策略(CSP)06CSP的定义与作用

01CSP的核心定义内容安全策略(CSP)是一种Web安全机制,允许网站运营者控制用户代理(如浏览器)加载内容的来源和类型,通过白名单机制明确信任资源,减少XSS等攻击风险。

02CSP的主要作用防御XSS攻击:限制内联JavaScript执行、控制外部代码加载来源、禁止动态代码执行;增强网站安全性:减少恶意脚本注入风险,保护用户隐私和数据安全。

03白名单机制原理开发者通过配置指令(如script-src、img-src)指定可信任的资源来源,浏览器仅加载符合策略的资源,即使存在漏洞也无法执行恶意代码。CSP配置方法与指令启用CSP的三种方式单击此处添加项正文常见CSP指令default-src:默认资源加载策略;script-src:JavaScript来源;style-src:CSS来源;img-src:图片来源;connect-src:网络请求来源;object-src:插件资源来源。内容源类型源列表:指定信任的主机地址(如);关键字:'self'(同源)、'none'(无信任源)、'unsafe-inline'(允许内联资源);数据:data:(数据URI)、mediastream:(媒体流URI)。CSP报告机制

CSP报告启用方式1.拦截并报告:设置`report-uri`属性提交违规报告,如`Content-Security-Policy:script-src'self';report-uri/csp-report.php`;2.仅报告不拦截:使用`Content-Security-Policy-Report-Only`头部,监控违规行为不阻止资源加载。

CSP报告格式JSON格式包含关键信息:document-uri(违规文档URI)、violated-directive(违规指令)、blocked-uri(被阻止资源URI)、original-policy(原始策略)等。

报告存储方式文件存储:按日期命名日志文件(如csp-report-20250615.log);数据库存储:建立专用数据表,记录报告中的关键字段,便于审计与分析。CSP应用实战

01配置CSP策略修改后台代码(如read.php),设置`header("Content-Security-Policy:img-src'self';report-uri/bcbm/cspreport.php");`,限制图片仅加载自身资源并指定报告地址。

02编写报告处理代码创建cspreport.php文件,通过`file_get_contents('php://input')`接收JSON报告,解析后写入日志文件(如cspreport.txt),记录违规时间、blocked-uri等信息。

03设置权限与测试验证赋予报告文件及目录可写权限(chmod777);添加含外部图片的新闻,访问时浏览器拦截资源并在控制台显示违规消息,查看报告文件确认拦截记录。XSS漏洞练习题与实训07XSS漏洞练习题XSS漏洞类型填空题XSS漏洞分为3种,分别是存储型XSS、反射型XSS和DOM型XSS。DOM型XSS漏洞特点选择题DOM型XSS漏洞的特点是(C)。A.恶意脚本经过服务器后返回给客户端B.恶意脚本在服务器中生成C.恶意脚本在客户端生成D.不需要恶意脚本反射型XSS漏洞特点选择题反射型XSS漏洞的特点是(B)。A.可以持续进行攻击B.一次性攻击C.无法攻击D.攻击次数由用户参数决定CSP启用方式简述题简述启用CSP的两种方式:一是定义HTTP响应头中的Content-Security-Policy字段;二是设置网页的meta标签。BeEF工具原理简述题简述BeEF工具实施XSS的原理:BeEF内置木马脚本文件hook.js,攻击者将其注入用户网页,hook.js在用户浏览器执行并与BeEF服务器交互,使攻击者可获取信息、控制浏览器。实训1:存储型XSS漏洞攻击实践实训目的

提升针对存储型XSS漏洞利用的实践能力。实训环境

一台安装Windows10操作系统且Firefox浏览器已安装HackBar插件的计算机;一台安装CentOS7操作系统、可访问外网且已安装DVWA靶场的虚拟机。实训步骤:登录DVWA

在Windows本机打开Firefox浏览器,访问URL:/dvwa/,输入用户名“admin”和密码“password”登录。实训步骤:设置靶场安全级别

登录后,在左侧导航栏选择“DVWASecurity”,将“SecurityLevel”设置为“Low”,单击“Submit”按钮。实训步骤:构建Payload及攻击实施

在左侧导航栏选择“XSS(Stored)”,在“Name”文本框输入"HelloJack",“Message”文本框输入代码:Hello,,单击“SignGuestbook”按钮提交,弹出“hello!”对话框。实训2:DOM型XSS漏洞攻击实践01实训目的提升针对DOM型XSS漏洞利用的实践能力。02实训环境一台安装Windows10操作系统且Firefox浏览器已安装HackBar插件的计算机;一台安装CentOS7操作系统、可访问外网且已安装DVWA靶场的虚拟机。03实训步骤:登录DVWA在Windows本机打开Firefox浏览器,访问URL:/dvwa/,输入用户名“admin”和密码“password”登录。04实训步骤:设置靶场安全级别登录后,在左侧导航栏选择“DVWASecurity”,将“SecurityLevel”设置为“Low”,单击“Submit”按钮。05实训步骤:构造攻击链接及获取Cookie数据在左侧导航栏选择“XSS(DOM)”,提交请求后浏览器生成链接,构造攻击链接:/dvwa/vulnerabilities/xss_d/?default=,在浏览器访问该链接获取Cookie数据。XSS漏洞防御总结与展望08XSS漏洞防御关键措施

输入验证与过滤单击此处添加项正文

输出编码在将用户输入数据输出到HTML页面、JavaScript、CSS等不同上下文时,采用对应的编码方式(如HTML实体编码、JavaScript编码),确保恶意脚本无法被浏览器解析执行。

内容安全策略(CSP)通过设置CSP响应头或meta标签,限制资源加载来源(如script-src、img-src等),禁止内联脚本和unsafe-eval,从根本上阻止恶意脚本的执行。

避免危险API减少使用eval()、innerHTML等可能执行动态代码的危险API,优先使用安全的替代方案(如textContent),降低DOM型XSS漏洞风险。XSS漏洞发展趋势与应对

攻击手段演变攻击者不断利用新型绕过技术,如变异脚本(Unicode编码、HTML实体混淆)、利用浏览器特性(如SVG、Flash)、结合其他漏洞(如CSRF)实施攻击,隐蔽性和复杂性增强。

智能化检测技术未来防御将更多依赖机器学习和AI算法,通过分析代码特征、流量模式自动识别未知XSS漏洞,实时监测异常请求和脚本执行行为。

自动化修复方案开发自动化修复工具,结合静态代码分析,对检测到的XSS漏洞自动生成修复建议(如添加编码函数、配置CSP规则),提高修复效率和准确性。Web安全意识培养

开发人员安全培训定期开展XSS漏洞原理、防御技术和安全编码规范培训,强化开发人员对输入验证、输出编码等基础防御措施的理解和应用能力。

用户安全意识提升向用户普及XSS攻击风险,如不随意点击不明链接、不输入敏感信息到非信任网站,减少因用户操作失误导致的漏洞利用。

建立安全开发生命周期将安全测试(如漏洞扫描、渗透测试)融入开发流程,在需求分析、编码、测试、部署各阶段实施安全检查,形成“设计-开发-测试-运维”全流程防御体系。THEEND谢谢2026/03/06请求伪造漏洞深度解析与防御CONTENTS目录01

请求伪造漏洞概述02

CSRF漏洞详解03

SSRF漏洞详解04

练习题解析05

实训演练06

总结与展望请求伪造漏洞概述01请求伪造漏洞的定义与分类

请求伪造漏洞的定义请求伪造攻击是一种通过构造恶意请求,以达到冒充用户身份或利用服务器发起未授权操作的网络安全攻击方式,主要危害用户数据安全和服务器内网环境。

跨站请求伪造(CSRF)攻击者诱导已登录用户单击恶意链接,冒充用户身份向服务器发送伪造请求,核心利用服务器对用户的信任,无需获取用户Cookie即可完成攻击,如修改用户收货地址、密码等。

服务器端请求伪造(SSRF)攻击者构造请求,由存在漏洞的服务器发起请求,可绕过传统防护访问内网资源,利用服务器作为跳板扫描内网端口、读取本地文件、攻击内网应用等,对服务器及内网安全威胁极大。CSRF漏洞详解02CSRF漏洞介绍

CSRF漏洞的普遍性CSRF漏洞在Web应用中极为普遍,尤其存在于缺乏严格身份验证和请求验证机制的网站。根据OWASP统计,其长期位列Web应用安全常见问题之一。

CSRF攻击场景解析攻击者伪造恶意请求(通常为链接),诱骗用户在已登录状态下单击。用户一旦访问,攻击即完成,故CSRF攻击也被称为“oneclick”攻击。XSS与CSRF的区别

信任关系差异XSS利用用户对服务器的信任,让恶意脚本在用户浏览器执行,服务器仅为脚本载体;CSRF利用服务器对用户的信任,诱导已登录用户执行伪造请求,无需获取用户Cookie。

攻击方式差异XSS将恶意代码植入被攻击服务器;CSRF则在攻击者服务器页面植入恶意代码,诱使用户访问,在用户不知情时执行恶意操作。CSRF攻击典型场景

01正常修改资料流程用户登录购物网站后提交修改请求,如URL:http://www.X.com/member/edit.php?name=UserA&phoneaddr=快乐镇233号&submit=submit。

02攻击者伪造请求操作攻击者发现网站存在CSRF漏洞,在用户登录状态下,诱使其单击伪造链接:/member/edit.php?name=HackerA&phoneaddr=邪恶村587号&submit=submit,服务器误判为正常请求,导致用户信息被修改。CSRF攻击成功条件网站防御机制缺失网站未对关键操作(如修改个人信息、密码等)做CSRF防御处理,缺乏二次校验接口,导致请求易被伪造。用户状态与行为配合用户需处于登录状态,且单击攻击者发送的恶意链接。若用户未登录、不在权限范围内或不点击链接,攻击无法成功。CSRF漏洞攻击演示环境配置与准备设置Firefox浏览器代理(HTTP代理,端口8080),登录系统(/bcbm/,用户名admin,密码123456),打开添加新闻页面(/bcbm/add.html)。拦截请求与生成钓鱼页面启动BurpSuite拦截添加新闻请求,通过“Engagementtools”→“GenerateCSRFPoC”生成钓鱼页面代码,复制代码并在CentOS服务器htdocs/csrf目录下创建csrf.html文件。实施攻击与结果验证取消代理设置,在用户保持登录状态下访问钓鱼页面(/csrf/csrf.html),单击“Submitrequest”按钮,查看新闻列表(/bcbm/list.php),可见新增标题为“CSRFTest”的新闻。CSRF漏洞原理解析后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论