1.xss
首先,我更系统地了解了一下xss,从概念上来说:XSS (Cross Site Scripting),即跨站脚本攻击,是一种常见于 Web 应用中的计算机安全漏洞。恶意攻击者往 Web 页面里嵌入恶意的客户端脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的。而更简单的解释为:以让网页执行恶意 js 代码为目的
2.cookie
不少xss的博客中都提到了cookie这个词,cookie是什么?
(1)cookie是什么
cookie的中文翻译是曲奇,小甜饼的意思。cookie其实就是一些数据信息,类型为“小型文本文件”,存储于电脑上的文本文件中
(2)cookie的作用是什么
简单举个例子,在我们通过网站登录一个账号时,我们经常会发现,在重新进入网站时,我们不需要频繁地输入账号密码去登录,而网站会将其保存下来,以便我们下一次登录,这便是cookie的作用
(3)xss中的cookie
前文说过,xss是通过让网页恶意执行代码来完成攻击的,所以便可以用代码来实现盗取用户的cookie并将其发送给攻击者,导致用户个人信息被盗取
3.xss的种类
(1)反射型
顾名思义,整个过程更像一次反射,当用户访问带有xss的url的时候,服务器会接收数据并处理,然后把带有xss代码的数据发送到浏览器,浏览器解析这段代码,并运行,就会导致xss漏洞
(2)存储型
同样是浏览器运行恶意程序,导致的xss漏洞,但与反射型的区别在于:当攻击者提供此段代码后,网页会将此段代码保存下来(简单的应用为留言板),之后每次打开此网页时,都会运行这段恶意代码,这样一来,造成xss跨站攻击
(3)DOM型
dom型与上述两种最大的区别在于:他没有与服务器进行交互,而是在前端通过js执行恶意代码
4.反射型xss(get&post)
我们首先输入一段特殊字符
submit之后查看网页源代码
ctrl+f后查找我们刚刚输入的这段字符
不难发现,我们的这段特殊字符被原封不动地输出了,那如果我们写入的是一段js的代码呢?
由于字数限制,我们先进入web开发者模式,更改最大字数
将其改为2000,之后在框内输入此代码<script>alert("芜湖")</script>
由此可见,网页执行了此段代码,弹窗出来了
post与get差距不大,均可以执行此段代码
两者区别:get型提交的数据会显示在url中,而post不会
5.存储型
我们还是输入这行代码:<script>alert("芜湖")</script>,我们发现出现了弹窗
之后我们再在留言栏里输入我们想要的留言
我们发现还会出现弹窗,并且留言,也被保存了下来
不仅如此,我们每次重新进入网页也会运行此段代码,弹出弹窗
由此可见,我们的代码被存在了网站中,这便是存储与前两种的区别
6.dom型
首先我们随便输入一段数字,点击click me后我们发现下面出现了一段链接
我们查看一下这段链接的源代码
可以看到,我们可以将此闭合之后,加入js代码进行恶意的执行
做出如下更改
并在输入框中输入:'οnclick="alert('ohhh')"
7.dom型之xss-x
同样随机输入,之后点击下面的字
然后我们查看源代码
与上一题唯一区别在于这次是从url中获取我们输入的text参数的
同样做出更改并在输入框输入代码