Web安全
- 首先安装 WordPress 网址:https://cn.wordPress.org
- 互联网安全事件:希拉里邮件门,openSSL心脏出血。。。 PHP 网站占比很高,也是安全事故多发地
XSS攻击
- XSS攻击:是跨站脚本攻击,主要使用JavaScript向网站注入代码,以实现盗号窃取资料的目的。XSS是互联网中使用最广泛的攻击手段之一。XSS攻击由于被黑客用来编写危害性更大的网络钓鱼攻击变得广为人知。(钓鱼攻击:在登录页面注入代码,在登陆之前悄悄跳转自己的虚假页面,然后就可以获取用户登录信息)
危害 :
·XSS多用于盗取各类账号,如用户网银账号,各类管理员账号
·控制企业数据,包括读取,篡改,添加,删除企业敏感数据的能力
·非法转账
·控制受害者机器向其他网站发起攻击
案例1:2011年新浪微博XSS蠕虫事件:大量用户自动发送带链接的微博与私信,并自动关注一位名为hellosamy的用户
案例2:百度贴吧XSS攻击事件:六安吧等几十个贴吧出现点击推广贴自动转发,导致吧务人员和吧友被封禁。
案例3:2005年myspace蠕虫
- XSS攻击方式:
·存储型攻击:XSS代码被插入到类似个人信息或发表的文章等存储在服务器上的信息中,即XSS代码被持久化
用IE浏览器测试,需要调成兼容模式
例子:张三登录自己账户,发表文章(需要改成文本),在文本中注入一段JS代码
然后李四去访问张三文章,李四账户名称被篡改成张三哥哥
·反射型攻击:非持久化,代码隐藏在链接中,欺骗用户自己去点击链接时触发XSS代码,一般出现在搜索页面
- XSS防范:
·过滤:对提交内容中的非法标签和属性(例如 script>,onclick等)进行过滤,从而避免XSS攻击
·转义:通过使用htmlspecialchars等函数,将提交内容中的字符"<"和">"转换为HTML实体
CSRF攻击
- CSRF攻击:跨站伪造请求,冒充用户进行一些操作,甚至完成银行的转账
- CSRF攻击方式:
·get型攻击:通过模拟get请求,向目标网站发起攻击,一般使用a标签,并且和目标网站是同源的,这样就可以拿到cookie
·post型攻击:通过模拟post 请求,发起表单提交,从而达到攻击的目的,提交地址和目标网站是同源的,这样就可以拿到cookie - CSRF防范:
·referer防范:通过判断请求头中的referer头,确定请求的来源,从而避免CSRF攻击
·token防范:通过在表单中添加token,标识表单的合法性来避免CSRF攻击
sql注入
- sql注入:通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到七篇服务器执行恶意的SQL命令。直接攻击系统的数据库,可以实现数据库级别的操作,盗取数据
游戏中的注入:游戏名为‘他爸爸’,当被对手杀死之后,系统会显示‘xxx杀死他爸爸’
SQL中的注入:
select * from user where name='zhangsan'
select * from user where name='zhangsan' or 1=1--''
案例:2013年美国海军web应用"Smart Web Move"被攻击导致人员信息泄露
恶意修改企业数据:银行账户被恶意修改等
网站挂马:将XSS代码直接写入数据库中
- SQL注入攻击的方式:
·登录注入:通过登录界面进行SQL注入
·文章管理注入:通过文章管理界面注入
文件上传漏洞
- 文件上传漏洞:指用户通过利用windows文件命名规则,上传了可执行的脚本问价(php文件),并通过此脚本文件获得了执行服务器端命令的能力。上传自定义的php代码并执行。一般存在window系统
- 漏洞原因分析:
·windows文件名规则:以下字符不能表示文件名: <> , / , , | , : , "" , * , ?
·move_uploaded_file函数:在移动文件中,当遇到非法字符时,将忽略非法字符以及之后的字符(例如:汇集那个abc:d.jpg 变成 abc) - 文件上传漏洞的方式:
代理上传:通过一些中间代理工具(如:fiddler等)完成上传非法文件的目的 - 文件上传漏洞的防范措施:
权限防御:文件上传的目录设置为不可执行
文件名防御:使用随机数改写文件名和文件路径
总结:
**XSS攻击:向页面或者 url 链接注入javascript代码,达到攻击的目的
CSRF攻击:利用用户已登录网站的cookie,发起伪造请求,达到攻击目的
SQL注入攻击:通过输入带有非法字符的数据,串改SQL查询语句,达到攻击目标
文件上传漏洞:借助中间代理工具和windows系统文件命名规则,以及php函数的特殊上传处理,达到攻击目标**
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。