Web应用体系结构
- 浏览器:如IE、Firefox、Chrome等作为标准的Web客户端。使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互
- Web服务器:Web服务器软件通常被简单的描述为HTTP守护程序,接受Web客户端对资源的请求,在这些请求上执行一些基本的解析处理以确定资源的存在,然后将它传送给web应用程序来执行,待web应用程序执行完逻辑并返回响应时,web服务器再将这个响应返回给web客户端,在浏览器上进行本地执行、渲染和显示。
- Web应用程序:虽然有很多种不同的web应用程序多层结构,最普遍应用的是三层体系结构,表示层、业务逻辑层、数据层。
- 数据库:Web应用存储数据的地方。
- 传输协议HTTP/HTTPS:HTTP是一种无状态的超文本传输协议,默认使用TCP80端口。但是HTTP协议不安全,为了提升HTTP的安全,可以使用SSL/TLS隧道技术来实现加密传输的HTTPS协议;采用cookie机制进行会话状态管理 ;嵌入基础的认证、摘要认证、基于表单的认证、NTLM认证、协商认证等多种认证协议,实现HTTP对用户身份的认证与控制。
Web应用安全威胁
在web整个体系结构的每个组件中都存在着安全弱点,容易遭受各种攻击。
- 针对浏览器和终端用户的Web浏览安全威胁:具体包括以浏览器渗透攻击为核心的网页木马,网站钓鱼等。
- 针对传输网络的网络协议安全威胁:如针对HTTP明文传输协议的敏感信息监听。在网络层、传输层和应用层都存在的假冒身份攻击。
- 系统层安全威胁:web站点的宿主操作系统如Windows、Linux等,存在远程渗透攻击和本地渗透攻击威胁。
- Web服务器软件安全威胁:web服务器软件如IIS、apache作为一种典型的网络服务,也存在安全漏洞与弱点。
- Web应用程序安全威胁:常见的有SQL注入攻击、xss跨站脚本攻击等。
- Web数据安全威胁:在web应用程序的后台存储着关键数据,以及客户端输入的数据内容,也存在被窃取篡改等威胁。
Web应用安全攻防技术之web应用信息收集
- 手工审查Web应用程序结构与源代码:静态与动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串。
- 自动下载与镜像Web站点页面:采用现成的工具高效地完成之前的信息收集。
- 使用Google Hacking技术审查与探测Web应用程序
- Web应用程序安全评估与漏洞探测:常常需要一些Web应用程序分析、安全评估和漏洞探测工具来提供辅助。辅助分析工具主要有:浏览器插件、免费工具集和商业Web应用安全评估系统和漏洞扫描器。
Web应用安全攻防技术之攻击Web服务器软件
早期的web攻击技术利用web服务器软件包中的安全漏洞与不安全配置,而不是利用web应用程序逻辑本身。然而时至今日,针对web服务器软件的攻击已经少了很多,主要原因是软件供应商和开源团体提升了发布的软件的安全性,并提升了补丁发布的更新速度与效率。web管理员也会更安全的配置web服务器。
目前web服务平台中的安全漏洞主要分为如下几大类:
- 数据驱动的远程代码执行安全漏洞
- 服务器功能扩展功能模块漏洞
- 样本文件安全漏洞
- 源代码泄露
- 资源解析攻击
Web应用安全攻防技术之攻击Web应用程序
WASC将web应用程序中存在的安全威胁从攻击技术角度分为如下几大类:
- 针对认证机制的攻击
- 授权机制的攻击
- 客户端攻击
- 命令执行攻击
- 信息暴露
- 逻辑攻击
攻击Web数据内容
web站点除了通过对服务器软件和应用程序中存在安全漏洞遭受攻击之外,还面临对敏感数据内容的威胁攻击,包括:
- 安全敏感数据泄露
- 网站篡改:网站篡改在中国又被称为“黑站”
- 不良信息内容上传
Web应用安全防范措施
- Web站点网络传输安全:尽量使用HTTPS保证数据传输的安全性和保密性等;通过加密的通道管理web站点,避免使用未经加密的telnet等管理web后台。
- Web站点操作系统及服务安全:对web站点的操作系统和服务器软件及时补丁更新;对web站点的操作系统和各种开放服务进行远程安全漏洞扫描,在攻击者实施安全漏洞攻击之前发现并修补这些漏洞;采用提升系统与服务。安全性的一般设防措施,包括关闭所有不使用的服务,避免使用明文传输的网络服务等等。
- Web应用程序安全
- Web站点数据安全设防:提高网站内容维护人员的数据安全意识;对维护的网站数据实施日常检测和防护。
SQL注入
1、定义
2、原理
3、攻击步骤:
4、攻击工具
5、防范措施
XSS跨站脚本攻击
1、定义
2、分类
3、防范措施
web浏览器是目前互联网时代最重要的软件产品,软件安全困境三要素:复杂性、可扩展性和联通性。
网页木马
1、特点
2、网页挂马机制
3、检测与分析网页木马技术
网络钓鱼
1、定义
2、原理
3、普遍技术流程
-
它有一个基于插件的架构,并附带了几个的插件:
- Sid枚举
- 密码测试(常见&字典)
- 枚举Oracle版本
- 枚举账号权限
- 枚举账号哈希
- 枚举审计信息
- 枚举密码策略
- 枚举数据库链接
SQLdict,是一个Windows程序,是一款用户名密码枚举工具,运行时会自动调用Kali Linux内置的Wine组件。渗透测试人员只要指定目标IP地址、账户名和密码字典,就可以实施密码爆破。
一款perl编写的,侧重于获得一个shell。Sqlninja是专门针对SQLServer的sql注入工具。可找到远程SQL服务器的版本和特征;对管理员口令“sa”进行强力攻击;一旦找到口令就将特权提升到“sa”权限;如果原始的xp_cmdshell被禁用后,就创建一个定制的xp_cmdshell;不需要FTP连接;为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描;逃避技术,使注入代码“模糊”不清,并且混淆/绕过基于强命的IPS和应用层防火墙;采用“盲目执行”攻击模式,可以用于发布命令并执行诊断;如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。
是一个开放源代码的web应用程序安全测试平台,Vega能够帮助你验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其它一些安全漏洞。 Vega使用Java编写,有GUI,可以在Linux、OS X和windows下运行。Vega类似于 Paros Proxy, Fiddler, Skipfish and ZAproxy。
Firefox内置了许多用于处理代理的选项。 对于实验,请选择“手动代理配置:”单选按钮。 这将打开一系列选项,允许您为多个协议中的每个协议手动输入代理的IP地址和端口号。 默认情况下,Burp Suite在端口8080上运行,并且由于您在自己的计算机上运行它,因此请输入127.0.0.1作为IP。 您主要担心的是HTTP,为了简便,可以选中标记为“将此代理服务器用于所有协议”的复选框。
在其他手动配置选项下面是一个允许您为代理写入免除项的框。 Firefox将名称localhost以及IP 127.0.0.1添加到此字段。 删除或修改它们,因为您将监视浏览器和本地托管的WordPress安装之间的流量,我在实际操作中选择了外网的网站,因此这个就可以不改。
此时您已经将Burp套件作为Firefox的代理运行,并且您已准备好开始使用它来捕获从Firefox到本地托管的WordPress安装的信息。
Burp Suite可以收集的信息量非常惊人,它为测试Web应用程序开辟了新的可能性。
模糊测试是一种自动化软件测试技术,涉及提供无效,意外或随机数据作为计算机程序的输入。 然后监视程序是否存在异常,例如崩溃,内置代码断言失败或潜在的内存泄漏。 通常,模糊器用于测试采用结构化输入的程序。 例如,以文件格式或协议指定该结构,并将有效与无效输入区分开。 有效的模糊器生成“有效”的半有效输入,因为它们不会被解析器直接拒绝,但会在程序中更深层次地创建意外行为,并且“足够无效”以暴露尚未正确处理的极端情况。