3.11.2. Xpath注入攻击原理
XPath注入攻击主要是通过构建特殊的输入,这些输入往往是XPath语法中的一些组合,这些输入将作为参数传入Web 应用程序,通过执行XPath查询而执行入侵者想要的操作,下面以登录验证中的模块为例,说明 XPath注入攻击的实现原理。
在Web 应用程序的登录验证程序中,一般有用户使用者名(username)和密码(password) 两个参数,程序会通过用户使用者所提交输入的用户使用者名和密码来执行授权操作。若验证数值数据存放在XML文件中,其原理是通过查找user表中的用户使用者名 (username)和密码(password)的结果来进行授权浏览访问,
例存在user.xml文件如下:
Ben
Elmore
abc
test123
Shlomy
Gantz
xyz
123test
则在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. 越权
水平越权
攻击者可以浏览访问与他拥有相同权限的用户使用者的资源以上精彩的信息文章由ck拨码开关product-selection/dip/进行实时分享!
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有