xss-labs通关,xss漏洞详解


前言

XSS 的原理是 WEB 应用程序混淆了用户提交的数据和 JS 脚本的代码边界,导致浏览器把用户的输入当成了 JS 代码来执行。XSS 的攻击对象是浏览器一端的普通用户。

XSS 又叫 CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往 Web 页面里插入恶意 html 代码,当用户浏览该页之时,嵌入其中 Web 里面的 html 代码会被执行,从而达到恶意用户的特殊目的。它与 SQL 注入攻击类似,SQL 注入攻击中以 SQL 语句作为用户输入,从而达到查询 / 修改 / 删除数据的目的,而在 xss 攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。


一、XSS详解

XSS分为:存储型 、反射型 、DOM型XSS

存储型

存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie

反射型

非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户的Cookie信息。

DOM型

不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。

二、xss-labs通关

第1关:
通过get传参然后显示在页面,可以判断是反射型xss,而且没有做任何过滤,可直接在url中最后面加入代码

<script>alert(1)</script>

在这里插入图片描述

第2关:
正常输入是不行的,因为源码中加了个引号
在这里插入图片描述
既然使用引号,我们就可以加个引号。让他闭合即可

"><script>alert(1)</script>

在这里插入图片描述

第3关:
这里要了解一下HTML中的onclick 事件
参考连接:https://www.runoob.com/jsref/event-onclick.html
看页面源码发现又是引号
在这里插入图片描述
按照第一关的闭合试试,发现还是不行,代码仍然在引号里面
在这里插入图片描述
看源码是单引号闭合的,但是这里看到尖括号被实例化

在这里插入图片描述
用onclick鼠标点击事件
在这里插入图片描述

第4关:
分析源码,尖括号被做了替换
在这里插入图片描述
跟上一关一样,利用onclick事件,闭合换成了单引号
在这里插入图片描述

第5关:
分析源码,仍是做了替换,on也被替换成了,且全部转为小写
在这里插入图片描述
这里就要用到另一标签了

"> <a href=javascript:alert('xss')>xss</a>//

看到代码被嵌入到了html源码中
在这里插入图片描述
点击页面上的xss即可
在这里插入图片描述

第6关:
分析源码,闭合为双引号,全都做了替换,但是发现没有限制大小写
在这里插入图片描述
大小写绕过,s换成S,前面的h2闭合,两种都可以

"/h2> <Script>alert('xss')</Script>
"> <a Href=javascript:alert('xss')>xss</a>//

在这里插入图片描述

第7关:
双写绕过

" oonnfocus=javascscriptript:alert('xss')//
"><scscriptript>alert("xss")</scscriptript>//
"> <a hhrefref=javascscriptript:alert('xss')>xss</a>//

在这里插入图片描述

第8关:
分析源码,前面的都用不了
在这里插入图片描述
这关需要进行编码转换,将 javascript:alert(‘xss’) 转化为实体字符

在这里插入图片描述

第9关:
继续使用上关的编码,发现不可以
在这里插入图片描述
查看源码,源码里检测是否含有http://那就在里面加个http://
在这里插入图片描述

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;//http://
前面的编码后就成了
<a href="javascript:alert('xss')//http://">友情链接</a>

在这里插入图片描述

第10关:
这里要连接一下HTML中hidden影藏属性,看源码可以找到表单中有三个影藏属性
在这里插入图片描述
将其中一个type的值改为text,后面加上onclick即可

在这里插入图片描述
在这里插入图片描述

第11关:
referer检查,这里需要用bp修改一下数据包,伪造一个referer再发送出去
在这里插入图片描述
之后就可以看到一个文本框
在这里插入图片描述

第12关:

第13关:

第14关:

第15关:

第16关:

第17关:

第18关:

第19关:

第20关:

总结

1-9关都是一些绕过方法,感觉有点像sql注入,绕过的方法有大小写转换,字符编码,双写,HTML特殊表单,onclick, <a href=” “//,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青衫木马牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值