一、HTTP
略
二、Web功能
服务器端功能:
1.JAVA平台:
EJB:(Enterprise Java Bean),相对重量级的软件组件,它将一个特殊业务功能的逻辑组合到应用程序中。
POJO:(Plain Old Java Object),简单传统JAVA对象,常用于表示那些用户定义的、比EJB更加简单且更加轻量级的对象以及用在其他框架中的对象。
Java Servlet:是应用程序服务器中的一个对象,它接收客户端的HTTP请求并返回HTTP响应。Servlet可使用大量接口来促进应用程序开发。
Java Web容器:基于Java或WEB应用程序提供运行时环境的平台或引擎,如Apache Tomcat、BEA WebLogic和JBOSS
关键应用程序功能常用的组件包括:
身份验证——JAAS、ACEGI
表示层——SiteMesh、Tapestry
数据库对象关系映射——Hibernate
日志——Log4J
如果能确定应用程序使用的开源软件包,就可以下载进行代码审查,组件中的任何一个漏洞都可以被利用。
2、ASP.NET
使用.NET Framework,提供一个虚拟机(CLR,Common Language Runtime)与一组强大的API,可以使用任何.NET语言如C#或VB.NET来编写
框架本身就能防御一些常见的如XSS的漏洞。
3、PHP
公告牌——PHPBB、PHP-Nuke
管理前端——PHPMyAdmin
Web邮件——SquirrelMail、IlohaMail;
相册——Gallery
购物车——osCommerce、ECW-Shop
维客——MediaWiki、WakkaWikki
4、Ruby on Rails
漏洞信息参考:http://www.ruby-lang.org/zh_cn/security/
5、SQL
6、XML
7、WEB服务
WEB服务使用简单对象访问协议(SOAP)来交换数据,通常,SOAP使用HTTP协议来传送消息,并使用XML格式表示数据。
客户端功能:
1、HTML
2、超链接
3、表单
4、CSS
5、JavaScript
6、VBScript
7、DOM
8、Ajax:异步JavaScript和XML,但现在的Ajax请求既不需要是异步请求,也不使用XML
9、JSON
10、同源策略
11、HTML5
它引入了各种可用于传送跨站点脚本及实施其他攻击的新标签、属性和API
它对XMLHttpRequest这一核心Ajax技术进行了修改,在某些情况下可以实现双向跨域交互。这可能导致新的跨域攻击
它引入了新的客户端数据存储机制,这可能导致用户隐私问题以及新型攻击,如SQL注入
12、WEB 2.0
大量使用Ajax执行各种异步后台请求;
使用各种技术提高跨域集成;
在客户端使用各种新技术,包括XML,JSON和Flex;
采用更先进的技术来支持用户生成的内容、信息共享和交互。
13、浏览器扩展技术(厚客户端技术)
Java applet
ActiveX控件
Flash对象
Silverlight对象
三、编码方案:
1、URL编码
常见编码 :
%3d 代表=
%25 代表%
%20 代表空格
%0a 代表新行
%00 代表空字节
+ 也表示空格
2、Unicode编码
16位Unicode,以%u为前缀,其后是这个字符的十六进制Unicode码点,如%u2215代表/
UTF-8编码,以%为前缀,用十六进制表示每个字节
常见编码 :
%u2215代表/
3、HTML编码
常见编码 :
"e; 代表"
' 代表'
& 代表&
< 代表<
> 代表>
也可以用其十进制和十六进制的ASCII码表示:
" 和 " 均代表"
' 和 ' 均代表'
4、Base64编码
A-Z a-z 0-9 + / 这几种组成
5、十六进制编码
6、序列化框架
Flex和AMF
Silverlight和WCF
Java序列化对象