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

简介: 最近忙于工作没有抽出时间来分享渗透测试文章,索性今天由我们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等数据库无密码且没有限制访问
加密体系
在客户端存储私钥
三方库/软件
公开漏洞后没有及时更新,如果对此有进一步的想加强网站安全性以及渗透测试服务,可以咨询专业的网站安全公司来处理解决。

相关文章
|
13天前
|
安全 Java 应用服务中间件
渗透测试-JBoss 5.x/6.x反序列化漏洞
渗透测试-JBoss 5.x/6.x反序列化漏洞
37 14
|
13天前
|
安全 网络安全 数据安全/隐私保护
渗透测试-Openssl心脏出血漏洞复现
渗透测试-Openssl心脏出血漏洞复现
26 7
|
17天前
|
监控 安全 Linux
如何利用Kali Linux进行网站渗透测试:最常用工具详解
如何利用Kali Linux进行网站渗透测试:最常用工具详解
49 6
|
28天前
|
安全 应用服务中间件 网络安全
Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)
Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)
30 11
|
6天前
|
SQL 搜索推荐 测试技术
ChatGPT与测试分析
本产品需求文档(PRD)针对论坛网站的搜索功能优化,旨在提升搜索结果的准确性和速度,增强用户体验。文档涵盖项目背景、目标、功能需求(如搜索结果准确性、搜索速度优化、过滤和排序等)、非功能需求(如兼容性、性能、安全性等)、用户界面设计和技术架构等内容,并制定了详细的测试和上线计划,确保项目顺利实施。
9 0
|
28天前
|
前端开发 测试技术 UED
【测试效率对比】深入分析:为何UI自动化测试的投资回报率通常低于接口自动化测试?
这篇文章深入分析了UI自动化测试与接口自动化测试的投资回报率(ROI)问题,指出UI自动化测试在某些情况下的ROI并不低,反驳了没有实施过UI自动化就轻易下结论的观点,并强调了实践的重要性和自动化测试在项目迭代中的作用。
47 1
|
19天前
|
安全 测试技术 网络安全
|
7天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
44 7
Jmeter实现WebSocket协议的接口测试方法
|
7天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
30 3
快速上手|HTTP 接口功能自动化测试
|
6天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
19 5