XSS介绍及原理

XSS漏洞介绍:
XSS漏洞通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
XSS漏洞原理:
HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
image.png
image.png
查看源码:
image.png
image.png

XSS的成因

image.png

XSS漏洞的种类

反射型
存储型
DOM型

反射型XSS

反射型XSS定义是,如果URL地址当中的恶意参数会直接被输出到页面中,导致攻击代码被触发,便称之为反射型XSS。
image.png
查看源码:
low级别
image.png
medium级别
image.png
high级别
image.png
通过正则表达式,匹配到的设置为空
绕过编写 XSS漏洞 - 图10
image.png

存储型XSS

low级别
image.png
使用sql语句插入了一个数据,当时并没有进行一个过滤的设置,所以说,在数据库中的数据在页面种响应时,会造成XSS攻击
medium级别
image.png
发现只对message的值进行处理,没有对name的值进行处理,所以说,在name种插入xss代码就可以进行绕过
high级别
image.png
对message进行addsloshes进行处理,添加反斜杠,但是只对name及逆行preg_replace进行处理
所以

漏洞利用

image.png
刷新显示
image.png

YXCMS留言版

在留言的地方
image.png
image.png

DOM-based

XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。
image.png
image.png
js代码,解析使用option进行单选框,选择需要的数据
high级别
image.png
使用case的形式取值,然后将值写入html代码中,比较难绕过
image.png
image.png

XSS的利用

最常见之窃取用户cookie:
当cookie没有设置HttpOnly属性时,可以通过javascript代码创建img,script,iframe等标签,并把src属性设置为自己部署的xss cookie接收平台,以url拼接document.cookie的形式把浏览页面的用户的cookie传递给自己
界面劫持/伪造界面:
攻击者可以构造html/css/javascript代码,制作出一个与原网站风格相似的登录界面,或者把一些html元素进行移动/覆盖/遮挡,或者利用javascript的特性,重新定义页面的函数和变量,使得原来的功能被墓改
重定向页面:
一般用于导流量,常见于黑产给菠菜网站导流
CC攻击,获取敏感信息,结合CSRF漏洞等等

XSS代码实战

VAuditDemo

进行插入xss语句
image.png
查看源码
image.png
复现流程
image.png

YXCMS前台XSS漏洞

整体流程
image.png
后台查看
image.png
image.png
查看源码:
image.png
image.png
image.png
image.png
将输入的字符串进行替换,但是只替换了html标记,和script的标记
image.png

复现流程

image.png
其中%26gt;可以生成一个>