Web安全复习资料

一. Web安全简介

1.1 黑客、白客、灰客

黑客: 源自英文hacker,曾指热心于计算机技术、水平高超的计算机专家,尤其是程序设计人员.现在逐渐区分为白帽子、灰帽子、黑帽子等。

白客(白帽子)是正面的黑客。白客检测到系统漏洞后,不会恶意利用漏洞、窃取系统数据,而是公布漏洞,提醒网站管理员及时修复,防止网站系统被其他人(如黑帽子)攻击。
灰客(灰帽子)与白帽子相似。灰客擅长攻击技术,精通攻击与防御,但不轻易造成破坏。通常灰客将黑客行为作为一种业余爱好来做,希望通过黑客行为来警告系统管理员网络或系统存在漏洞,以达到警示别人的目的。
与白帽子相对的就是黑帽子,即传统意义的黑客。在发现系统漏洞后,会利用攻击技术窃取网站信息,滥用资源,恶意攻击,蓄意破坏。黑帽子的主要目的是要入侵系统,找到有价值的数据,通常有黑色产业链,以此非法获取利益。

1.2 网站入侵的途径

在这里插入图片描述

1.3 Web安全三要素

分别是机密性、完整性、可用性

(1)机密性
要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。

(2)完整性
要求保护数据内容是完整、没有被篡改的,常见的保证完整性的技术手段是数字签名。

(3)可用性
可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。要求保护资源是“随需而得”。

二. Web安全基础知识

2.1 HTTP协议

HTTP协议的主要特点如下:

(1)支持客户/服务器模式。

(2)简单快速,客户向服务器请求服务时,只需传送请求方法和路径。常用的请求方法有GET、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

(3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

(4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

(5)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着若后续处理需要前面的信息,则必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时,应答就较快。

下面将对常用GET、POST及其他请求方法进行详细介绍。

三. 信息探测

3.1 Nmap Scanning

Nmap (Network Mapper)是Linux下的网络扫描和嗅探工具包,用于扫描网上计算机开放的网络连接端,确定服务运行的连接端,并可推断计算机上运行的操作系统(亦称fingerprinting 指纹识别)。Nmap是网络管理员必用的软件之一,用以评估网络系统安全。

Nmap有三个基本功能:

  • 探测主机是否在线;扫描主机端口,
  • 嗅探所提供的网络服务;
  • 推断主机所用的操作系统。

Nmap 常用的扫描参数如下:

-sT参数是TCP connect扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。

-sP参数是Ping 扫描,Nmap在扫描端口时默认使用Ping 扫描,只有主机存活,Nmap才会继续扫描。

-sS参数是半开扫描,使用时需要root权限,很少有系统将其记入系统日志。

-sU参数是UDP扫描,此扫描不可靠。

-sA参数是用来穿过防火墙的规则集。

-sV参数是探测端口服务版本。

-PO参数是指扫描之前不需要 Ping 命令,有些防火墙禁止用Ping命令。可以使用此参数进行扫描。

-v参数是指显示扫描过程。

-h参数是指帮助选项。

-p参数是指定端口,如1-65536、1433、135、80等。

-o参数是启用远程操作系统检测,存在误报的情况。

-A参数是指全面系统检测、启用脚本检测、扫描等。

-oN/-oX/-oG参数是指将报告写入文件,分别是正常、XML、grepable三种格式。

-T4参数是指针对TCP端口禁止动态扫描延迟超过10ms.

-iL参数是读取主机列表,例如,-iL c:\ip.txt。

四. Web漏洞检测工具

4.1 AWVS

wvs ( Web Vulnerability Scanner)是一个自动化的Web应用程序安全测试工具,可用于扫描任何通过Web浏览器访问和遵循HTTP/HTTPS规则的Web站点和Web应用程序。
WVS的主要特点:

  • 自动的客户端脚本分析器,允许对Ajax和 Web 2.0应用程序进行安全性测试。

  • 高级渗透测试工具,例如HTTP Editor和 HTTP Fuzzer。

  • 可视化宏记录器帮助用户轻松测试Web表格和受密码保护的区域。

  • 支持含有CAPTHCA的页面,单个开始指令和 Two Factor(双因素)验证机制。

  • 丰富的报告功能,包括 VISA PCI 依从性报告。

  • 高速的多线程扫描器轻松检索成千上万个页面。

  • 智能爬行程序检测Web服务器类型和应用程序语言。

  • Acunetix检索并分析网站,包括flash内容、SOAP和 Ajax。

  • 端口扫描Web 服务器并对在服务器上运行的网络服务执行安全检查。

  • 可导出网站漏洞文件。

WVS向导扫描

WVS 的界面非常直观,在Tools模块提供各种实用工具,包括蜘蛛爬行、端口扫描、盲注测试、子域名查找、HTTP编辑器等。

4.2 AppScan

AppScan是一款Web应用安全测试工具,IBM Security AppScan可自动化进行Web应用的安全漏洞评估工作,能扫描和检测常见的 Web应用安全漏洞,例如,SQL注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出 (buffer overflow)等漏洞。

五. SQL注入漏洞

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入后台数据库引擎执行的能力,可以通过在Web表单中输入(恶意)SQL语句获取一个存在安全漏洞的网站上的数据库权限,而不是按照设计者意图去执行SQL语句。

5.1 注入漏洞分类

数字型注入

输入的参数为整数时,即为数字型注入,如 ID、年龄等。数字型注入是最简单的一种注入方式。

字符型注入

输入的参数为字符串时,即为字符型注入,如姓名、密码等。字符型注入与数字型注入的区别在于:字符型注入需要闭合单引号,而数字型注入则不需要闭合单引号。

5.2 注入工具

Sqlmap常用参数

–current-user:检索数据库管理系统当前用户。
–current-db:检索数据库管理系统当前数据库。
–columns:枚举DBMS 数据库表列。
–dump:转储数据库管理系统的数据库中的表项。
–dbms=DBMS:强制后端的DBMS为此值。
–tables:枚举的DBMS数据库中的表。
-D DB:要进行枚举的数据库名。
-T TBL:要进行枚举的数据库表。
-C COL:要进行枚举的数据库列。
-p TESTPARAMETER:可测试的参数。
–level-LEVEL:执行测试的等级(1~5,默认为1)。
–version:显示程序的版本号并退出。

Pangolin工具

六. 上传漏洞

6.1 中间件解析漏洞

IIS解析漏洞、Apache解析漏洞、Nginx解析漏洞

七. XSS跨站脚本漏洞

7.1 xss原理

XSS跨站脚本攻击是客户端Web安全中最主流的攻击方式。Web环境的复杂性及XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决。究竟什么是XSS跨站脚本攻击,具体攻击行为又是什么,本章对此进行了简要分析。

7.2 xss类型

  • 持久型跨站漏洞:又称存储型跨站脚本漏洞。将跨站代码存储在服务器中(数据库),使得访问该页面的用户都面临信息泄漏的可能,例如,论坛发帖或留言处的XSS 就是持久型的XSS,存储在数据库。
  • 非持久型跨站漏洞:又称反射型跨站脚本漏洞。用户访问服务器,点击了跨站链接,将返回跨站代码(需要欺骗用户自己去点击链接才能触发XSS)。
  • DOM ( document object model,文档对象模型)跨站漏洞(DOM XSS):客户端脚本处理逻辑导致的安全问题。简单来说,基于DOM 的跨站脚本漏洞就是出现在JavaScript代码中的漏洞。

7.3 反射型XSS

非持久型跨站脚本攻击漏洞(反射型):
反射型XSS的利用一般是攻击者通过特定的手法(例如,电子邮件),诱导用户去访问一个包含恶意代码的URL,当受害者点击这些专门设计的恶意链接时,恶意的JavaScript代码会直接在受害者主机的浏览器上执行。其特点是用户点击时触发,而且只执行一次,非持久化,所以称为反射型跨站脚本攻击漏洞。

7.4 存储型XSS

持久型跨站脚本攻击漏洞(存储型):
此类XSS不需要用户点击特定的URL就能执行跨站脚本,攻击者事先将恶意JavaScript代码上传或者存储到漏洞服务器中,只要受害者浏览包含此恶意JavaScript 代码的页面就会执行恶意代码。

十. 其他漏洞

10.1 CSRF

CSRF (Cross Site Request Forgery,跨站请求伪造)是一种常见的Web攻击,CSRF在某些时候能产生很大的破坏力。攻击方式主要由攻击者诱导用户点击看似无害的网站链接,一旦用户中招,即可在用户未知的情况下执行某些敏感操作,例如,以用户名义发送邮件、发消息、盗取用户账号,甚至于购买商品,虚拟货币转账等。

CSRF主要通过伪装来自受信任用户的请求进行攻击,类似XSS攻击,两者都是在页面中嵌入特殊部分引诱或强制用户操作从而达到破坏等目的,但它们之间的区别就是CSRF迫使用户访问特定URL,而XSS迫使用户执行JavaScript 代码。

SCRF防御

(1) Cookie Hashing(所有表单都包含同一个随机值)
这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie,所以表单中的数据也就构造失败了,在表单里增加Hash值,以认证这确实是用户发送的请求,然后在服务器端进行Hash值验证。
(2) 验证码
CSRF 攻击的过程,往往是在用户不知情的情况下构建了网络请求。而验证码,则强制用户必须与应用进行交互,才能完成最终的请求。因此在通常情况下,验证码能够很好地遏制CSRF攻击。
但是验证码并非万能,很多时候,出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为防御CSRF 的一种辅助手段,而不能作为最主要的解决方案。
(3) One-Time Tokens(不同的表单包含一个不同的随机值)
在实现One-Time Tokens时,需要注意一点,就是“并行会话的兼容”。若用户在一个站点上同时打开了两个不同的表单,CSRF保护措施不应该影响到它对任何表单的提交。考虑一下若每次表单被载入时站点生成一个随机值来覆盖以前的随机值将会发生什么情况:用户只能成功地提交他最后打开的表单,因为所有其他的表单都含有非法的随机值。

10.2 逻辑错误漏洞

挖掘逻辑漏洞

绕过授权验证

密码找回逻辑漏洞

支付逻辑漏洞

指定账户恶意攻击

10.3 URL跳转与钓鱼

URL跳转漏洞
由于对网站应用越来越多的需要和第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向不同的页面,譬如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个过程中若实现不好就可能导致URL跳转漏洞。主要原因是服务端未对传入的跳转URL变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。

URL跳转漏洞实例

(1) META标签内跳转。
(2) JavaScript 跳转。
(3) header头部跳转。

网络钓鱼

网络钓鱼(Phishing)攻击者利用欺骗性的电子邮件和伪造的 Web站点来进行网络诈骗活动,受骗者往往会泄露自己的私人资料,如信用卡号、银行卡账户、身份证号等内容。诈骗者通常会将自己伪装成网络银行、在线零售商和信用卡公司等可信的品牌,骗取用户的私人信息。

网络钓鱼的主要手法有:

(1)发送电子邮件,以虚假信息引诱用户中圈套。
(2)建立假冒网上银行、网上证券网站,骗取用户账号密码实施盗窃。
(3)利用虚假的电子商务进行诈骗。
(4)利用木马和黑客技术等手段窃取用户信息后实施盗窃活动。

十一. 暴力破解

暴力破解,通俗来讲就像你有一大串钥匙,需要逐个尝试从而找到可以开门的那把钥匙。在这里,一大串钥匙指的是组成密码的数字、大小写字母、特殊符号的排列组合,可以开门的那把钥匙就是正确的排列。一般为了节省时间,通常会准备好常见的密码排列组合,也就是密码字典来进行暴力破解尝试。

11.1 Burp Suite

Burp Suite是一个用于攻击Web 应用程序的集成平台,里面集成不同功能的工具。所有的工具都共享一个能处理并显示HTTP 消息、持久性、认证、代理、日志、警报的一个强大的可扩展的框架。

十二. 旁注攻击

旁注攻击即攻击者在攻击目标网站时,对目标网站“无从下手”,在找不到漏洞的情况下,攻击者可能会通过同一服务器的其他网站渗透到目标网站,从而获取目标网站的权限,这一过程就是旁注攻击。

旁注攻击不是利用目标站点程序的漏洞达到攻击的目的,而是利用来自“外部”的攻击。攻击者在进行旁注攻击操作时,一般会与提权结合在一块,旁注与提权是密不可分的(提权就是将普通用户的权限提升成管理员的权限)。

12.1 IP逆向查询

十三. 提权

提权是指将服务器普通用户提升到管理员用户的一种操作。提权常常用于辅助旁注攻击。如攻击者已经获得目标网站同一服务器的任意网站,通过提权拿到服务器的管理员权限,当拥有管理员权限后,几乎可以对服务器进行任何操作,因此旁注攻击成功的关键是看服务器的提权成功与否。

提权一般分为两种:一种是溢出提权,另一种是第三方组件提权。

十五. 社会工程学

“操纵他人采取特定行动或者泄露机密信息的行为。它与骗局或者欺骗类似,故该词常用于指代欺诈或者诈骗,以达到收集信息、欺诈和访问计算机系统的目的,大部分情况下攻击者与受害者不会有面对面的接触。”

十六. 电信诈骗手段还原

16.1 钓鱼技术

钓鱼攻击是一种形象的比喻,主要手段是以欺骗性的电子邮件、手机短信和网站诱导受害者输入一些重要的敏感信息,例如,银行卡账号密码、个人身份证号码、邮箱账号密码及经常使用的社交账号密码。攻击者获取敏感信息后加以利用,可导致受害者财产受到损失,受害者的社交圈也可能成为攻击者的目标。
电信诈骗中,攻击者通常会利用一些已经在互联网中泄露或其他渠道获取的用户信息、手机号、邮箱等作为诈骗的目标,通过向这些目标发送已经伪装好的钓鱼网站网址,若目标用户安全意识差且不能及时识别这些被伪装过的URL和网站内容,点击之后很可能上当受骗。

16.2 改号技术

改号软件(Platform for any phone number displayed)即手机号码任意显示系统(Anydisplay system phone number),是一种通过网络P转换的服务功能,可以将发出短信、拨出电话的任意号码设置成指定号码。

16.3 猫池技术

所谓“猫池”(ModemPool),就是将相当数量的Modem使用特殊的拨号请求接入设备连接在一起,是一种扩充电话通信带宽和目标对象装备的别称,可以同步拨打和发送大批量的用户号码和短信。猫池设备(如图16-10和图16-11所示)通常有8口、16口的,多的有128口的,可同时插128张手机卡。由软件通过发送AT指令控制模块实现发短信、拨打电话、上网产生流量等功能。一台计算机连接2~4台“猫池”,一台“猫池”可插入多张SIM卡,电话卡日均可拨打2000次电话,一台计算机每日拨出的电话次数高达20万次。

十七. IP溯源技术及其标准化

17.1 网络攻击模型

精确定位攻击源并非易事,因为攻击者对远程计算机或网络进行攻击时,通常会采用伪造报文P源地址和利用跳板机间接攻击等手段来隐藏自己的真实P地址。互联网有许多存在安全漏洞或者提供代理服务的主机都可能被攻击者利用作为“跳板”对目标发动攻击,从受害主机上只能看到“跳板”的P地址,而无法获得真实攻击者的TP地址。

在这里插入图片描述
涉及的机器包括攻击者、受害者、跳板机、僵尸机、反射器等。

  • 攻击者(Attacker Host):发起攻击的真正起点,追踪溯源希望发现的目标。
  • 被攻击者( Victim Host):受到攻击的主机,攻击源追踪的起点。
  • 跳板机(StepPing Stone):已经被攻击者控制,并作为其通信管道和隐藏身份的主机。
  • 僵尸机(Zombie) :已经被攻击者控制,并被其用作发起攻击的主机。
  • 反射器(Reflector):未被攻击者直接控制,但在不知情的情况下参与了攻击。

17.2 追踪溯源技术

难点

由于当前的TCP/IP协议对P包的源地址没有验证机制以及Internet 基础设施的无状态性,使得想要追踪数据包的真实起点已不容易,而要查找那些通过多个跳板或反射器等实施攻击的真实源地址就更加困难。具体体现在以下几个方面:
(1)当前主要的网络通信协议(TCP/IP)中没有对传输信息进行加密认证的措施,使得各种IP地址伪造技术出现。这使得通过利用攻击数据包中源P地址的追踪方法失效。
(2) Internet 已从原来单纯的专业用户网络变为各行各业都可以使用的大众化网络,其结构更为复杂,使攻击者能够利用网络的复杂性逃避追踪。
(3)各种网络基础和应用软件缺乏足够的安全考虑,攻击者通过俘获大量主机资源,发起间接攻击并隐藏自己。
(4)一些新技术在为用户带来好处的同时,也给追踪溯源带来了更大的障碍。虚拟专用网络(VPN)采用的IP隧道技术,使得无法获取数据报文的信息;网络服务供应商(ISP)采用的地址池和地址转换(NAT)技术,使得网络IP 地址不再固定对应特定的用户;移动通信网络技术的出现更是给追踪溯源提出了实时性的要求,这些新技术的应用都使得网络追踪溯源变得更加困难。
(5)目前追踪溯源技术的实施还得不到法律保障,如追踪溯源技术中,提取IP报文信息牵扯个人隐私。这些问题不是单靠技术手段所能解决的。

追踪溯源技术分类

主动询问类

数据监测类

路径重构类

可控网域追踪溯源和非可控网域追踪溯源

(1)可控网域追踪溯源

在可控网域中,与网络运营商协作配合,获取信息数据,改造网络设备,部署相应的溯源设备。通过分析处理能够满足网络追踪溯源要求,重构攻击路径,完成追踪溯源。在实际使用中采用何种协作网域溯源技术,则需要综合评估网络负载、ISP配合与否等多种因素

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT自习小空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值