现如今随着服务器越来愈多,Web脚本攻击也是更加普及
常见的攻击方式如下两种:
- SQL注入
- 跨站脚本攻击
SQL注入
通过把SQL命令加入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
原理:
- 绕过认证or 'a' = 'a' 必须要有两个条件
- 账号密码的查询是要同一查询语句
- 密码没有加密保护
- 判断能否进行SQL注入
- 判断数据库类型及注入方法
- 猜测表名和字段名
- 猜测用户名和密码
防范:
- 过滤关键词,如Select、form、引号、分号等,这些关键词都是查询语句最常用的词语,一旦过滤了,那么用户自己构造提交的数据就不会完整得参与用户的操作。
- 限制输入的长度
- 秘密字段使用散列函数保护
严密防范:
- 验证过滤所有的输入
- char(85)代替直接使用引号
- 程序中使用类型安全的查询参数
- 避免在Like语句中使用%
- 使用SQL单一语句执行许可
跨站脚本攻击(XSS)
跨站脚本是一种准许将恶意代码注入到网页中的安全漏洞。主要用于:钓鱼或者cookie窃取,目的是为了访问受限信息;为了恶搞、丑化其他网站或实施社交工程攻击;在网站的客户端上执行恶意代码。
原理:
- 反射式攻击:跟踪网站通过cookie进行的身份验证,这种网站一般不太安全,容易遭受跨站脚本攻击。使用社会工程(如告诉用户“你中奖了”),如果如何受到诱骗,并单击攻击者注入到标准HTML代码中包含恶意代码的链接,攻击者就可以访问用户的cookie信息(会话和身份验证信息)
基本原理:
在网页中可以进行输入的地方输入HTML代码或JavaScript代码
留言板里留言:
1.判断是否有脚本漏洞,随意提交带<、>的字符串
2.<script>while(true) alert('你中招了')</script>
也可以用在诈骗Email里 - 存储式攻击:假设某个网站通过后端数据库作为搜索网页信息的来源,黑客们并不将恶意代码注入到普通界面中,而是将SQL代码注入到这种数据库中。于是,每次后端数据库中返回查询结果时,都会包含攻击者的恶意代码。
防范:
- 对动态生成的页面的字符进行编码
黑客很有可能更改你的字符设置而轻易通过你的防线 - 对输入进行过滤和限制
可在ONSUBMIT方法中加入JavaScript程序来过滤<,>之类的字符,还可以限制输入的长度 - 对动态内容使用HTML和URL编码
<table background = javascript:alert(/xss/)>转换成<table background=javascript&58> - 设置IE不下载、不执行任何脚本、ActiveX等
网友评论