• web安全学习-绕过客户端限制


    我们在使用web应用程序时,经常会遇到一些在客户端所做的限制,例如,我们在注册用户时要求输入格式正确的邮箱。然而在客户端所做的限制都是不安全的,这次就来说一下如何绕过客户端的限制。

    1. 通过客户端传送数据

    通过客户端向服务器段传送数据主要通过下面的方式实现:

    隐藏表单字段(1.保存HTML页面的源代码,编辑字段的值;2.拦截数据包并修改数据)

    HTTP cookie(拦截数据包并修改)

    URL参数(拦截数据包并修改)

    Referer消息头(拦截数据包修改)

    模糊数据:对客户端传送的数据进行加密或进行某种形式的模糊处理(1.根据模糊字串的明文,破译所使用的模糊算法;2.通过应用程序的其它功能来生成有效负载的模糊值;3.用其他的模糊值重传已达到目的;4.提交畸形字符串如包含超长值,不同字符集等错误的字符段,尝试攻击负责对数据进行解密或去模糊处理的服务器逻辑)

    Asp.net viewState:模糊值为base64编码的值,可以去解码然后编译重新发送(1.确定是否启用了MAC保护)

    2.收集用户的信息:HTML表格

    长度限制:抓包改变数据或者拦截包含数据表单的响应,并删除maxlength属性,可以避开这种限制

    基于脚本的确认:(禁用Javascript,修改数据包)

    禁用元素:(重复提交包含这些元素的数值,看服务器是否有效)

    3.收集用户的信息:浏览器扩展

    常见的浏览器扩展技术:Java applet,Flash和Silverlight,由于这些技术的用途基本相同,他们也提供类似的安全功能:均被编译成中间字节码,他们在提供沙盒执行环境的虚拟机中运行;他们可能会使用远程框架,这类框架采用序列化来传输复杂数据结构或通过HTTP传送对象

    攻击浏览器扩展的方法:1.拦截并修改浏览器扩展组件提出的请求及服务器的响应。2.可以直接对组件实施攻击,并尝试编译它的字节码。

    上面说了几种在客户端上常见的限制和绕过方法,我们知道这种在客户端上所做的都是不安全的,最好就是把这些都放到服务器中,然而又是为了效率,我们不得不在客户端上做这些,可以采取以下的几种方法来保证其安全:

    通过客户端传送数据:进行签名与(或)加密防止用户篡改(最好不要通过客户端传送重要数据)

    确认客户端生成的数据

    日志与警报

  • 相关阅读:
    linux常用命令
    TP5 使用额外查询
    高性能mysql[day 1]
    tp6 使用多模块/应用
    linux进程间通信的方式
    Mac将本地文件上传到Centos7(Linux)服务器上
    响应式Web设计:构建令人赞叹的Web应用程序的秘诀
    单页应用(SPA,Single-page-App)和多页应用(MPA,Multi-page App)的区别
    PWA(Progressive web apps),渐进式 Web 应用
    10年大佬博客
  • 原文地址:https://www.cnblogs.com/yonghegn/p/9392054.html
Copyright © 2020-2023  润新知