Web安全原理及实践(基础部分)

Web安全基础

Web安全概述

前提: 攻击者要想先攻击服务器之前,必须保证两者之间能进行正常的通信。

服务器上的各种服务都是依托于端口来实现对外提供服务,通过访问服务器对外开放的服务来攻击服务器。

匿名账号登录、口令爆破、Web漏洞利用、缓冲区溢出攻击…来入侵端口

搜索引擎的搜索技巧:
intitle:返回网页标题中包含关键词的网页
intext:返回网页正文部分包含关键词的网页

Web安全基础

访问静态网页流程:

浏览器发送HTTP请求报文–>判断请求的文件扩展名–>在网站根目录下找到对应文件–>构建HTTP响应报文将文件源代码返回给浏览器–>服务端发送HTTP响应报文–>浏览器渲染解析,呈现画面

HTTP请求报文: 浏览器会发送请求给服务端

HTTP响应报文: 服务端会处理请求,将结果返回给客户端

服务端中真正接收处理报文的是Web应用服务器(Web容器、中间件),Web应用服务器是专门用于提供HTTP服务,会处理接收到的HTTP请求,最后构建HTTP报文进行响应。

常见的Web应用服务器有Apache、IIS、Tomcat、Nginx等。

静态网页是以.htm、.html为后缀的文件。这些文件的内容一般是由HTML+CSS+JavaScript构成(前端语言)

HTML定义了网页的内容;CSS描述了网页的布局;JavaScript网页的行为

动态网页一般是以.php、.jsp、.asp、.aspx为后缀的文件。文件的内容一般是由HTML+CSS+JavaScript+后端语言代码构成

常用的后端开发语言有PHP、Java、ASP、ASP.NET、Ruby、Python、Perl等

访问静态网页流程:

浏览器发送HTTP请求报文–>判断请求的文件扩展名–>交给PHP脚本引擎处理PHP脚本引擎–>解析文件中的PHP代码–>将结果交给Apache–>构建HTTP响应报文–>服务端发送HTTP响应报文–>浏览器渲染解析,呈现画面

PHP代码只是业务逻辑上的处理,数据最终都被存储在数据库中

Web应用程序的设计者、Web应用服务器、动态脚本引擎(服务端程序语言)、数据库是构成Web应用的要素

常见的Web服务端架构:

LAMP和WAMP:Windows/Linux+Apache+PHP+MySQL

HTTP(HyperTextTransfer Protocol)超文本传输协议: 详细规定了浏览器和万维网服务器之间互相通信的规则

遵循请求(Request)/应答(Response)模型,浏览器向服务器发送请求时,Web服务器处理请求并返回适当的应答。在发送一次HTTP请求会产生两类报文,分别是请求报文与响应报文,是一种无状态的协议。

HTTP/1.1协议中共定义了8种HTTP请求方法,HTTP请求方法也被叫做“请求动作”,不同的方法规定了不同的操作指定的资源方式,服务端也会根据不同的请求方法做不同的响应。

HTTP协议的请求方法有: GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT

常见渗透测试工具

Nmap

Nmap的英文全称是“Network Mapper”,中文为“网络映射器”。可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息,用以评估网络系统安全。

Zenmap是Nmap的一个官方的图形界面版本

BurpSuite

Burp Suite是一个集成化的渗透测试工具,集合了多种渗透测试组件,使自动化或手工能更好的完成对web应用的渗透测试和攻击

Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端和服务端之间传输的数据

Proxy 默认监听端口是8080,端口可以变更为其他可用端口。使用过程中需要确认Running状态是否为启用

Burp Suite 会在本地开启监听端口,将发往监听端口的数据都进行代理转发。所以我们要保证以下配置:Burp Suite 代理正常运行浏览器配置将请求发往Burp Suite

浏览器插件: hackbar是一款Firefox浏览器下的黑客插件

安全人员可以十分方便的用来进行sql注入以及xss测试或进行各种编码功能等

Sqlmap

sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限

功能强大的检测引擎针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令

关于sqlmap的详细介绍将在后续文章中讲到。

Sublime

Sublime Text是一套跨平台的文本编辑器,支持基于Python的插件

Sublime Text是专有软件,可透过包(Package)扩展。大多数的包使用自由软件授权发布,并由社群建置维护

常见的漏洞扫描工具

BurpsuiteScanner模块

Scanner 漏扫功能,扫描模块用于自动化检测漏洞,分为被动和主动扫描

Burp Sutie提供三种漏洞扫描方式:默认被动扫描,被动扫描(Live Passive Scanning),主动扫描(Live Active Scanning)

AWVS

Acunetix Web Vulnerability Scanner(AWVS) 是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试网站安全,检测流行安全漏洞。

  • 自动的客户端脚本分析器,允许对 Ajax 和 Web 2.0 应用程序进行安全性测试。
  • 业内最先进且深入的 SQL 注入和跨站脚本测试
  • 高级渗透测试工具,例如 HTTP Editor 和 HTTP Fuzzer
  • 可视化宏记录器帮助您轻松测试 web 表格和受密码保护的区域
  • 支持含有 CAPTHCA 的页面,单个开始指令和 Two Factor(双因素)验证机制
  • 丰富的报告功能,包括 VISA PCI 依从性报告
  • 高速的多线程扫描器轻松检索成千上万个页面
  • 智能爬行程序检测 web 服务器类型和应用程序语言
  • Acunetix 检索并分析网站,包括 flash 内容、SOAP 和 AJAX
  • 端口扫描 web 服务器并对在服务器上运行的网络服务执行安全检查
  • 可导出网站漏洞文件

APPscan

IBM AppScan是一款功能强大的Web 应用安全测试工具,

AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出(buffer overflow)及最新的 Flash/Flex 应用及 Web 2.0 应用曝露等方面安全漏洞的扫描。

AppScan全面扫描包含两个阶段:探索和测试

探索阶段: 在第一个阶段中,AppScan 通过模拟 Web 用户单击链接和填写表单字段来探索站点(Web 应用程序或 Web 服务)。这就是“探索”阶段。

测试阶段: 在第二个阶段,AppScan 将发送它在探索阶段创建的数千个定制测试请求。 它使用定制验证规则记录和分析应用程序对每个测试的响应。 这些规则既可识别应用程序内的安全问题,又可排列其安全风险级别。

Nessus

Nessus是渗透测试重要工具之一,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。

Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。


版权声明:本文为qq_45902224原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>