写在前面:本人刚入坑信息安全。。。属于小白,意在通过写简书的方式记录并督促学习,希望各大神高抬贵手,若有纰漏请尽情指出!
0x001——XSS简介
XSS:Cross Site Script 跨站脚本攻击
实际上XSS为一种Html注入,黑客通过注入Html以及JS函数代码实现一些破坏性工作,严重的如:Cookie劫持,XSS钓鱼等。Cookie中一般加密保存了当前用户的登陆凭证,如果Cookie丢失则就像是上班族到公司楼下发现没带门禁卡一样,被阻拦在外面,无法访问楼内的资源。丢失还是小事,若Cookie被盗,就像小偷偷走了你的门禁看,进了公司大门行使你所拥有的权限可以在公司中为所欲为,对自身和公司都有着很大的危害。Cookie就是一个token,一种确认上网者身份状态的token。
当我们登陆后这个cookie就会一直伴随着我们,既然不安全为什么还要有这个Cookie呢?这是因为Http协议的无状态性,也就是说服务器和终端通过HTTP协议就是通过一问一答的形式进行服务,HTTP不会记录客户端的当前状态。所以在验证方面就加入了Cookie进行确认身份和状态。一个字符串能成为Cookie的条件还是很苛刻的,比如要防止被推测,防止被破译等等。。。这就涉及到了加密算法,还有伪随机数方面的知识了。
XSS实际上就是在Web窗口端或者URL中违法的输入一些违法指令,利用web应用程序中没有过滤输入信息的漏洞展开的攻击方式。XSS生成的原因是,在生成HTML的语法过程中含有特殊意义的字符(元字符)没有被正确的处理,结果导致HTML或Javascript被肆意注入。然而即使有的接口如.net中对text文本进行输入文本的检测,但是还会曝出XSS的漏洞。这也就是问什么XSS漏洞OWASP威胁前几的原因,很难进行彻底的解决,毕竟道高一尺魔高一丈。很多人认为XSS漏洞并不是开发者开发时所应注意的漏洞,而是浏览器产商所应该检测的漏洞,所以现在我们所使用的主流浏览器Chrome,IE8版本以上都配备了XSS过滤器。
0x002——XSS种类
1.反射型XSS
反射型XSS只是简单的讲用户输入的数据“反射”给浏览器。也就是说黑客需要诱使用户点击一个恶意链接才能攻击成功,所以这种方式也被称为“非持久型XSS”
2.储存型XSS
储存型XSS是将恶意代码存放在了服务器中的JS等代码文件中,黑客会诱使用户访问这些网页,访问时服务器端的代码会对用户浏览器进行攻击。因为这种方法相对稳定,只要有用户访问就会被攻击,所以也被称为“持久性XSS”。
0x003——XSS简单的弹框攻击
搭建dvwa web应用程序,我是使用XAMPP自带的Apache+Mysql+PHP的框架。
然后将难度设置为easy,127.0.0.1登陆本地网站,打开dvwa网站,登陆后找到点击XSS(reflect)条目,在框中输入:<script>alert("XSS")</script> 就会有警示框弹出,并显示“XSS”。
盗取cookie代码:<script>alert(document.cookie)</script>