《逻辑漏洞全解析:程序员必学的网络安全知识(建议收藏)

《逻辑漏洞全解析:程序员必学的网络安全知识(建议收藏)
《逻辑漏洞全解析程序员必学的网络安全知识建议收藏》文章详细介绍了各种逻辑漏洞和业务漏洞类型包括会话固定、Cookie仿冒、参数篡改等并提供了防御措施。这类漏洞本质是规则被绕过、流程被滥用、假设被打破不依赖复杂利用链而是源于对业务理解不足。与传统漏洞不同它们无法通过扫描器批量发现更多依赖于对业务流程的拆解能力、攻击者视角的逆向思考及对用户行为的理解。简介逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。 在实际开发中因为开发者水平不一没有安全意识而且业务发展迅速内部测试没有及时到位所以常常会出现类似的漏洞。身份认证会话固定漏洞会话固定漏洞是指网站或应用程序在用户登录时分配的会话标识符Session ID是固定不变的而不是在每次会话中都重新生成。攻击者可以利用这个固定的会话标识符轻松地接管用户的会话执行未经授权的操作甚至冒充合法用户。案例链接 https://yaklang.com/Yaklab/vulinbox/mall/01unsafe-sessionid1.登录过后拿到用户的session的值2.退出登录用cookie插件进行保存session的值3.再刷新一下网站就可以登录了防御措施随机生成会话标识符 在用户登录成功后应该使用随机生成的会话标识符并在每次会话中更新会话标识符而不是使用固定的会话标识符。设置安全的 Cookie 属性 在设置 Cookie 时应该使用HttpOnly和Secure属性使得 Cookie 只能通过 HTTP 请求访问以及仅在使用 HTTPS 连接时才能传输。定期更新会话标识符 应该定期更新会话标识符例如在用户登录后、密码修改后、用户权限变更后等关键操作之后更新会话标识符以降低攻击者获取固定会话标识符的机会。加强会话管理 对于敏感操作应该实施额外的会话管理措施如双因素认证、会话超时机制等以提高系统的安全性。Cookie仿冒服务器为了鉴别客户端浏览器会话及身份信息会将用户身份信息写入Cookie中并发送至客户端存储。攻击者通过尝试修改Cookie中的身份标识从而达到仿冒其他用户身份的目的并拥有相关用户的所有权限。系统使用Cookie机制进行用户身份鉴别时攻击者可直接通过篡改请求中的Cookie用户身份参数值来冒充仿冒他人从而对目标系统及用户造成危害任意用户名修改从箭头所指处可以看到用户名以及密码都是不可修改的因为这两个值决定了登录时的唯一性可以通过这两个信息进行登录但是继续往下看。我们看一下前端代码发现其实用户名及电话号码甚至id都是在input表单里的而id只是用了一个hidden参数那么我们进行完全修改一下。可以看到用户名已经修改了并且可以使用新的用户名登录。这里需要注意的一点就是id只能修改为未注册的ID这里猜想id是主键且唯一所以不能重复。 猜想sql语句应该是:select * from user where useradmin and passamp;amp;quot;123456amp;amp;quot;;只做了简单的用户名及密码的匹配其实这个商城系统后来是拿下了shell权限但是我也没有特地去看他这个功能点的SQL代码所以就是猜想了。IP 限制如果登录系统设置了 IP 地址白名单,我们可以通过下面的几个 http 头字段伪造 IP 地址,用 burp 抓包后将下面的某个 http 头字段加入数据包发送到服务器Client-Ip: 127.0.0.1X-Client-IP: 127.0.0.1X-Real-IP: 127.0.0.1True-Client-IP: 127.0.0.1X-Originating-IP: 127.0.0.1X-Forwarded-For: 127.0.0.1X-Remote-IP: 127.0.0.1X-Remote-Addr: 127.0.0.1X-Forwarded-Host: 127.0.0.1业务漏洞手机号篡改抓包修改手机号码参数为其他号码尝试,例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务.邮箱和用户名更改抓包修改用户或者邮箱参数为其他用户或者邮箱案例https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2014-074441商品编号纂改例如100个积分只能换商品编号为001, 1000个积分只能换商品编号005 在100积分换商品的时候抓包把换商品的编号修改为005 用低积分换取高积分商品。修复金额不在客户端传入防止被篡改如必要则务必检查交易金额与商品价格或对支付金额做签名校验价格篡改漏洞案例:12308订单支付时的总价未验证漏洞(支付逻辑漏洞)UCloud 另一处严重支付逻辑错误 导致可刷余额destoon无限制增加帐号资金大疆某处支付逻辑漏洞可1元买无人机价格篡改漏洞是指攻击者可以在前端页面中篡改商品价格并在提交订单时将修改后的价格发送至后端从而以篡改价格的方式获取商品的更低价格或者执行其他恶意操作。实操案例1.商品加入购物车2.显示防御措施价格校验 在前端页面提交订单前应该对订单中商品的价格进行校验确保订单中的价格与后端数据库中的价格一致。防篡改机制 在前端页面和后端接口中应该加入防篡改机制例如在前端页面对价格进行加密或者签名处理后端在接收到订单后进行价格解密或者验签确保订单中的价格没有被篡改。双重价格校验 在后端接收到订单后应该对订单中的价格进行二次校验确保订单中的价格与商品的实际价格一致避免篡改后的价格被接受。限制价格修改权限 对于敏感操作或者需要修改价格的功能应该限制只有特定的管理员或者权限较高的用户才能执行避免普通用户对价格进行任意修改未授权访问漏洞未授权访问漏洞是指在应用程序中没有对用户的访问权限进行正确验证和控制导致攻击者可以通过越权操作或者遍历用户标识符等手段访问敏感信息或执行未经授权的操作。这个漏洞的存在对系统的安全性构成了潜在威胁案例通过修改ID值访问别人的购物车防御措施权限验证 在访问敏感资源或执行敏感操作之前应该对用户的身份和权限进行严格验证确保用户具有合法的访问权限。最小权限原则 用户的访问权限应该最小化即每个用户只能访问其所需的资源和数据不应该具有无关资源的访问权限。参数验证 对于从客户端接收的参数应该进行严格的验证和过滤防止恶意用户通过篡改参数来进行未授权访问。敏感数据保护 对于敏感数据和资源应该加强访问控制采用加密、身份认证、访问日志等方式加强保护防止未经授权的访问和操作。错误信息处理 在程序中对错误信息进行处理时应该避免将敏感信息返回给客户端防止攻击者利用错误信息获取系统信息和漏洞利用路径。库存量溢出漏洞库存量溢出漏洞是指在系统中对商品库存量进行管理时由于缺乏有效的限制或验证机制导致在购物车或库存管理功能中攻击者可以通过恶意操作向购物车中添加大量商品超过系统预期的处理能力和库存容量从而引发系统性能问题或崩溃。案例通过抓包修改商品的数量但是价格还是不变防御措施为防止库存量溢出漏洞的发生可以采取以下防御措施限制商品数量 在后端接口中对添加商品数量进行合理限制例如设置单次添加商品数量上限或者限制用户添加商品的频率。频率限制 在前端页面或后端接口中设置用户添加商品的频率限制防止用户连续添加大量商品。实时库存更新 确保系统能够实时更新库存信息保持库存量与系统记录的一致性。监控和报警 设置系统监控机制及时发现异常的购物车操作行为进行预警和处理防止异常操作对系统造成影响。本地 js 参数修改部分应用程序通过 Javascript 处理用户提交的请求,通过修改 Javascript 脚本,测试修改后的数据是否影响到用户.案例https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2015-090166密码找回漏洞用户凭证暴力破解像是四位或者六位纯数字的验证码,对验证码进行暴破,未作限制的情况下,很快就会得到结果了https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2012-011833https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2013-046062https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2013-046999有意思的一篇文章邮箱弱token服务器时间 https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2015-090226用户凭证有效性邮箱 tokenhttps://wy.zone.ci/bug_detail.php?wybug_idwooyun-2012-012572身份证推演有点意思重置密码tookiehttp://wy.zone.ci/bug_detail.php?wybug_idwooyun-2014-078208通过抓包重置密码的包把验证的cookie替换成你自己的还有邮箱得到的验证码就可以进行重置密码。这个要有两个账号进行演示注册覆盖注册重复的用户名,重新注册已有的账户名称Session覆盖Session 覆盖聚美优品任意修改用户密码(非爆破):https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2014-085843重新绑定邮箱绑定https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2015-092319验证码漏洞无效验证有验证码模块但验证模块与业务功能没有关联性此为无效验证一般在新上线的系统中比较常见。案例一获取短信验证码后随意输入验证码直接输入两次密码可成功更改用户密码没有对短信验证码进行验证可能导致CSRF等问题。万能验证码渗透测试的过程中,有时候会出现这种情况,系统存在一个万能验证码,如 0000、9999、1234,只要输入万能验证码,就可以无视验证码进行暴力破解.也有可能六位的验证码也可以000000、999999 、123456任意用户注册第一步利用自己的手机号接收验证码进行验证下一步跳转到一个设定密码的页面第二步抓包篡改手机号使用任意手机号进行注册问题剖析业务一致性存在安全隐患身份验证与密码修改过程分开验证无效。案列https://woo.49.gs/static/bugs/wooyun-2016-0189300.html客户端验证绕过客户端验证是不安全的可能导致任意账号注册、登录及重置任意用户密码等一系列问题。案例一直接返回明文验证码点击获取收集验证码监听到两条json数据可以发现验证码就藏在ticket里面输入9360即可登陆成功。案例二返回密文验证码验证加密后返回客户端用户解密即可获取验证码。案例三拦截替换返回包第一步使用正常账号修改密码获取验证码通过时服务器返回数据保存该信息第二步使用fiddler下断之后点击确定服务器会返回验证码错误之类的信息使用{“MessageHeader”:{“MessageID”:“RSP036”,“ErrorCode”:“S000”,“Description”:“成功”}}此信息进行替换后再执行密码修改成功。参考链接吉祥航空可以绕过手机验证码修改任意账号密码https://wy.zone.ci/bug_detail.php?wybug_idwooyun-2015-0104509短信轰炸短信轰炸是手机验证码漏洞中最常见的一种漏洞类型。在测试的过程中对短信验证码接口进行重放导致大量发送恶意短信。案例一无限制任意下发短信验证码爆破短信验证码一般由4位或6位数字组成若服务端未对验证时间、次数进行限制则存在被爆破的可能。这个一般爆破4位数就行了代码层逻辑缺陷验证码爆破绕过短信炸弹的绕过技巧 1–特殊字符通常开发在发送短信验证码的时候没有对特殊字符进行过滤。比如在手机号是 15312341234。我们加上86变成8615312341234这样的话服务器就有可能判定为两个手机号了。在 mobile15312341234 的前面加空格86086008686000/r,/n,?,#,!,,“”…只要想法多就有可能绕过。短信炸弹的绕过技巧 2–添加 XFF在请求包中添加XFF头有的时候服务器是按照IP地址进行判定的。短信炸弹的绕过技巧 3–添加多个值在发送手机短信验证码的时候可以把一个参数赋上多个值。比如 Mobile18312341234,13612341234code1234短信炸弹的绕过技巧 4–添加多个参数比如 Mobile18312341234Mobile13612341234短信炸弹的绕过技巧 5–修改返回包在发送短信验证码的数据包修改返回包的 Flase 为 Success短信炸弹的绕过技巧 6–并发对短信验证码的数据包进行并发有机会绕过限制验证码DDOS点击验证码抓包通过拼接height,width参数验证是否存在并且是否参数可以任意更改数值大小多次尝试发现可以通过height和width来任意更改图形验证码大小通过抓包看返回包的字节大小通过这种方式可以判断服务器返回的流量大小进而让服务器返回过大的响应包形成资源消耗从而造成ddos的目的验证uuid没有进行绑定此漏洞与上述两个均有差异其验证码通过uuid字段进行绑定使用但是在右键新建链接时其实并没有uuid参数我们点击验证码获取uuid抓取登录包更改验证码和uuid为一致即可重放10次验证码复用成功学习资源2026年最新版本全网最全的网安视频教程。耗时半年打造之前都是内部资源专业方面绝对可以秒杀国内99%的机构和个人教学全网独一份你不可能在网上找到这么专业的教程。内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识而且包含了中级的各种渗透技术并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频200多G的资源不用担心学不全。包含攻击与防守、漏洞挖掘、CTF比赛等技术点1、知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。2、 部分核心内容展示独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解3、适合学习的人群‌一、基础适配人群‌‌零基础转型者‌适合计算机零基础但愿意系统学习的人群资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌‌开发/运维人员‌具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能实现职业方向拓展‌或者转行就业‌应届毕业生‌计算机相关专业学生可通过资料构建完整的网络安全知识体系缩短企业用人适应期‌‌二、能力提升适配‌1、‌技术爱好者‌适合对攻防技术有强烈兴趣希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌2、安全从业者‌帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌3、‌合规需求者‌包含等保规范、安全策略制定等内容适合需要应对合规审计的企业人员‌因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传戳下面拿这些东西我都可以免费分享给大家需要的可以点这里自取:网安入门到进阶资源