sql注入方式
通过输入带有非法字符的数据,串改sql查询语义,达到攻击目标
方式
1、登录注入
2、文章编辑管理注入
防范
1、转义或过滤:通过转义或者过滤掉用户输入中的特殊字符防止sql注入
2、pdo预处理:通过pdo预处理中的占位符,防止sql注入
文件上传漏洞
借助中间代理工具和windows系统文件名规则,以及php函数的特殊上传处理,达到攻击目的;利用windows文件命名规则,上传可执行的脚本文件,并通过此脚本文件获得了执行服务器命令的能力
原理
windows文件名规则:以下字符不能表示文件名:<>,/,\,|,:,"",*,?
move_uploaded_file函数:在移动文件中,当遇到非法字符时,将忽略非法字符以及之后的字符(例如会将acb:d.jpg变成acb)
方式
代理上传:通过一些中间代理工具(如:fildder等)完成上传非法文件的目的(捕获请求,修改请求)
防范
权限权限:文件上传的目录设置为不可执行
文件名防御:使用随机数改写文件名和文件路径
xss
向页面或者url连接注入JavaScript代码,达到攻击的目的
互联网中使用最广泛的攻击手段
跨站脚本攻击,允许web用户恶意将代码植入到提供给其他用户使用的页面中
xss攻击由于被黑客用来编写危害性更大的网络钓鱼攻击而变得广为人知
造成后果
盗取各类用户账户
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
非法转账
控制受害者机器向其他网站发起攻击(控制机器一直请求另一个网站)
案例
新浪微博xss蠕虫事件:大量用户自动发送带连接的微博与私信,并自动关注一位名为hellosamy的用户
百度贴吧xss攻击事件:六安吧等十几个贴吧出现点击推广贴会自动转发,导致吧务人员和吧友被封禁
myspace蠕虫
攻击方式
存储型攻击:xss代码被插入到类似个人信息或发表的文章等存储在服务器上的信息中,即xss代码被持久化
反射型攻击:非持久化,代码隐藏在连接中,欺骗用户自己去点击链接时触发xss代码,一般出现在搜索页面
防范
转义:通过使用htmlspecialchars等函数,将提交内容中的字符"<" ">"转换为HTML实体
过滤:对提交内容中的非法标签(<script> onclick等)进行过滤
过滤的三方扩展:kses
屏蔽关键字:<script> onclick href '"' "'" innerHTML
CSRF
利用用户已登录网站的cookie,发起伪造请求,达到攻击目的
跨站请求伪造,通过伪装来自信任用户的请求来利用受信任的网站进行攻击
同源策略:是一种约定,他是浏览器最核心也是最基础的安全功能。如果两个网页的协议、域名、端口均相同,就认为这两个网页同源
同源策略的作用:保护cookie不被其他站点读取
csrf攻击本质:绕过同源策略,使用cookie进行攻击的一种方式
案例
人人网csrf攻击:通过模拟分享功能的请求,可以批量拉黑好友(http://www.ithov.com/article/127750.html)
百度贴吧模拟投票:在你不知情的情况下,帮你投诉某个吧主(http://tieba.baidu.com/p/3769861364)
攻击方式
get型攻击:通过模拟get请求,向目标网站发起攻击(使用户登录后访问另一个网站时,想办法触发登录的网站站中的某些地址(例如访问的地址中插入一个图片,图片地址为登录的网站的地址))
post攻击:通过模拟post请求,发起表单提交,从而达到攻击的目的(使登录的用户访问另一个网站,将网站构造为一个post表单,使其在访问时进行提交)
防范
referer防范:通过判断请求头中的referer头,确定请求的来源,避免csrf攻击
token防范:通过在表单请求中添加token,标识表单的合法性,避免csrf攻击