1、Web安全概述
Web安全可以从以下三个方面进行考虑:
Web服务器的安全
Web客户端的安全
Web通信信道的安全
2、Web服务器的安全
针对Web服务器的攻击可以分为两类:
一是利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等;
二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。
针对Web服务器具体的安全威胁主要体现在以下几个方面:
-服务器程序编写不当导致的缓冲区溢出(Buffer Overflow)并由此导致远程代码执行。
-针对服务器系统的拒绝服务攻击(Denial of Service)。
-脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQL Injection),可能引起信息泄漏、文件越权下载、验证绕过、远程代码执行等。
-乐观相信用户输入、过滤不严导致跨站脚本攻击(XSS,Cross Site Script),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。
3、Web客户端的安全
Web应用的迅速普及,客户端交互能力获得了极为充分的发挥,客户端的安全也成为Web安全的焦点问题。
Java Applet、ActiveX、Cookie等技术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。
浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并挂上木马,当用户访问了这个网页之后,就中了木马。这就是网页木马,简称网马。
同时,跨站脚本攻击(XSS)对于客户端的安全威胁同样无法忽视,利用XSS的Web蠕虫已经在网络中肆虐过。
4、Web通信信道的安全
和其他的Internet应用一样,Web信道同样面临着网络嗅探(Sniffer)和以拥塞信道、耗费资源为目的的拒绝服务攻击(Denial of Service)的威胁。
5、OWASP Top 10
A1-注入
A2-失效的身份认证和会话管理
A3-跨站脚本
A4-不安全的直接对象引用
A5-安全配置错误
A6-敏感数据暴露
A7-功能级别访问控制缺失
A8-跨站请求伪造
A9-使用已知易受攻击组件
A10-未验证的重定向和转发
6、SQL注入原理
程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。
攻击者可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
受影响的系统:对输入的参数不进行检查和过滤的系统。
7、SQL注入
判断注入点 index.php?id=1 and 1=1
判断列数 index.php?id=1 order by 10
判断显错点 index.php?id=1 union select 1, 2, 3
获取数据库名 index.php?id=1 union select 1, database(), 3
获取表名
获取列名
获取数据
8、什么是XSS攻击
XSS是跨站脚本攻击(Cross Site Script) 。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
本来跨站脚本攻击(Cross Site Scripting)应该缩写为CSS,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。因此人们将跨站脚本攻击缩写为XSS。
9、Web服务器指纹识别
Http指纹识别的原理:记录不同服务器对Http协议执行中的微小差别进行识别。
Http指纹识别比TCP/IP堆栈指纹识别复杂许多,理由是定制Http服务器的配置文件、增加插件或组件使得更改Http的响应信息变的很容易,这样使得识别变的困难;然而定制TCP/IP堆栈的行为需要对核心层进行修改,所以就容易识别。
10、Web盗窃
HTTP指纹识别是为了判断服务器的版本,从而找到服务器的漏洞。
而Web盗窃的目的是通过对各个网页页面源码的详细分析,找出可能存在于代码、注释或者设计中的关键缺陷和脆弱点,以此来确定攻击的突破点。
盗窃web服务器的两种方法:逐页手工扫描和自动扫描。
11、欺骗攻击
(1)ARP欺骗网页劫持
(2)DNS欺骗网站重定向
(3)网络钓鱼
ARP欺骗原理
原理:主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。
ARP欺骗攻击的防范
① MAC地址绑定,使网络中每一台计算机的IP地址与硬件地址一一对应,不可更改。
② 使用静态ARP缓存,用手工方法更新缓存中的记录,使ARP欺骗无法进行。
③ 使用ARP服务器,通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
④ 使用ARP欺骗防护软件,如ARP防火墙。
⑤ 发现正在进行ARP欺骗的主机并将其隔离。
DNS欺骗的原理及实现步骤
当客户主机向本地DNS服务器查询域名的时候,如果服务器的缓存中已经有相应记录,DNS服务器就不会再向其他服务器进行查询,而是直接将这条记录返回给用户。
而入侵者欲实现DNS欺骗,关键的一个条件就是在DNS服务器的本地Cache中缓存一条伪造的解析记录。
在上面的例子中,假如dhs.com域DNS服务器返回的是经过黑客篡改的信息,比如将www.dhs.com指向另一个IP地址5.6.7.8,nipc.com域DNS服务器将会接受这个结果,并将错误的信息存储在本地Cache中。以后在这条记录被缓存的生存期内,再向nipc.com域DNS服务器发送的对www.dhs.com的域名解析请求,所得到的IP地址都将是被篡改过的。
网络钓鱼
网络钓鱼是一种电子信息欺骗,攻击者创造了一个完整的令人信服的Web世界,但实际上它却是一个虚假的复制。
虚假的Web看起来十分逼真,它拥有相同的网页和链接。然而攻击者控制着这个虚假的Web站点,这样受害者的浏览器和Web之间的所有网络通信就完全被攻击者截获。
12、网页验证码
验证码技术属于人机区分问题,这在英文中称为CAPTCHA,它是是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称。
验证码技术的主要思想是必须通过人为参与完成信息提交过程,并且对验证码字体和背景做了相关处理。
基于验证码的表单提交流程
为了防止攻击者利用程序自动注册、登录、发帖,验证码技术日益得到广泛的应用。
基于验证码的表单提交流程如图所示。
验证码的类型
当前互联网上较为常见的验证码主要有以下几种:
-文本验证码:在网页上以文本形式呈现给用户;
-手机验证码:用户在网页上提交自己的手机号码,系统以短信形式将验证码发送到用户手机上;
-邮件验证码:用户在网页上提交自己的电子邮箱,系统以e-mail形式将验证码发送到用户的邮箱中;
-图片验证码:又称“验证水印”,在网页上以图片形式呈现给用户。
网络安全学习资源分享:
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
同时每个成长路线对应的板块都有配套的视频提供:
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
因篇幅有限,仅展示部分资料,需要点击上方链接即可获取