黑客攻防技术宝典_Web实战篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web应用程序安全的关键问题因素:
1.不成熟的安全意识
2.独立开发
3.欺骗性的简化
4.迅速发展的威胁形式
5.资源与时间限制
6.技术上强其所难
Web应用程序使用三层相关联的安全机制处理用户访问:
1.身份验证
2.会话管理
3.访问控制
处理用户输入:
1.输入的多样性
2.输入处理方法:
a)拒绝已知的不良输入
b)接受已知的正常输入
c)净化
d)安全数据处理
e)语法检查
3.边界确认步骤:
a)应用程序受到用户的登录信息
b)应用程序执行一个SQL查询检验用户证书
c)如果用户成功登录,应用程序再将用户资料中的某些数据传送给
SOAP服务,经一步获得用户账户的有关信息
d)应用程序在用户的浏览器中显示用户的帐户信息
4.多步确认与规化
处理攻击者:
1.处理错误
2.维护审计日志
3.向管理员发出警报
4.应对攻击
HTTP
1.HTTP请求:每个HTTP请求的第一行都由三个以空格间隔的项目组成
三个项目:
1)一个说明HTTP方法的动词(最常用的是GET)
2)被请求的URL
3)使用的HTTP版本
2.HTTP响应:每个HTTP响应的第一行都由三个以空格间隔的项目组成
三个项目:
1)使用的HTTP版本
2)表示请求结果的数字状态码
3)一段文本形式的“原因短语”,进一步说明响应状态3.HTTP方法:
GET——获取资源
POST——执行操作
HEAD——与GET类似,但服务器不会在其响应中返回消息主体
TRACE——诊断目的
OPTIONS——要求服务器报告对某一特殊资源有效的HTTP方法
PUT——试图使用包含在请求主体中的容
HTTP消息头
1.常用消息头:
Connection——用户告诉通信的另一端,在完成HTTP传输后是否关闭TCP/IP连接Content-Encoding——压缩响应以加快传输速度
Content-Length——规定消息主体的字节长度
Content-Type——规定消息主体的容类型
Transfer-Encoding——为方便通过HTTP传输而对消息主体使用的任何编码
2.请求消息头:Accept——告诉服务器客户愿意接受哪些容
Accept-Encoding——告诉服务器客户愿意接受哪些容编码
Authorization——用于为一种置HTTP身份验证向服务器提交证书
Cookie——用于向服务器提交它以前发布的cookie
Host——用于指定出现在被请求的完整URL中的主机名称
If-Modified-Since——用于说明浏览器最后一次收到被请求的资源的时间
If-None-Match——用于指定一个实体标记
Referer——用于指示提出当前请求的原始URL
User-Agent——提供与浏览器或发生请求的其他客户端软件有关的信息
3.响应消息头:Catch-Control——用于向浏览器传送缓存指令
ETag——用于指定一个实体标签
Expires——用户向浏览器说明消息主题容的有效时间
Location——用户在重定向响应中说明重定向目标
Pragma——用户向浏览器传送缓存指令
Server——提供所使用的Web服务器软件的相关信息
Set-Cookie——用户向浏览器发布cookie,浏览器又在随后的请求中将其返回服务器WWW-Authenticate——提供与服务器所支持的身份验证类型相关的信息
状态码:
1xx——提供信息
2xx——请求被成功提交
3xx——客户被重定向到其它资源
4xx——请求包含错误
5xx——服务器执行请求时遇到错误
服务器端功能:
1.脚本语言(PHP、VBScript、Perl)
2.Web应用程序平台(、JAVA)
3.Web服务器(Apache、IIS、Netscape Enterprise)
4.数据库(SQL、ORACLE、MySQL)
客户端功能:
HTML、超、表单、JavaScript、厚客户组件
编码方案:
URL编码、Unicode编码、HTML编码、Base64编码、十六进制编码解析应用程序:枚举容和功能:
1.Web抓取
2.用户指定的抓取
3.发现隐藏的容
4.应用程序页面与功能路径
5.发现隐藏的参数
分析应用程序:
1.确定用户输入进入点
2.确定服务器端技术:
a)提取版本信息
b)HTTP指纹识别
c)文件扩展名
d)目录名称
e)会话令牌
f)第三方代码组件
3.确定服务器端功能:
a)仔细分析请求
b)推测应用程序的行为
4.解析受攻击面
通过客户端传送数据:
1.隐藏表单字段
2.HTTP Cookie
3.URL参数
4.Referer消息头
5.模糊数据
ViewState
收集用户数据:HTML表单:
1.长度限制
2.基于脚本的确认
3.禁用的元素
收集用户数据:厚客户端组件
1.Java applet(反编译Java字节码、字节码模糊处理)
2.ActiveX控件(逆向工程、利用输出函数、修改由控件处理的输入、托管代码反编译)
3.Shockwave Flash对象
安全处理客户端数据:
1.通过客户传送数据
2.确认客户生成的数据
3.日志与警报