第三章、Web应用程序技术(web功能)
这一章按照上回
末尾所说学习web功能,除了核心通信机制使用的核心技术之外,web应用程序还使用独有技术实现特有功能。所以渗透前要摸头web的功能。
Web功能分为:
- 服务器功能
- 客户端功能
- 会话与状态
服务器功能
早期,web站点由HTML文档与图片等静态资源组成,用户请求==静态资源==,web站点返回。
现在web依然有很多静态资源,但是更多的是用户==动态请求==,web应用程序根据用户的请求参数来返回动态的响应内容。动态内容通常是由在服务器上执行的脚本生成。(脚本可以看做一个程序,有输入、输出、执行)
HTTP请求提交参数的方式有:
- 通过URL使用请求字符串
- 通过HTTP Cookie
- 请求主体中使用POST方法
除此以外,服务器可以使用HTTP请求中任何部分作为输入。
web应用程序在服务器端使用大量技术实现其功能:
- 脚本语言(PHP,Vbscript,Perl)
- web应用程序平台(ASP.NET、Java)
- web服务器(Apache、IIS、Netscape Enterprise)
- 数据库(MS-SQL、Oracle、Mysql)
- 其他后端组件(文件系统、基于SOAP的目录服务)
web应用程序平台及语言:
-
Java平台:
java平台企业版是大型企业的标准应用程序,由Sun公司开发,应用多层,负载均衡,适用于模块化开发与代码重复利用。同时还有许多高质量的开发工具,服务器,框架。
几个专用术语:
- Enterprise java bean(EJB):是用于构建高度可扩展性和强大的企业级应用程序被部署在J2EE应用服务器如JBoss的开发架构,Web逻辑等。
- 简单传统java对象:普通java对象,表示用户定义的轻量级框架中的对象。
- Java Sverlet:应用程序服务器的一个对象,接收HTTP请求并返回响应。提供web应用程序开发接口。
- JavaWeb容器:基于java的web应用程序运行的平台或环境。例如:Apache、Tomcat。
如果渗透前找到应用程序的开源软件包,那么就可以进行代码审查,寻找漏洞
-
ASP.NET
微软开发的应用程序框架。使用.NET Framework,提供一个虚拟机(CLR,通用语言运行时)与一组强大的API。 可以用Visual Studio开发。 -
PHP
·功能强大、应用丰富。经常与其他技术整合使用,例如(LNMP:Linux,Nginx,Mysql,PHP)。
因为免费而且简单易用,所以应用广泛。但是PHP框架设计与默认配置导致代码中有很多漏洞。后续会详细讲解。
最后来个web应用程序整和: