资讯动态

Web安全-业务逻辑漏洞常用技巧与实战案例汇总_挖洞技巧

发布时间:2026/9/30 20:58:29 来源:尧图企业网站定制
Web安全-业务逻辑漏洞常用技巧与实战案例汇总|挖洞技巧0x01 前言逻辑漏洞是指在软件或系统的设计和实现中由于逻辑错误或缺陷导致的安全问题。这些漏洞不是由于代码编写的错误引起的而是由于系统设计时的逻辑思路有问题导致系统在某些情况下无法正常处理进而被攻击者利用。本文从身份认证、越权访问、数据篡改、密码重置、接口安全、JWT逻辑漏洞等多个维度结合实战案例展示了攻击手法与修复策略。0x02 漏洞详情身份认证安全1漏洞产生原因有些网站对身份认证模块没有做好安全防护因此导致漏洞产生2绕过身份认证有以下几种方法暴力破解、撞库以信息收集找到的凭证作为字典CookieSession类加密3暴力破解测试方法在没有验证码限制或者一次验证码可以多次使用的地方可以分为以下几种情况爆破用户名。当输入的用户名不存在时会显示请输入正确用户名或者用户名不存在已知用户名。比如已知用户名为admin密码可以进行字典爆破使用一个常用密码。比如 123456 对大量用户进行爆破基于这一块内容的练习可以看靶场中有相关练习4CookieSession类Cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据通常经过加密我们俗称为浏览器缓存 Session在网络应用中称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。 当用户在应用程序的 Web 页之间跳转时存储在 Session 对象中的变量将不会丢失而是在整个用户会话中一直存在下去。 当用户请求来自应用程序的 Web 页时如果该用户还没有会话则 Web 服务器将自动创建一个 Session对象与Cookie有一定相同之处。Cookie伪造 通过修改 Cookie 中的某个参数来实现登录其他用户 测试方法使用一个账号登录找一个可以证明身份的页面例如首页的欢迎 xxx 或者是个人中心显示昵称的地方刷新该页面拦截请求观察 Cookie 中的字段和值例如 useridxxx修改Cookie中的值把 xxx 改成 adminforword 放行页面显示 admin 的信息则存在此问题。 修复方法对于客户端标识的用户信息使用 Session 会话认证方式避免通过 Cookie 去仿冒其他人的身份。 Session会话固定攻击 一种诱骗受害者使用攻击者指定的会话标识Session id的攻击手段利用了服务器的session不变的机制 攻击步骤攻击者通过某种手段重置目标用户的 Session id然后监听用户会话状态目标用户携带攻击者设定的Session id 登录站点攻击者通过 Session id 获得合法会话。 攻击者重置 Session id 的方法通过xss嗅探等方法取得用户的session并且修改数据包。 修复方法每次登陆成功之后重新生成sessionsessionID闲置过久时进行重置sessionID5加密测试概念有些网站在前端加密然后传到后台直接和数据库里的值做对比这时抓包就知道加密方式然后做暴力破解。 测试方法用账号密码登录拦截请求查看传输信息是不是通过一些加密方式对账号和密码进行了加密如果有则存在此问题对于前端加密后的密码进行暴力破解测试时可以在BurpSuite的Intruder模块Payload Processing中选择加密方式未授权访问/信息泄露授权的概念就是对特定资源的读写权限。简单的说就是你的权限能让你做什么事情而验证则表示是否真的可以对这些资源进行读写未授权访问的概念就是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或者文本信息越权漏洞的产生主要是用于开发人员在对数据进行操作时对客户端请求的数据过分相信而遗漏了权限的判断越权漏洞常发生的位置修改、重置、找回账户密码、查看、修改其他账户未公开的信息例如个人资料、文件、数据、程序等等还有与账户关联的一些权限操作案例信息泄露说明点击预约记录并抓包发现可以看到自己的预约信息及其他信息。这里的id推测为自己的用户id将userAddrld和userld修改为被害者Id发送发现修改成功越权漏洞的分类水平越权指相同权限的不同用户可以互相访问举例两个不同的班级的学生A和B通过修改请求A可以任意修改B的个人信息垂直越权指使用权限低的用户可以访问权限较高的用户举例同一个班级不同权限的老师和学生通过修改请求学生可以修改和查看老师的账号信息同级别权限的用户或者同一角色的不同用户之间可以越权访问、修改或者删除的非法操作如果出现此漏洞那么将可能会造成大批量数据泄露严重的甚至会造成用户信息被恶意篡改。案例某系统任意用户密码修改漏洞说明通过修改密码处功能点进行抓包修改其id值然后放包即可修改他人密码案例平平无奇越权漏洞登录系统后点击查看自己的信息获取到接口xxx/getDataSelf.do查询出两条数据仔细分析接口后面的这个getDataSelf.do其中self是自己的意思那我把它删除会发生什么呢神奇地发现回显了716条数据成功越权查看系统所有用户的数据。但查看这点数据顶多算个中低危漏洞如果能删除修改就完美了。遂对getData.do中的getData进行fuzz发现remove.do接口提示缺少参数猜测其就是删除数据的接口再将我们在前面获取到的所有用户数据响应包中的id进行替换即可进行越权删除数据篡改数据纂改分为两方面业务一致性安全、业务数据安全案例商品编号纂改步骤提交订单时抓包修改商品标号导致商品与价格不符却交易成功举例例如100个积分只能换商品编号为001, 1000个积分只能换商品编号005 在100积分换商品的时候抓包把换商品的编号修改为005 用低积分换取高积分商品。修复金额不在客户端传入防止被篡改如必要则务必检查交易金额与商品价格或对支付金额做签名校验相关案例 某积分商城支付漏洞说明通过抓包可以修改积分案例金额数据纂改步骤 在提交订单时进行抓包修改支付的金额或折扣等相关数据。修复 商品信息如金额、折扣等原始数据校验应来自于服务器端不应接受客户端传来的值。相关案例 某订单支付时的总价未验证漏洞在支付流程中可以修改支付价格的步骤有很多包括订购、确认信息、付款等。在涉及到价格的步骤中都可以尝试修改如果网站在某一环节存在逻辑上的漏洞就可以利用该漏洞对支付价格进行修改。可以直接修改提交订单中的价格字段一般可尝试0.011.001等更改订单信息服务端只检查支付是否完成并没有确认订单金额与银行支付金额是否相同过分信任客户端提交的数据。此时可以通过替换支付订单号、更换商品id的方式来完成花少钱买更贵的东西。同时生成两个订单号一个贵的一个便宜首先支付便宜的银行往回返回的时候替换订单号然后就可以完成两个订单的同时支付。常见位置在生成订单、生成支付链接等。修改商品编号直接在生成的订单中替换商品编号。修改订单号将金额不同的订单进行替换可以支付一个金额较少的订单然后将订单号修改为金额较大的订单少付实际金额。越权使用他人优惠券、越权使用他人积分等更改数量实现优惠支付支付金额是由购买数量乘以商品单价决定的这时我们在数据包中修改购买数量将其修改为负数或者小数如果站点后台对此没有进行过滤就有可能存在支付漏洞。将正常的数量值修改至最小值0.01可以实现低价购买。比如原价300修改修量为0.01后实付金额变为3。未对负数做检验的还可以将数量改为负数。这里需要注意因为后端大部分会校验不允许实付金额小于0或者0.01等所以有的时候要想实现订单成功生成需要结合实际修改价格生成订单时有参数表示商品数量修改为-1修改数量为-1后会发现此时金额为负数。在提交订单支付的时候为保证支付成功需要修改金额。其他技巧利用小数点精度四舍五入0190.02比如充值0.019元第三方支付截取到分也就是0.01元但是系统四舍五入为0.02。案例本地JS参数纂改步骤 部分应用程序通过Javascript处理用户提交的请求 通过修改Javascript脚本测试修改后的数据是否影响到用户。修复服务器校验跨平台支付调用接口要做好数据的完整性校验确保一致性案例最大数限制突破步骤很多商品限制用户购买数量时服务器仅在页面通过js脚本限制没有在服务器端校验用户提交的数量通过抓包修改商品最大数限制将请求中的商品数量改为大于最大数限制的值查看能否以修改后的数量完成业务流程。修复 每次提交都对其对应的各项信息做强校验任意密码重置漏洞概念任意密码重置漏洞是系统设计缺陷允许攻击者在未经授权的情况下更改其他用户的密码。漏洞分析与常见场景缺乏身份验证、不安全的重置链接、安全问题或验证码的缺陷以及会话固定攻击是任意密码重置漏洞的常见场景。案例管理系统任意密码修改漏洞按提示输入收集到的信息继续往下走这里的话我们需要输入正确的邮箱地址先不然后台的数据库中没有对应的邮箱地址是不会发送验证码这一步的可以看到返回包显示验证码不正确废话这是必然的但是我们又观察返回包似乎没有啥鉴权参数啥的大胆尝试更改一下返回包的数据修改数据包如下:{“Succeed”:true,”Message”:””,”Data”:null}只需要把后面数据简单修改成上面的样子即可跳过验证码验证的环节直接可以来到修改密码的步骤了输入密码123456提示不够复杂但是这里也存在一个缺陷就是只是前端校验了复杂性后端并没有比如我先输入一个符合规则的密码然后点击抓包直接修改数据包的密码为123都是可以的应该不算漏洞感觉没啥危害提一嘴罢了这里然后直接就可以登录系统成功啦案例验证码泄露验证码返回凭证的三种形式url返回凭证、抓包返回凭证、凭证在页面中说明进入重置密码页面输入手机号验证码下一步抓包查看返回值。得到验证码信息案例验证码爆破进入找回密码界面输入需要找回的手机号进行验证如果存在该手机号则会向改手机号发送短信验证码进行验证这里我们随便输入一个验证码然后抓包然后对该验证码进行爆破即可爆破出正确验证码案例邮箱弱token获取邮箱弱token的方法Unix时间戳 md5例如1通过邮箱找回密码正常流程去邮箱查看重置密码链接发现链接处有一串 md5 加密字符串。字符串解密类似 149129327710位可以判断为Unix时间戳。 重置他人密码只需利用他人邮箱发送重置密码邮件在短时间内对Unix时间戳进行暴力破解即可获得重置密码的链接。2用户名例如重置密码链接直接使用用户名进行区别改变用户名即可更改他人密码3服务器时间例如利用两个帐号同时点击找回密码去邮箱查看找回密码的链接发现两者的随机 token 只差1-2而且可以猜测出为服务器时间。所以可以用一个未知帐号和一个已知帐号同时点击找回密码稍微遍历随机 token就可以构造出未知帐号的密码找回链接案例跳过验证的方法介绍跳过验证步骤、找回方式、直接到设置新密码页面1正常流程下密码找回查看最后设置新密码页面的 URL记录下来。继续返回密码找回处输入其他用户名提交找回申请直接访问上面记录下的修改密码页面成功修改密码2正常流程下修改密码页面抓包修改其中的USERNAME_COOKIE为其他用户有可能会经过编码比如 base64提交即可修改其他用户密码如果抓包其中有 step 参数可以修改这个参数为最后一步比如5提交便可略过之前的步骤说明输入用户名抓包数据包中有step参数将这个参数改为最后一步step改为4即可提交后便掠过之前所有的验证步骤修改密码成功接口调用安全概念接口也叫做APIApplication Programming Interface—翻译为“应用程序编程接口”是一些预先定义的函数 目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力而又无需访问源码或理解内部工作机制的细节接口调用安全的几种分类1重放攻击在短信、邮件调用业务或生成业务数据环节中类短信验证码邮件验证码订单生成评论提交等对其业务环节进行调用重放测试 常见类型短信轰炸、恶意注册修复1. **对评论提交等操作采用验证码机制防止生成数据业务被恶意调用2.短信/邮件接口需要对接调用频率进行控制或者上限限制3.每一个订单接口访问使用唯一的token提交一次后token失效**2内容编辑例如点击获取短信验证码抓包可以修改短信内容实施下一步攻击修复从客户端处获取手机号、邮箱等账号信息要与Session中的凭证进行核验验证通过后才允许进行业务操作。3接口调用遍历漏洞Web接口一般将常见的一些功能需求进行封装通过传入不同的参数来获取对应的数据或者执行相应的功能其中最常见的场景就是通过接口传入id参数返回对应id的信息。此类接口如请求合法性校验不严很容易出现非授权访问或者越权访问的问题。修复1. **在session中存储当前用户的凭证或者id只有传入凭证或者id参数值与session中的一致才返回结果。2.一般涉及身份校验的接口不要直接将敏感信息的明文信息在客户端与服务端间传递可以将敏感信息在服务端关联到用户标识ID在客户端保存用户标识 ID 并提交到服务端服务端根据 ID 取出对应信息后进行校验**4接口未授权访问/调用漏洞在正常的业务中敏感功能的接口需要对访问者的身份进行验证验证通过后才允许调用接口进行操作。接口未做身份验证或身份校验不严可能导致非授权访问或越权调用修复1. **采用Token校验的方式在url中添加一个Token参数只有Token验证通过才返回接口数据且Token使用一次后失效2.在接口被调用时服务器端对会话状态进行验证如果已经登录便返回接口数据如未登录则返回自定义的错误信息3.未授权访问接口做Session认证并对用户访问的每一个URL做身份鉴别正确的校验用户id及token等4.服务器端需校验身份唯一性访问接口来源验证不同身份只能查看修改删除添加自己的信息。**接口测试思路接口分类目前接口API主要分为WEB接口、TCP接口、其他特定接口。2023年OWASP 组织根据近几年安全攻击趋势发布了OWASP top 102023其中【A10-未受到充分保护的API】为新增的最新十大安全威胁之一。以下是常见的接口测试分类安全测试的角度来划分测试方式Web API 测试主要参考常规web测试使用burpsuite、fiddler、Firefox-hackbar插件等集成安全测试工具对API接口进行分析、测试。Socket API测试使用SocketTool等socket数据包测试工具以及开发接口的公司使用的专用测试工具或者自己编写的测试脚本进行分析、测试。使用wireshark进行数据包流量分析。 其他接口测试接近研究性质主要使用wireshark、SocketTool、自主编写的测试FUZZ脚本等进行测试。测试流程JWT逻辑漏洞置空鉴权字段不仅仅在登录口,在查询处,鉴权处都是很经典的思路如jwt置空加密字段,个人信息置空回显站点全部信息,最简单的思路往往能造成最致命的问题。实战赏金案例SRC高危JWT逻辑漏洞挖掘进入站点简单熟悉一下业务,发现存在注册功能,未注册的账户会自动注册,登录注册均是同一接口(划重点)正常bp抓包进行注册,接口/xjky-server/xjky-biz-server/app/open/sms/registerAndLogin记录了注册手机号及短信验证码以及一串不知道的tenantId,正确的验证码会返回Token,后续请求带上Token对用户进行身份信息认证{openId:“307332password:“307332”username:“15xxxxx454tenantId:0ff61e364ea44c44a9b27c9198alcdd9}将此接口发送到重发器测试,置空验证码,同样成功请求并返回token,为了确认新生成的token是否为新号码,在此站点也测试了有一会,熟悉了业务,有一个接口可以通过token回显个人信息替换后响应包返回loginId对应的正是我尝试任意注册的号,那么此账号已经成功被注册记录好187号码所生成的token响应包,来到登录功能点,验证码随意输入,拦截响应包替换响应内容为任意生成生成的token而后一直放包会登录到187账户,图片未截取完,不过已经是进入了187个人信息页面当我测试完成任意注册后,发觉登录口和注册均是一套接口,只是未登录过的账号会自动注册/xjky-server/xjky-biz-server/app/open/sms/registerAndLogin任意用户注册攻击置空验证会产生token,那么如果是我拿到已登录的账户,在此登录口同样进行置空验证码操作,是否也会返回对应号码token呢我正常注册了一位138账户进行模拟,省略过程,直接来到登录口进行测试,模拟攻击者不知道验证码的情况,随意输入然后拦截响应包纯粹的置空让其不做校验然后放包同我想的一样,只要置空验证就可以绕过登录验证,直接根据号码生成token,直接任意用户登录接管账户,又可以吃N顿馒头了0x03 总结逻辑漏洞目前来说还是非常多的由于系统设计中安全思维缺失的缺失。攻击者常通过流程绕过、权限控制不严、接口滥用等方式达到攻击目的。“所见皆可篡改”总会出洞的从前端JS到后端API任何客户端传来的数据都是不可信的大胆假设小心验证往往能发现致命漏洞。学习资源如果你也是零基础想转行网络安全却苦于没系统学习路径、不懂核心攻防技能光靠盲目摸索不仅浪费时间还消磨自己信心。这份 360 智榜样学习中心独家出版《网络攻防知识库》专为转行党量身打造01内容涵盖这份资料专门为零基础转行设计19 大核心模块从 Linux系统、Python 基础、HTTP协议等地基知识到 Web 渗透、代码审计、CTF 实战层层递进攻防结合的讲解方式让新手轻松上手真实实战案例 落地脚本直接对标企业岗位需求帮你快速搭建转行核心技能体系这份完整版的网络安全学习资料已经上传CSDN【保证100%免费】**读者福利 |***CSDN大礼包《网络安全入门进阶学习资源包》免费分享 *安全链接放心点击02 知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。03 谁需要掌握本知识库负责企业整体安全策略与建设的CISO/安全总监从事渗透测试、红队行动的安全研究员/渗透测试工程师负责安全监控、威胁分析、应急响应的蓝队工程师/SOC分析师设计开发安全产品、自动化工具的安全开发工程师对网络攻防技术有浓厚兴趣的高校信息安全专业师生04部分核心内容展示360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解这份完整版的网络安全学习资料已经上传CSDN【保证100%免费】**读者福利 |***CSDN大礼包《网络安全入门进阶学习资源包》免费分享 ***安全链接放心点击**

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑