xss入门以及通关xss-labs

一、XSS全称:跨站脚本(Cross Site Scripting) ,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS;攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的

二、xss原理:服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的

三、xss分类:

1.反射型(非持久型):反射型XSS,又称非持久型XSS,攻击相对于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,恶意代码并没有保存在目标网站,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本

2.存储型(持久性):存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库。当下一次从数据库中获取该数据时程序也未对其进行过滤,页面再次执行XSS代码持续攻击用户。存储型XSS漏洞大多出现在留言板、评论区,用户提交了包含XSS代码的留言到数据库,当目标用户查询留言时,那些留言的内容会从服务器解析之后加载出来。

3.DOM型(非持久性):DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式,DOM-XSS简单理解就是不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题。

四、漏洞危害:

1.窃取用户Cookie
2.后台增删改文章
3.XSS钓鱼攻击
4.利用XSS漏洞进行传播和修改网页代码
5.XSS蠕虫攻击
6.网站重定向
7.获取键盘记录
8.获取用户信息等

XSS-labs通关教程

  1. 第一关

黑盒:

看到这里有个get传参果断进行测试

Payload:

/level1.php?name=<script>alert( xss)</script>wu'ao'guo

白盒:查看源码

2.第二关

黑盒:先进行输入发现有文字更改查看源码

找到更改的元素可以进行闭合来达到xss

Payload:”> <script>alert(‘xss’)</script>

白盒:

也是get传参和拼接但将html进行了实体转化如果实体转化是在script和input里面是可以突破的

  1. 第三关

黑盒:继续第二关的姿势发现失败查看源码

< >都被转义了

换个姿势绕过这里用到了onfocus事件绕过' οnfοcus=javascript:alert(xss) '

还可以使用onblur事件绕过

onblur和onfocus一个是光标离开事件一个是光标进入事件

白盒:

4.第四关

黑盒:继续上一关的操作发现失败

白盒:

  1. 第五关

黑盒:重复上一关的payload

a herf标签法

直接构造payload:"> <a href=javascript:alert()>xxx</a> <"

herf的属性当a被点击后就会触发链接

白盒:

  1. 第六关

黑盒:

href被替换

白盒:

发现script、on、src、data、href全部被替换尝试大小写发现无过滤进行直接构造payload

:”> <sCript>alert(‘xss’)></sCript> <”

白盒:

7.第七关

黑盒:

发现大小写被转化成小写并且script被删除这样就用上了双写绕过如oonn中间的on被删除就剩下onpayload:"oonnfocus=javascscriptrip:alert('xss') "

白盒:

第八题

黑盒:img标签的姿势”(1)当鼠标移出图片的时候执行属性onmouseout

  1. 当鼠标移动到图片的时候执行的属性onmouseover

再来看看data的,这里利用iframe标签,插入一个标签data:text/html;base64, 将后面的内容进行base64解码,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+进行base64解码后是<script>alert()</script>

"> <iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+"> <"

被替换了无法进行双写和替换双引号也被替换了可以利用href的隐藏属性:自动Unicode解码JavaScript:alert('xss')

白盒:

  1. 第九题

黑盒:

直接白盒看源码

白盒:

strpos函数:查找字符串第一次出现的位置

当false等于false的时候(就是传入的值没有http://)就会执行if,为了防止false===false,我们需要向传入的值里面添加http://并用注释符注释掉否则会执行不了无法弹窗,让函数strpos返回一个数字,构造payload:javascript:alert('xss')/* http:// */

  1. 第十题

黑盒:" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> j

先测试一波看看什么被过滤掉了全部被实体化了直接白盒

白盒:

  1. 第十一题

黑盒:发现有四个隐藏的函数不管怎么搞都无法找到xss漏洞直接审计源码

白盒:

构造一个Referer头:Referer: " οnfοcus=javascript:alert() type="text

  1. 第十二题

白盒:直接进行代码审计

  1. 第十三题

白盒:

构造cookie信息:

  1. 第十四题

白盒:HTML <iframe> 标签:作用是标记一个内联框架!!一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。

查看源码通过iframe标签引入了一个http://exofvoewer.org, 结合乌云爆出的漏洞利用文件上传一个含xss的图片然后触发图片

  1. 第十五题

ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号

先注释掉’然后将src放到第一题然后进行xss

  1. 第十六题

果然给过掉了,空格可以用回车来代替绕过,回车的url编码是%0a,再配合上不用/的<img>、<details>、<svg>等标签,更多标签可参考XSS常见的触发标签

  1. 第十七题

,传入的参数都出现在了embed标签上,打开后缀名为swf的文件(FLASH插件的文件,现在很多浏览器都不支持FLASH插件了)

embed标签可以理解为定义了一个区域,可以放图片、视频、音频等内容,但是呢相对于他们,embed标签打开不了文件的时候就会没有显示的区域在,他们就能有块错误的区域 

再看一下onfocus和onclick事件,这两事件是等价的,都是一触即发

  1. 第十八题

和第十七题一个思路

  1. 第十九题

同第十八题

  1. 第二十题

反编译不太熟练直接拿大佬的payload

?arg01=id&arg02=xss\"))}catch(e){alert(1)}//%26width=123%26height=123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值