版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026/03/06Web安全之其他漏洞解析与防御CONTENTS目录01
XML外部实体注入(XXE)漏洞02
弱类型比较漏洞03
命令注入漏洞04
逻辑漏洞05
漏洞攻击实训演练06
漏洞防御总结与展望XML外部实体注入(XXE)漏洞01XXE漏洞概述
XXE漏洞的定义XXE漏洞即XML外部实体注入漏洞,主要出现在使用XML解析器的应用程序中,因未正确验证或限制实体引用,导致攻击者可构造恶意XML输入执行非法操作。
XXE漏洞的危害性攻击者可利用XXE漏洞读取服务器敏感文件、执行远程请求、探测内网信息等,对系统数据安全和运行环境造成严重威胁。XML文档结构与DTD基础
XML文档结构XML文档采用树状结构,需有一个根元素,元素必须有关闭标签且正确嵌套,标签大小写敏感,属性值需加引号。例如便签XML包含to、from等子元素。
DTD的作用DTD(文档类型定义)用于定义XML文档结构,包括元素声明和实体声明。如定义根元素note及子元素to、from等,确保XML文档“合法”。
XML语法规则XML语法规则包括:文档必须有根元素、元素需关闭标签、标签大小写敏感、元素正确嵌套、属性值加引号,遵循这些规则的XML称为“形式良好”的XML。实体引用:内部与外部
内部实体引用语法格式为“”,可在XML中通过“&实体名称;”引用实现变量替换。例如定义toName为"Bill",则&toName;被替换为Bill。外部实体引用语法格式为“”,从外部DTD文件引入实体。例如从info.dtd中引入toName和fromName实体并在XML中引用。XXE漏洞攻击过程演示
读取本地文件(passwd文件)构造恶意XML:“”,提交后页面返回passwd文件内容,包含root等用户信息。
使用HTTP访问文件构造XML引用HTTP资源:“”,成功读取hello.txt中“Helloboy!XXEattack!”内容。
读取PHP源代码利用php://filter伪协议:“”,获取Base64编码的xxe.php内容,解码后得到源代码。XXE漏洞原理解析与防御方法
漏洞原理解析xxe.php代码中,simplexml_load_string函数使用LIBXML_NOENT参数,会替代XML中的实体。攻击者提交含外部实体的XML时,实体被替换为文件内容并输出,导致漏洞。
防御方法①禁用外部实体解析:在XML解析器中禁用DTD和外部实体引用;②输入验证与过滤:过滤含、等敏感声明的XML数据;③最小化数据暴露:不返回详细错误信息;④改用JSON等更安全的数据格式。弱类型比较漏洞02弱类型语言与漏洞成因
弱类型语言特性弱类型语言(如PHP)在定义变量时无需声明类型,会根据变量值自动转换数据类型,为开发提供便利,但也成为安全漏洞的潜在源头。
类型转换引发的安全风险自动类型转换过程中,不同类型数据比较时可能产生非预期结果,攻击者可利用这一特性构造特殊输入,绕过业务逻辑校验,引发安全问题。常见弱类型比较场景
"=="比较漏洞当比较不同类型数据时,"=="会自动转换类型。如"admin"==0结果为true(字符串转数值为0),"1admin"==1结果为true(提取首个数字部分),"0e123"=="0e456"结果为true(科学记数法均解析为0)。
MD5哈希值比较漏洞以"0e"开头的MD5哈希值在"=="比较时被解析为科学记数法0,如md5('240610708')与md5('QNKCDZO')哈希值均以"0e"开头,松散比较结果为true,导致验证绕过。
布尔与数组比较漏洞布尔true与任意字符串比较结果均为true;array_search函数未启用strict参数时,会进行松散比较,如array_search("4admin",[1,4])返回键值1,导致数据匹配错误。
switch比较漏洞switch会将参数转换为int类型,如字符串"4admin"转换为4,匹配case4分支,执行对应逻辑,造成条件判断绕过。弱类型比较漏洞攻击案例
提交数值0绕过登录校验攻击者向登录接口提交JSON数据{"key":0},后台使用"=="比较用户输入与字符串"passwd",因"passwd"转数值为0,比较结果为true,返回“登录成功”。
提交布尔true绕过登录校验攻击者提交{"key":true},布尔true与任意字符串比较结果为true,后台校验通过,成功登录系统;提交"abc"等其他值则返回“登录失败”。弱类型比较漏洞原理解析核心代码逻辑
后台代码通过json_decode解析用户提交的JSON数据,使用if($message->key==$key)进行比较,其中$key值为"passwd",未使用严格比较运算符"==="。"=="比较漏洞原理
当用户提交0时,"passwd"被转换为数值0,0==0结果为true;提交true时,布尔true与字符串"passwd"比较结果为true,均绕过校验逻辑。漏洞本质
漏洞源于弱类型语言的自动类型转换机制及松散比较运算符的使用,导致攻击者可构造特殊输入值,使比较逻辑产生非预期结果,绕过身份验证等关键业务校验。命令注入漏洞03命令注入漏洞简介命令注入漏洞定义命令注入漏洞指在特定开发需求中,因开发者未对可控输入参数严格过滤,攻击者可将恶意系统命令拼接到正常命令中,在运行应用程序的服务器上执行任意操作系统命令,可能完全破坏应用程序及数据。PHP常见危险函数PHP语言中常见的危险函数有system、exec、shell_exec、popen、proc_open,当攻击者能够控制这些函数中的参数时,易造成命令注入漏洞攻击。常用操作系统管道符01Windows操作系统管道符①“|”:直接执行后面的语句,如“ping|whoami”;②“||”:前面语句执行出错则执行后面语句,前面语句只能为假,如“ping2||whoami”;③“&”:前面语句为假则直接执行后面语句,前面语句可真可假,如“ping&whoami”;④“&&”:前面语句为假则出错且不执行后面语句,前面语句只能为真,如“ping&&whoami”。02Linux操作系统管道符①“;”:执行完前面语句再执行后面语句,如“ping;whoami”;②“|”:显示后面语句的执行结果,如“ping|whoami”;③“||”:当前面语句执行出错时执行后面语句,如“ping1||whoami”;④“&”:前面语句为假则执行后面语句,前面语句可真可假,如“ping&whoami”;⑤“&&”:前面语句为假则出错且不执行后面语句,前面语句只能为真,如“ping&&whoami”。命令注入漏洞攻击过程
01正常Ping功能执行访问URL“/bcbm/comminj.php?host=”,提交请求后,Ping功能返回结果,显示对该IP地址的Ping信息。
02获取当前系统用户信息访问URL“/bcbm/comminj.php?host=;whoami”,提交请求后,页面返回当前用户的信息。
03向服务器写入文件访问URL“/bcbm/comminj.php?host=;echohelloworld>./upload/ci.txt”,提交请求后,在upload目录下成功写入文件ci.txt。命令注入漏洞原理解析与防御
漏洞原理解析后台代码文件comminj.php中,代码“echosystem("ping-c5".$_GET['host']);”从外部接收host参数,与“ping-c5”拼接成字符串后被system函数执行,因未过滤用户输入,导致攻击者可拼接恶意命令。
防御措施①输入验证:确保所有输入经过验证,只包含预期的值;②转义输入:在输入插入命令等可执行字符串前,转义或编码特殊字符;③使用安全函数:用安全函数构造命令,而非手动拼接字符串;④最小权限原则:限制应用程序账号权限,仅提供执行必要命令所需最小权限。逻辑漏洞04逻辑漏洞概述逻辑漏洞的定义逻辑漏洞是攻击者利用业务流程或功能模块上的设计缺陷,获取敏感信息或破坏业务完整性的漏洞。常见出现位置多存在于密码修改、提权访问、密码找回、交易支付等功能模块中。漏洞特点攻击通过合法请求利用逻辑缺陷,常规防护手段难以阻止,需代码审计和人工测试发现,工具无法替代人工检测。登录注册类漏洞漏洞原理注册时用户名已存在会提示“用户已存在”,攻击者可利用该提示信息通过接口遍历用户名字典或手机号码字典,获取有效用户名。攻击方式攻击者利用注册接口的提示差异,遍历字典枚举有效用户名,进而针对密码和验证码进行爆破。漏洞危害导致用户信息泄露,为后续暴力破解账号密码提供条件,增加账号被盗风险。密码重置类漏洞未进行用户手机号码二次校验攻击者用自己手机接收验证码后,修改为他人手机号码完成密码重置。因系统仅校验验证码,未二次校验手机号,导致账号被恶意重置。没有对旧密码进行校验用户登录后修改密码,系统仅判断账号,未验证旧密码。攻击者可通过工具修改数据包中的账号信息,篡改其他用户密码。未校验用户账号密码重置流程仅校验验证码和手机号,未判断设置新密码的用户账号。攻击者验证后拦截数据包修改账号,重置其他用户密码。验证码绕过漏洞修改响应数据包code值攻击者提交任意验证码,拦截服务器返回的响应数据包,将code=1(验证码错误)修改为code=0(验证码正确),绕过验证打开修改密码页面。验证码回传请求验证码时,系统将验证码通过响应数据包返回前端,攻击者直接从数据包中获取验证码,无需对应手机接收即可通过验证。跳过验证码验证系统未校验修改密码步骤,攻击者记录正常修改密码流程的页面链接,输入其他用户账号后,直接访问最终修改密码页面完成重置。支付漏洞
修改商品数量攻击者用工具截取请求,将商品数量改为0、负数或0.01,若后端未校验,可能实现免费购买、账户充值或低价购买,如原价500元商品改数量为0.01实付5元。
修改订单金额抓取数据包或修改前端代码篡改订单金额,后端未二次校验且传输无签名时,可实现免费或最低价购买商品。
修改支付状态修改订单支付状态参数(如orderstatus=1改为2)或替换未支付订单号为已支付订单号,使服务器误判订单已支付,达到免费购买目的。
修改优惠券包括叠加使用优惠券、修改优惠券标识使用其他商品大额券、直接修改优惠券面值,从而低价购买商品。提权漏洞
水平提权攻击者访问与自身权限相同用户的资源,如通过修改URL中用户ID参数(uid=10改为uid=11),查看其他用户个人信息。
垂直提权用户获取正常权限外的更高权限,如普通用户修改URL中角色参数(role=0改为role=1),访问管理员页面执行未授权操作。
攻击手段包括修改用户身份参数(如URL中的uid、Cookie凭据)、修改权限控制参数(如role值),绕过授权机制获取未授权权限。漏洞攻击实训演练05XXE漏洞攻击演练实训目的使用Pikachu靶场进行XXE漏洞攻击,提升利用XXE漏洞的实战能力。实训环境一台安装有Windows10操作系统的计算机,且Firefox浏览器已经安装HackBar插件;一台已安装CentOS7操作系统和Pikachu靶场的虚拟机,可以访问外网。内部实体引用步骤单击此处添加项正文外部实体引用步骤在XXE漏洞页面文本框中输入外部实体引用代码“”,提交后页面返回passwd文件内容,成功利用漏洞获取敏感信息。命令注入漏洞攻击演练
实训目的在DVWA靶场上进行命令注入漏洞攻击,提升利用命令注入漏洞的实战能力。
实训环境一台安装有Windows10操作系统的计算机,且Firefox浏览器已经安装HackBar插件;一台已安装CentOS7操作系统和DVWA靶场的虚拟机,可以访问外网。
登录与安全级别设置访问DVWA靶场,输入用户名“admin”和密码“password”登录,进入“DVWASecurity”将安全级别设置为“Low”并提交。
执行Ping功能在命令注入漏洞页面文本框中输入IP地址“”,单击“Submit”按钮,页面返回Ping功能执行结果。
获取系统信息在文本框中输入“;whoami”获取当前用户名,输入“;ifconfig”获取服务器网络信息。水平提权漏洞攻击演练
01实训目的在Pikachu靶场上进行水平提权漏洞攻击,提升利用水平提权漏洞的实战能力。
02实训环境一台安装有Windows10操作系统的计算机,且Firefox浏览器已经安装HackBar插件;一台已安装CentOS7操作系统和Pikachu靶场的虚拟机,可以访问外网。
03登录系统访问Pikachu靶场水平提权漏洞页面,输入用户名“vince”和密码“123456”,单击“Login”按钮登录系统。
04查看个人信息登录后单击“点击查看个人信息”按钮,显示当前登录用户vince的个人信息,包括姓名、性别、手机、住址和邮箱。
05修改URL参数实现水平提权将查看vince个人信息的URL中参数“username=vince”修改为“username=allen”,访问修改后的URL,成功显示allen的用户信息,实现水平提权。漏洞防御总结与展望06各类漏洞防御措施汇总XXE漏洞防御措施禁用外部实体解析,明确禁用XML解析器中的DTD和外部实体引用;对输入XML数据严格校验,过滤敏感声明;配置处理器不返回详细错误信息;优先使用JSON等安全格式替代XML。弱类型比较漏洞防御措施使用严格比较运算符“===”替代“==”;对变量类型进行显式转换后再比较;MD5哈希比较时采用严格字符串比较;array_search函数设置strict参数为true。命令注入漏洞防御措施验证输入合法性,只允许预期值;转义特殊字符;使用安全函数构造命令而非字符串拼接;遵循最小权限原则限制应用程序账号权限。逻辑漏洞防御措施注册环节避免泄露用户存在信息;密码重置需校验手机号、旧密码及用户账号;验证码实现服务端校验且不回传前端;支付流程对订单信息、金额、状态进行后端校验和签名。安全开发生命周期建议需求分析阶段明确安全需求,识别潜在业务逻辑风险,如支付流程、权限控制等场景的安全目标,制定安全功能需求文档。设计阶段采用安全设计模式,如最小权限原则、数据加密传输存储;避免使用危险函数(如PHP的system、exec);设计防逻辑漏洞的业务流程,如密码重置多因素校验。编码阶段遵循安全编码规范,如输入验证、输出编码;使用安全函数库;避免弱类型比较,采用严格类型检查;定期进行代码自查和交叉审查。测试阶段开展漏洞扫描、渗透测试,模拟攻击场景验证防御措施有效性;重点测试XXE、命令注入等漏洞;对逻辑漏洞进行专项测试,如越权访问、支付篡改。部署运维阶段定期更新系统和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塑料真空成型工变革管理知识考核试卷含答案
- 油料计量员安全技能测试评优考核试卷含答案
- 锅炉(承压)设备焊工操作能力考核试卷含答案
- 2025年职业指导师考试题库
- 2026年红十字献血服务中心招聘试题含答案
- 2026年妇幼保健机构管理试题及答案
- 2026年大学大四(农村区域发展)农村经济发展规划测试题及答案
- 妇产科护理知识-1
- 电力电子技术(第2版)习题及答案 绪论参考答案
- 中医护理技能操作考核标准解读
- 2025年邮政四级副干部竞聘笔试考试题及答案
- 2025年幼儿园初级保育员证考试试题和答案
- 养老机构食堂安全隐患排查制度
- 2026年福建省烟草专卖局第二批招聘(127人)考试参考试题及答案解析
- 2025-2026学年北京市海淀区九年级(上)期末数学试卷(含部分答案)
- 2026年湖南高速铁路职业技术学院单招职业技能考试题库及答案1套
- 2026春三年级下册第一单元1《古诗三首》 教学教学课件
- 《应急预案编制与演练》全套教学课件
- 海信集团AI面试求职者常见疑惑解答
- 销售润滑油合同范本
- 城镇燃气经营安全重大隐患判定标准试题(有答案)
评论
0/150
提交评论