XSS漏洞:
原理:
简单点说就是允许不法用户将恶意代码插入网站代码中,通过其他用户执行恶意代码,来使其收到XSS攻击,导致其他用户的信息泄露或者其他严重后果
危害:
- 盗取用户账号
- 盗取/控制用户乃至企业的数据
- 非法进行转账
- 强制发送电子邮件(蠕虫病毒)
- 网站挂马
- 控制受害人机器向其他的网站发起攻击(该种受害人机器称为肉鸡)
类型:
- 反射型:需要用户自己点击才会执行,并不持久
- 存储型:存储到后端服务器中,实现持久化,例如一些留言,个人信息等可以和后台数据有交互的地方都有可能存在漏洞,此时只要其他用户访问这个页面,页面中包含所插入的代码,就会执行。
- dom型:理解不深,等以后理解深刻了再来补上吧,现在的理解是DOM会创建和HTML元素一一对应的文档对象,可以通过JS脚本对文档对象进行编辑,从而修改页面的元素。
XSS利用平台:
在百度上有很多这种XSS的payload生成工具,自己搜索吧,因为从来没实践过,所以也不太清楚有什么好用的。
XSS绕过:
- 大小写绕过:<Script>alert(1);</Script>
- 属性多余绕过(属性多余也叫双写绕过):<script<script>>alert(1);</sc</script>ript>
- 转换标签:<img src=a οnerrοr=alert(1)>
- 禁用alert:<img src="1" οnerrοr="confirm('xss')">
- JS输出:通过符号闭合js语句,然后通过alert($a)将内容进行输出
- dom输出:了解DOM属性的性质,例如hash是从#后开始获取数据。
- urlxss:
- 如果代码中使用了$_SERVER['PHP_SELF'],就有可能存在XSS漏洞,因为该函数是进行?前面的目录进行提取,所以URL中就存在了用户可以输入的东西,系统就会不安全。
- 过滤特殊字符:
- 如果PHP开启GPC之后,一些特殊的字符就会进行转移,被加上反斜线
- 过滤<>号:name=···'οnmοuseοver='javascript:alert(1)'
- ··· ···
XSS加载payload:
首先应该理解什么是payload,我理解在渗透里面的payload是:例如我们在测试该网站是否有漏洞的时候,会采用一些基础的标签例如:<script></script>等,当我们检测出来漏洞之后,要将漏洞进行利用,所编写的内容就叫做payload(当然,咱们传统渗透,肯定是点到为之,希望各位师傅耗子尾汁,不要做违法乱纪之事)。
- 传统的script标签加载:
- img创建
- 字符连接:就是对长度有限制的时候,通过多个语句,将一句话分开连接到一起,然后输出连接之后的语句