开山-web安全基础(1)常见web漏洞解析

欢迎来到theFlyer的博客—希望你有不一样的感悟

前言:第一次使用markdown,文章里面可能有各种尝试,看官见谅。web安全基础需要各位看官有一定html/js/php等基础知识(我也是萌新),知识多而杂,需要多看多动手。

目录

文章目录

    • 欢迎来到theFlyer的博客---希望你有不一样的感悟
    • 目录
    • XSS
    • CSFR
    • 点击劫持
    • URL跳转
    • SQL注入
    • 命令注入
    • 文件操作漏洞

XSS

全称:Cross Site Script
中文名称:跨站脚本
危害:盗取用户信息、钓鱼、制造蠕虫等
概念:黑客通过“HTML注入”篡改网页,插入了恶意脚本,当用户在浏览网页时,实现控制用户浏览器行为的一种攻击方式。

xss三种类型

XSS类型		  存储型				反射型             DOM型

触发过程   1.黑客构造XSS脚本	  正常用户访问携带	  	 正常用户访问携带
		  2.正常用户访问携带   XSS脚本的URL(参数)     XSS脚本的URL(哈希) 
	        XSS脚本的页面
数据存储	     数据库			   URL				    URL
谁来输出	  后端WEB应用程序		后端WEB应用程序	     前端JavaScipt
输出位置	   HTTP响应中		   HTTP响应中       	 动态构造的DOM节点
 
DOM型:   用户访问应用  浏览器通过js解析URL内容输出到DOM中  触发XSS
个人理解(欢迎指正):主要利用闭合标签,闭合正常标签,并加入恶意代码
                  或添加构造恶意代码。
">来先闭合掉a标签。然后再用script来运行js代码
onclick="alert(1)";>123//点击123触发onclick来运行js,然后把后面的内容来注释掉

前人已经对XSS有了比较深入的总结
链接:XSS的原理分析与解剖                          XSS的原理分析与解剖二
防御xss

原则1:不要在页面中插入任何不可信数据,除非这些数已经据根据下面几个原则进行了编码
原则2:在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码
原则3:在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码

想知道如何防必然对攻要有深刻理解,有时间拜读此文防御XSS的七条原则

CSFR

全称:Cross-site request forgery
中文名称:跨站请求伪造
危害:执行恶意操作(被转账,被发垃圾评论等)、制造蠕虫...
概念:利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作

CSRF攻击攻击原理及过程如下:

1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3.用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4.网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5.浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:

1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。

看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:
1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
2.你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了)
3.打开的第三方网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。

CSRF 攻击的应对之道

1.验证 HTTP Referer 字段
2.在请求地址中添加 token 并验证
3.在 HTTP 头中自定义属性并验证
文章链接如下CSRF 攻击的应对之道
4.服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数
浅谈CSRF攻击方式

点击劫持

全称:Click Jacking
中文名称:点击劫持
危害:点击覆盖不可见的框架,造成各种精心设计的风险如何删除、点赞、下载、转账等
概念:它是通过覆盖不可见的框架误导受害者点击。虽然受害者点击的是他所看到的网页
,