XSS
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意HTML代码,当用户浏览该页面时,嵌入Web页面的HTML代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。在XSS攻击中,一般有三个角色参与:攻击者、目标服务器、受害者的浏览器。
危害有突破域限制、修改HTML代码、XSS蠕虫攻击、命令执行、获取客户端信息、结合CSRF攻击、获取系统管理后台权限、盗取账号和DDOS攻击。
反射型XSS
<反射型XSS>也称为<非持久型XSS>,其特征是直接在URL中输入恶意代码。这种XSS攻击的隐蔽性较差,一般的浏览器都可以识别并拦截。
如果网站将我们搜索的内容直接返回显示在网页里面,反射型XSS就有了用武之地。
打开Webgoat:(安装:https://blog.csdn.net/qq_37865996/article/details/84670470)
在此搜索框输入啥都会被返回:
满足了反射型XSS的特征,我们这样输入进行攻击:
<script>alert("XSS");</script>
存储型XSS
<存储型XSS>也称为<持久性XSS>,这种攻击的特征是恶意代码是存储在数据库或者服务器上,一般存储型XSS的隐蔽性比较高,浏览器一般不会察觉和拦截,所以危害也是最大的。
假设有这么一个网站,是让人去留言的,系统会把留言存储在服务器上:
在留言系统留言时:
可以完整的把我们的留言保留在系统中,这样输入测试存储型XSS
<script language="javascript" type="text/javascript">alert("Hatsune Say Store XSS");</script>
点开这个XSS留言的链接:
Dom-Based XSS Injection
客户端脚本使用来自用户请求的恶意内容将HTML写入自己的页面。
类似于反射的XSS。
在浏览器中以从用户处继承的浏览器权限运行
XSS的事故频发地
- HTML文档
- 多媒体、网页插件
- CS客户端软件
CSRF跨站请求伪造漏洞
CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF)。直译过来就是<跨站请求伪造>的意思,也就是在用户会话下对某个CGI做一些<GET/POST>的事情,也可以将CSRF理解成为高级的XSS。网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问 这个网站会带上这个cookie,如果这期间浏览器被人控制着请求了这个网站的url,可能就会执行一些用户不想做的功能(比如修改个人资料)。这个请求并不是用户真正想发出的请求,这就是所谓的<请求伪造>。因为这些请求也是可以从第三方网站提交的,所以前面加上<跨站>二字。
CSRF攻击条件:
- 用户已经完成身份认证
- 新请求的提交不需要重新身份认证或确认机制
- 攻击者必须了解Web APP请求的参数构造
- 用户会被吸引去点击链接
常见的CSRF方式:
-
<img>标签属性
-
<iframe>标签属性
-
<script>标签属性
-
JavaScript方法:Image对象、XMLHTTP对象
Webgoat中有关CSRF的部分有待研究,这边我学的不好,先放这儿。