前言
随着互联网的不断发展,web应用的互动性也越来越强。相应的,在用户体验提升的同时安全风险也会跟着有所增加。今天,我们就来讲一讲web渗透中常见的攻击方式之一,XSS攻击。首先需要了解他是如何工作的,以及我们如何利用xss。
XSS简介
XSS又叫CSS (CrossSiteScript),因为与层叠样式表(css)重名,所以叫XSS,中文名叫跨站脚本攻击。
特点:凡是存在输入框的地方,都可能存在XSS漏洞。
精髓:先闭合,再构造
首先,我们要明白,XSS是利用javascript脚本语言实现的。
JavaScript
简介:是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
Javascript的一些语法常识:
①html中的脚本必须位于标签之间;
②脚本可被放置在html页面的
和部分中;③语句里面的;(分号)用于分隔javascript语句,使用分号可以一行中编写多条语句;
④javascript对大小写敏感;
⑤javascript会忽略多余的空格;
⑥可以在文本字符串中使用反斜杠对代码进行换行。
那么,基本的理解了,下面开始讲解利用~
XSS攻击类型
XSS攻击目前主要分为三种:
1、反射型XSS
2、存储型XSS
3、DOM型XSS
反射型XSS
简介:当用户访问一个带有XSS代码的URL请求时,服务器端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,最终造成XSS漏洞。
精髓:向web页面注入恶意代码;这些恶意代码能够被浏览器成功的执行。
反射型经典的XSS语句:
反射型XSS包括:get类型,post类型。
GET类型:
一般就是直接在url后面插入,或者搜索框插入。
建议抓包看一下,在插入的位置闭合前面的标签。
下面这个网站输入的什么输出的就是什么,所以不需要做闭合标签,如图:
Ok,成功弹窗,说明有XSS存在,很多人认为这个危害不大呀,那只说明你懂的太少,xss利用javascript中的document对象方法可以把它发挥到极致。
例如制作钓鱼网页获取cookie:
POST类型:
原理跟get一样,只不过是以post类型传参,重点也是先闭合标签,再构造payload。
存储型XSS
这种类型的XSS,危害比前一种大得多。比如一个攻击者在论坛的楼层中包含了一段JavaScript代码,并且服务器没有正确进行过滤输出,那就会造成浏览这个页面的用户执行这段JavaScript代码。 ~
简单的说:此类XSS是存储再数据库的,意思就是如果网站存在存储型XSS,那么就可以打到管理员的cookie。其实cookie就是账号跟密码的存储值,有了它,就可以直接登陆网站后台,从而越过账号密码登陆。
我只说一下打管理员cookie:
利用较多的就是留言板,即可以让网站管理员看到你输入到服务器XSS语句的地方,这个思路很多,我只说常见的一种。
利用:利用现成的XSS平台,或者自己搭建一个可以接受XSS的平台,现在网上源码也有很多,根据需求自己搭建。
我们在XSS平台生成用于测试的XSS语句,然后写到留言板提交。
语句:
好,可以看到成功插入,并未有任何过滤。
接着咱们看XSS平台是否收到cookie。
可以看到,成功拿到管理员的cookie,凭借这个就可直接登陆网站后台。
当然实战中是不可能这么快拿到cookie的,这个是看管理员什么时候查看该留言,才可以获取到的。
DOM型XSS
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
特点:不需要服务器解析,触发XSS靠的是浏览器端的DOM解析。
这个类型的XSS我前天在某src挖到了一个,简单说一下,这类的XSS你需要掌握javascript的document对象的众多方法,我也是简单了解一点~
有你了解的攻击方式吗?可以在留言区交流哦,喜欢的伙伴们记得添加我们的订阅号secdeer~快动一动小手,分享给身边的小伙伴吧~