WEB安全中Xpath注入攻击原理是什么

发布时间:2022-01-17 11:05:02 作者:iii
来源:亿速云 阅读:191

本文小编为大家详细介绍“WEB安全中Xpath注入攻击原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“WEB安全中Xpath注入攻击原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Xpath注入


3.11.1. Xpath定义

XPath注入攻击是指利用XPath解析器的松散输入和容错特性,能够在 URL、表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息。XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知识的情况下,通过XPath查询得到一个XML文档的完整内容。


3.11.2. Xpath注入攻击原理

XPath注入攻击主要是通过构建特殊的输入,这些输入往往是XPath语法中的一些组合,这些输入将作为参数传入Web 应用程序,通过执行XPath查询而执行入侵者想要的操作,下面以登录验证中的模块为例,说明 XPath注入攻击的实现原理。


在Web 应用程序的登录验证程序中,一般有用户名(username)和密码(password) 两个参数,程序会通过用户所提交输入的用户名和密码来执行授权操作。若验证数据存放在XML文件中,其原理是通过查找user表中的用户名 (username)和密码(password)的结果来进行授权访问,  


例存在user.xml文件如下:  

<users>      

    <user>          

          <firstname>Ben</firstname>                       

          <lastname>Elmore</lastname>          

          <loginID>abc</loginID>          

          <password>test123</password>      

    </user>      

    <user>          

          <firstname>Shlomy</firstname>          

          <lastname>Gantz</lastname>          

          <loginID>xyz</loginID>          

          <password>123test</password>      

    </user> 


则在XPath中其典型的查询语句如下:


//users/user[loginID/text()=’xyz’and password/text()=’123test’]  


但是,可以采用如下的方法实施注入攻击,绕过身份验证。如果用 户传入一个 login 和 password,例如 loginID = ‘xyz’ 和 password = ‘123test’,则该查询语句将返回 true。但如果用户传入类似 ‘ or 1=1 or ”=’ 的值,那么该查询语句也会得到 true 返回值,因为 XPath 查询语句最终会变成如下代码:


//users/user[loginID/text()=”or 1=1 or ”=” and password/text()=” or 1=1 or ”=”]  


这个字符串会在逻辑上使查询一直返回 true 并将一直允许攻击者访问系统。攻击者可以利用 XPath 在应用程序中动态地操作 XML 文档。攻击完成登录可以再通过XPath盲入技术获取最高权限帐号和其它重要文档信息。


3.12

逻辑漏洞 / 业务漏洞


3.12.1. 简介

逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。  在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。


3.12.2. 安装逻辑

● 查看能否绕过判定重新安装

● 查看能否利用安装文件获取信息

● 看能否利用更新功能获取信息


3.12.3. 交易

3.12.3.1. 购买

● 修改支付的价格

● 修改支付的状态

● 修改购买数量为负数

● 修改金额为负数

● 重放成功的请求

● 并发数据库锁处理不当


3.12.3.2. 业务风控

● 刷优惠券

● 套现


3.12.4. 账户

3.12.4.1. 注册

● 覆盖注册

● 尝试重复用户名

● 注册遍历猜解已有账号


3.12.4.2. 登录

● 撞库

● 账号劫持

● 恶意尝试帐号密码锁死账户


3.12.4.3. 找回密码

● 重置任意用户密码

● 密码重置后新密码在返回包中

● Token验证逻辑在前端


3.12.4.4. 修改密码

● 越权修改密码

● 修改密码没有旧密码验证


3.12.5. 验证码

● 验证码强度不够

● 验证码无时间限制或者失效时间长

● 验证码无猜测次数限制

● 验证码传递特殊的参数或不传递参数绕过

● 验证码可从返回包中直接获取

● 验证码不刷新或无效

● 验证码数量有限

● 验证码在数据包中返回

● 修改Cookie绕过

● 修改返回包绕过

● 图形验证码可OCR或使用机器学习识别

● 验证码用于手机短信/邮箱轰炸


3.12.6. Session

● Session机制

● Session猜测 / 爆破

● Session伪造

● Session泄漏

● Session Fixation


3.12.7. 越权

● 水平越权

攻击者可以访问与他拥有相同权限的用户的资源

权限类型不变,ID改变

● 垂直越权

低级别攻击者可以访问高级别用户的资源

权限ID不变,类型改变

● 交叉越权

权限ID改变,类型改变


3.12.8. 随机数安全

● 使用不安全的随机数发生器

● 使用时间等易猜解的因素作为随机数种子


3.12.9. 其他

● 用户/订单/优惠券等ID生成有规律,可枚举

● 接口无权限、次数限制

● 加密算法实现误用

● 执行顺序

● 敏感信息泄露


3.13

配置安全


● 弱密码

位数过低

字符集小

为常用密码

个人信息相关(手机号 生日 姓名 用户名)

使用键盘模式做密码

● 敏感文件泄漏

.git

.svn

● 数据库

Mongo/Redis等数据库无密码且没有限制访问

● 加密体系

在客户端存储私钥

● 三方库/软件

公开漏洞后没有及时更新

读到这里,这篇“WEB安全中Xpath注入攻击原理是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. sql注入攻击指的是什么
  2. SQL注入攻击的原理是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

web安全 xpath

上一篇:如何实现group by慢查询优化

下一篇:Python怎么实现自动化发送邮件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》