常见的WEB安全漏洞
l 攻击目标:
1. 影响 – 宕机、篡改页面等
2. 交易 – 盗取银行账号、钓鱼攻击
3. 用户 – 登录密码以及cookie/refer/ip隐私
l 常见漏洞
1. SQL注入
俗称黑客的填空游戏,填准了什么都能干,sql语句拼接的小网站比较常见。
定义:攻击者提交恶意SQL并得到执行
本质:由于输入检验不充分,导致非法数据被当做SQL来执行
防范:ibatis SQL 尽量用#,慎用$,$带上元数据标识(select * from xxx order by $orderByColumn:METADATA$)。
2. XSS: Cross-Site Scripting,跨站脚本攻击
定义:攻击者在页面里插入恶意脚本,当用户浏览该页时,嵌入其中的恶意代码被执行,从而达到攻击者的特殊目的
实质:用户提交的HTML代码未经过滤和转义直接回显
特点:
攻击授信和未授信用户,不直接攻击服务器
很常见,例如贴图、 AJAX回调、富文本(如评论留言)
恶意脚本可能位于跨站服务器,但必须用户浏览器执行,最暴力的防范就是禁用JS脚本
危害:
挂蠕虫、木马、病毒
盗取用户的cookie/referer/ip等信息
制作钓鱼网站
用户被提交恶意数据、被执行恶意操作
帮助CSRF,绕过CSRF的token验证
3. CSRF :Cross Site Request Forgery,即跨站请求伪造
定义: 在恶意站点上,促使用户请求有CSRF漏洞的应用的 URL或欺骗性的表单,从而修改用户数据
实质:利用session机制,盗用授信用户对应用做一些恶意的GET/POST提交
特点:
不同于XSS,恶意脚本一定位于跨站服务器
攻击授信用户,不直接攻击服务器
近年增多,授信用户的贴图、表单提交、页面交互、AJAX调用都可能导致该漏洞
危害:
获得管理员权限
盗取用户银行卡、信用卡信息
授信用户被提交恶意数据、被执行恶意操作
防范:
服务器区分GET/POST,增加攻击难度
REFERER校验,补充手段
改长授信为短授信
时间戳
关键流程使用验证码
Token验证
严防XSS,否则短授信可能被伪造
l 扩展阅读
其他漏洞
• 命令行注入
• 文件上传漏洞
• 缓冲区溢出
• 访问控制漏洞
• Logic Flaw,逻辑漏洞
• 无限制URL跳转漏洞
• 表单重复提交
参考
• Google GMail E-mail Hijack Technique