网站漏洞详细的渗透测试手法分析

简介: 最近忙于工作没有抽出时间来分享渗透测试文章,索性今天由我们Sinesafe的高级渗透大牛给大家详细讲下主要在业务中发现逻辑和越权的漏洞检测方法,希望大家能对自己的网站安全进行提前预防和了解,再次提醒做安全测试前必须要有正规的授权才能进行测试,提供网站的安全性保障权益。

最近忙于工作没有抽出时间来分享渗透测试文章,索性今天由我们Sinesafe的高级渗透大牛给大家详细讲下主要在业务中发现逻辑和越权的漏洞检测方法,希望大家能对自己的网站安全进行提前预防和了解,再次提醒做安全测试前必须要有正规的授权才能进行测试,提供网站的安全性保障权益。
10

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文件如下:

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. 逻辑漏洞 / 业务漏洞

9

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. 配置安全

8

3.13. 配置安全

弱密码
位数过低
字符集小
为常用密码
个人信息相关(手机号 生日 姓名 用户名)
使用键盘模式做密码
敏感文件泄漏
.git
.svn
数据库
Mongo/Redis等数据库无密码且没有限制访问
加密体系
在客户端存储私钥
三方库/软件
公开漏洞后没有及时更新,如果对此有进一步的想加强网站安全性以及渗透测试服务,可以咨询专业的网站安全公司来处理解决。

相关文章
|
14天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
22 0
|
1月前
|
敏捷开发 运维 安全
链家网站系统测试设计与实现_kaic
链家网站系统测试设计与实现_kaic
|
2月前
|
计算机视觉
Google Earth Engine(GEE)——使用MODIS数据单点测试SG滤波和harmonics method 滤波的差异分析
Google Earth Engine(GEE)——使用MODIS数据单点测试SG滤波和harmonics method 滤波的差异分析
46 0
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
414 1
|
1月前
|
jenkins 测试技术 持续交付
提升软件测试效率与准确性的策略分析
【2月更文挑战第28天】 在快速迭代的软件发展周期中,高效的测试流程是确保产品质量和用户满意度的关键。本文旨在探讨提高软件测试效率和准确性的策略,包括自动化测试工具的选择、测试用例的优化设计以及持续集成的实践。通过分析当前软件测试领域面临的挑战,提出了相应的解决方案,并通过案例分析来展示这些策略的实际应用效果。文章的目的是为软件测试工程师提供实用的指导和参考,帮助他们在保证测试质量的同时,缩短测试周期,降低成本。
40 1
|
6天前
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
24 0
|
11天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
14天前
|
测试技术 Linux Apache
网站压力测试工具webbench图文详解
网站压力测试工具webbench图文详解
11 0
|
16天前
|
Web App开发 搜索推荐 测试技术
网站速度测试
【4月更文挑战第8天】网站速度测试
12 2
|
23天前
|
机器学习/深度学习 人工智能 算法
提升软件测试效率与质量的策略分析
在快速发展的信息技术时代,软件产品已成为日常生活和工作的核心组成部分。随着软件系统的复杂度日益增加,确保其功能性、稳定性及安全性的软件测试工作变得尤为重要。本文针对如何提升软件测试的效率与质量进行了深入探讨,分析了当前软件测试面临的挑战,并提出了一系列创新策略。这些策略包括采用自动化测试工具、实施持续集成和持续部署(CI/CD)、利用人工智能进行测试用例生成以及强化测试团队的技能培训等。通过综合运用这些策略,可以显著提高软件测试的质量和效率,减少人工成本,同时加速产品的上市时间。