工具 拦截代理服务器
Burp Proxy WebScarab Paros
COMRaider 显示一个控件的所有方法及其签名
隐藏表单字段 type=hidden 来保存信息
隐藏表单字段可以被编辑
方法1:
保存HTML页面源代码,编辑隐藏表单字段,然后源代码重新载入浏览器
方法2:
使用拦截代理服务器,来修改
使用拦截代理服务器 修改cookie
Reffer消息头 说明当前提出请求的页面URL
使用reffer来控制页面逻辑
如一个帮助忘记密码的用户重设密码
POST RestForgotPasswd.asp
Refer http //localhost/Forgot.asp
应用程序通过验证Refer头来判断请求是否在正确的阶段会造成漏洞,因为用户可以通过拦截代理服务器修改refer头
ASP.NET View State
EnableViewStateMac 加入密钥散列
在HTML表单中使用maxlength设置长度大小而服务器端没有验证的时候,可以拦截提交的表单输入任何长度字符解除这种限制
试图修改 产生304 Not Modified Etag。。。的响应 原因是浏览器已经在缓存中保存有它请求资源的副本,但浏览器请求一个已存入缓存的资源,它通常会在请求中添加另外两个消息头,If –modified-Since和If-None-Match。这些消息头告诉服务器,浏览器上次更新缓存副本和Etag的时间。Etag是一个序列号,服务器为每个可缓存的资源分配一个Etag,如果资源被修改,它也会被更新。如果服务器拥有比If –modified-Sinc消息头中指定日期更新的资源,或者当前Etag与If-None-Match不匹配,那么服务器就会在响应中提供最新的资源。否则返回304相应,告知浏览器资源没有修改,浏览器使用缓存中的副本。
如果这种情况并且需要拦截并修改浏览器保存在缓存中的资源,那么可以拦截相关请求并且删除If –modified-Since和If-None-Match消息头
使用JavaScript 验证的表单
方法1 禁用JavaScript 即可
方法2 在浏览器的输入字段输入一个良性值,然后用代理服务器拦截确认后的提交表单,然后将数据改为想要的值。
因此,在服务端也需要对数据进行一次验证。
客户端进行javascript验证的作用是改善用户体验,如果不采用客户端确认机制,更正某些格式错误需要多次提交注册页面。
表单中禁用的元素 也可以被攻击 如果应用程序处理这个参数
Applet的攻击 反编译字节码
反攻击方法 字节码模糊处理
ActiveX控件 使用逆向工程
Flasm swf反编译成字节码
Flare 反编译成ActionScript源代码
ActionScript Obfuscator Viewer Screwer 模糊化
签名和加密数据 易于受到重传攻击 为防止这种攻击,所以应用程序要加入足够的上下文
Burp Intruder 进行密码暴力破解
一些应用程序使用设置cookie failedlogin=1 并登陆失败后递增这个值
利用不存在的用户名和用户名存在但密码错误的服务器响应时间来判断是否是一个有效的用户名
使用cookie 保存登陆证书的漏洞
登陆页面采用http 而验证后的页面采用https 也会导致漏洞
应该在加载登陆页面时候就采用https(使用https加载登陆表单),使得用户在输入证书前验证页面是否真实可信,
因为登陆页面有可能被攻击者拦截并且更改,可能用户输入的证书会被攻击者获得 (中间人攻击)
用户伪装 后门密码
通过大量注册用户名 从而确认遭到拒绝的现有用户名
故障开放逻辑漏洞
Try{
String usrname=session.getname
String passwd=session.getpasswd
User user=db.getUser(username,passwd)
If(user==null)
{
Session.setMessage(“login failed”)
Return doLogin(session);
}
}
catch(Excepton e) {
}
Session.setMessage(“login in sussess”) /
Return doMainMenu(session);
如果在db.getUser函数调用中出现了异常,那么就会跳转到catch块,而跳过if(user==null)的判断,照样会正常登陆,Session.setMessage(“login in sussess”),出现漏洞
多阶段登陆漏洞
1应用程序总是认为可以访问第三阶段的用户已经完成了第一第二阶段的验证,因此它可能让直接由第一阶段进入第三阶段并提供正确证书的攻击者通过验证
2应用程序可能信任由第二阶段处理的一些数据,因为这些数据已经在第一阶段得到确认,但是攻击者可以在第二阶段操控这些数据,提供不同于第一阶段的值而更改应用程序的行为。
3 应用程序可能认为每个阶段的用户身份不发生变化。因此它不在每个阶段确认用户身份。
如果第一阶段和第二阶段的用户是不同的,但是每个阶段提交的是有效的数据对(用户名密码、用户名物理令牌),那么有可能会通过验证。
CAPTCHA 全自动区分人类和计算机的图灵测试
分享到:
相关推荐
### 白帽子讲Web安全读书笔记一:关键知识点解析 #### 第零篇 总览 - **客户端脚本安全**:这部分主要关注浏览器环境下的安全问题,包括浏览器自身的安全机制以及用户与网页交互过程中可能遇到的安全风险。 - **...
在“web读书笔记”这个压缩包中,我们可以推测它包含了关于Web开发的个人学习记录和项目代码。"自己项目代码"这一标签暗示了这些文件可能是作者在实践Web开发过程中积累的经验和成果,尤其是以“二哥java”为名的子...
读书笔记:白帽子讲Web安全
读《白帽子讲Web安全》后整理的笔记,mmap文件格式,推荐用mind manager打开
读书笔记:Web安全攻防渗透测试实战指南
读书笔记:白帽子讲web安全思维导图
读书笔记之Web安全攻防从入门到精通-信息收集.docx
本读书笔记主要聚焦于如何利用Flask框架进行Web应用开发,特别是针对读书笔记管理的应用。Flask提供了一个强大的基础,允许开发者快速构建功能丰富的Web服务,而无需过于复杂的配置和代码。 【描述】基于FLASK开发...
读书笔记:阅读《白帽子讲Web安全》+《Web前端黑客技术揭秘》动手demo
读书笔记:Learning from the book named 《白帽子讲Web安全》
读书笔记:《Web安全攻防渗透测试实战指南》XSS测试平台源码
### Java编程思想读书笔记 #### 一、Java与C++的区别及内存管理 在学习Java的过程中,我们常常会拿它与C++进行比较。这两门语言虽然有着相似之处,但也有许多不同点。 1. **内存管理:** - C++提供了更为底层的...
读书笔记:这一切的开始都要从我爷爷在悬崖下捡到一本白帽子讲web安全说起
通过这些功能,基于Web的学生读书笔记共享系统为各类型读者提供了一个集中化、便捷性和安全性兼备的笔记管理和共享环境。系统的架构设计注重性能、可用性和可维护性,以支持高并发的用户访问和动态的数据更新。其...
MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web应用程序中广泛应用。它的InnoDB存储引擎提供了事务处理、行级锁定以及外键支持等功能,确保了数据的可靠性和并发性。以下是对MySQL,尤其是...
2. **Web 2.0**:引入了Ajax技术,使得页面能够进行局部更新,提高了用户体验。用户可以在不刷新整个页面的情况下,通过Ajax进行数据的异步加载和页面元素的更新。 3. **Web 3.0**:虽然Ajax不是Web 3.0的核心组成...
《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统下Shell编程的经典书籍,通过对这本书的读书笔记分析,我们可以提炼出一系列关键的知识点,涵盖了系统管理、服务配置、软件更新以及网络服务配置等方面...
这是一个基于SpringBoot后端框架和Vue前端框架构建的读书笔记功能管理系统。...如果你想要学习如何使用这两个框架来开发Web应用,或者需要一个实际的读书笔记系统,这个项目将是一个很好的实践案例。
2. 安全模型:Java的安全模型基于类的访问控制、方法的权限检查以及代码签名等机制。它确保了只有被授权的代码才能执行特定的操作,如访问系统资源、网络通信等。安全模型通过权限类(Permission)来定义和管理代码...