xss内容总结集及xss-labs靶场

XSS的简介

1.什么是XSS
XSS叫做跨站脚本攻击,是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
2.产生层面
他一一般情况下都是在前端产生的;JavaScript代码能干什么,执行之后就会达到相应的效果。
3.危害影响

  • 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 盗窃企业重要的具有商业价值的资料
  • 非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害者机器向其它网站发起攻击
    4.常出现的场景
    文章发表、评论、留言、注册资料的地方、修改资料的地方等

XSS跨站漏洞原理和分类

反射型

<非持久化,参数型> 攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。比如说搜索框的反射型XSS【在搜索框中提交交PoC[scriptalert(/xss/)/script],点击搜索,即可触发反射型XSS。】

DOM型

基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。
它攻击的payload由于修改受害者浏览器页面的DOM树而执行,==特殊的地方就是payload在浏览器本地修改DOM树而执行,不会传到服务器上,所以这也导致了DOM XSS比较难检测。

存储型

<持久化> 代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。

XSS漏洞验证

我们在验证和检测漏洞的时候,可以使用下面的代码来进行验证,这种代码叫做PoC
1.scriptalert(/xss/)/script
2.scriptalert(/xss/)/scrip
3.scriptprompt('xss')/script

XSS漏洞的黑盒测试

尽可能找到一切用户可控并且能够输出在页面代码中的地方;比如:
URL的每一个参数、URL本身、表单、搜索框、常见业务场景
重灾区:评论区、留言区、个人信息、订单信息等
针对型:站内信、网页即时通讯、私信、意见反馈
存在风险:搜索框、当前目录、图片属性等

XSS的各种bypass技巧

靶场连接:https://pan.xunlei.com/s/VN87yfJhq8fe7rkIUDG_fb7pA1提取码:g98t

第一关:

在这里插入图片描述

这里可以看到提交了值为test的name参数,并且尝试的时候,你给name什么值,他这里都是会显示什么,所以可以看出这里是连接一个get参数,
我们利用上帝视角在查看源码的时候也可以看到他是使用了一个get参数,并且直接输出了,中间没有任何的过滤;所以代表着什么标签都可以执行。
在这里插入图片描述
所以通过给name赋值为< script >alert(1)< /script>可以看到直接过关。
在这里插入图片描述

第二关

在这里插入图片描述
这里依旧尝试先输入aaa来测试一下:
在这里插入图片描述
这里不在是name而变成了keyword,直接F12看源码
在这里插入图片描述
输出可以看见他是输出在values的双引号中,所以我们需要先对双引号进行闭合,然后再加一个新的标签,并且把添加的标签进行闭合,也可以使用点击事件。1"onclick="alert(1)
在这里插入图片描述
在这里插入图片描述

第三关

在这里插入图片描述
敲aaaa试个水,然后F12,看到他还是输出在values上,所以拿上面的那个代码进行输入,测试结果是失败的,他没有办法闭合前面的标签,所以看一下源码
在这里插入图片描述
在这里插入图片描述
这里可以看到使用了一个.htmlspecialchars函数,这个函数的意思是:==将预定义的字符“<”和“>”转换为HTML实体。==所以刚刚输入的那个可以识别为输入的样子,但是编码之后就不可以实现了,所以使用单引号来尝试。a'onclick='alert(1)
在这里插入图片描述

htmlspecialchars函数是指把预定义的字符 “<” (小于)和 “>” (大于)转换为 HTML 实体:
他含有一个参数就是flags,他的作用是规定如何处理引用、无效的编码以及使用那种文档类型
-ENT_COMPAT - 默认。仅编码双引号。
-ENT_QUOTES - 编码双引号和单引号。
-ENT_NOQUOTES - 不编码任何引号。

第四关

在这里插入图片描述
使用< script>alert(1)< /script>标签测试,可以看到输出结果是没有尖括号的,
在这里插入图片描述

查看源码的时候可以看到:他是将“>”,“<”给过滤掉了,那就直接用上一关的a"onclick="alert(1)就可以过关了。
在这里插入图片描述
在这里插入图片描述

第五关在这里插入图片描述

使用script标签试水后的结果:
在这里插入图片描述
查看源码可以看到,他是将script过滤成了scr_ipt;on过滤成了o_n,这里就需要用一些不带on和script标签,可以使用一下a标签。a">\<a href="javascript:alert(1)">aaa\</a>
在这里插入图片描述

第六关

在这里插入图片描述
这里可以看到他的过滤条件在上一关的条件下,还将data和href也过滤了,小写是不可以了,所以尝试一下大写。a">ONCLICK="alert(1)
在这里插入图片描述
在这里插入图片描述

第七关

在这里插入图片描述
在这里插入图片描述
这一关和上一关相似但不一样,他把这些标签都过滤为空值了,使用大写测试不可以,所以用到了重复写的方式来进行绕过。a"oonnclick="alert(1)
在这里插入图片描述

第八关

这一关使用aaa来试水,可以看到他是在a标签里面的,但是他将script过滤掉了,并且尝试了大小写也不可以,,就使用编码来试一下。将“javascript=alert(1)”转换为Unicode编码。&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里有一个知识点单独写成了一个文档:从XSS Playload 学习浏览器解码

第九关

在这里插入图片描述
在这里插入图片描述
这一关也是将一些标签给过滤掉,并且必须含有http://才可以,否则爆出输入不合法,而且他过滤了script,所以可以采用实体编码的方式来写。
在这里插入图片描述
所以这关的答案就是:\&#106;\&#97;\&#118;\&#97;\&#115;\&#99;\&#114;\&#105;\&#112;\&#116;\&#58;\&#97;\&#108;\&#101;\&#114;\&#116;\&#40;\&#49;\&#41;//http://
在这里插入图片描述

第十关

在这里插入图片描述

在这里插入图片描述
F12,给每一个name附一个值,可以看到只有t_sort能将值传进去。然后将第三个的type改为text型,输入点击事件就可以了。

在这里插入图片描述
最终结果是aaa&t_link=aaa&t_history=bbb&t_sort=ccc"type="text"onclick="alert(1)
在这里插入图片描述

第十一关:

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

这个和上一关看的相似但是可以看到这一关不可以接t_sort了,但是接了一个HTTP_REFERE,

HTTP_REFERE也就是从哪个服务器访问

这里就可以利用到火狐的hackbar插件就很好解决。但是在添加hackbar插件的时候,新的版本会需要许可,可以去github上下载旧的版本就可以了。下载链接hackbar
加粗样式

第十二关

在这里插入图片描述
在这里插入图片描述
这里同样可以看到和上一关基本相似,唯一不同的是,这里不是HTTP_REFERE,而是HTTP_USER_AGENT,同样可以使用hackbar插件进行操作。勾选UserAgent。然后输入aaa"type="text"onclick="alert(1)
在这里插入图片描述

第十三关

在这里插入图片描述
在这里插入图片描述
这一关可以看到他使用的cookie,也同样使用hackbar来闯关;但是在够选的时后进行测试输入aaa的时候他没有输入进去。
在这里插入图片描述
查看源码的时候,cookie括号里面有一个user,而user要求输入的格式是callme,所以使用callme的方式来输入试试。
在这里插入图片描述
查看代码的时候就可以看见是输入进去的。
在这里插入图片描述
输入进去的话,那我们就可以前两关一样,闭合,然后转换成text,然后点击事件。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值