xss秘籍第一式(常弹)

(1)进入自己搭建的靶场,发现有get请求,参数为name,可进行输入,并会将输入的内容显示于网页页面

(2)使用xss的payload进行通关:

http://127.0.0.1/xss/level1.php?name=<script>alert(1)</script>


xss秘籍第二式(构弹)

(1)进入自己搭建的靶场,发现仍然有get请求,并为keyword=test

(2)使用F12或者调用ctrl+shift+i调出网页源代码查看栏,对可输入的地方进行查看,发现输入框是一个value值的输入,然后我们进行js恶意代码拼接

(3)加载payload:如下,一边进行js代码调试,一边进行查看,顺利通关

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


xss秘籍第三式(绕函弹)

(1)查看页面,仍然是get型请求,会与第二关有什么不同呢?我们查看源代码:

(2)尝试着会value的值进行js恶意代码输入,发现页面并没有弹框,那应该怎么办呢?

"/><img src=# onerror=alert(1)/>//

(3)将payload修改一下,发现并没有什么用,但是,如果将payload修改为:

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

上述并不可用,大概是后端使用了htmlspecialchars函数进行过滤,因此我们可以使用不带有尖括号的特殊字符进行尝试:

如' onmouseover='javascript:alert(1)

但为什么要这要做呢?,如果换成" onmouseover=" javascript:alert(1) ,却并不会成功

这是因为,<input type='text' value=' &#039 onmouseover=&#039 javascript:alert(1)'>

只有使用单引号,转换出来的&#039才有意义


xss秘籍第四式(构绕函弹)

(1)来到第四关卡,发现使用第三关的payload已经不再起作用了,那我们应该怎么办呢?此时思考一下,它的源代码肯定也是如此不仅对<>括号进行了过滤,而且还进行了htmlspecialchars()函数过滤,那我们是否还是可以不输入<>,并且根据input的标签进行js构造.

(2)输入payload如下:

" oninput='alert(1)'

" onmouseover='alert(1)'

这样,我们的第四关就通关成功啦!


xss秘籍第五关 (闭新java弹)

(1)来到第五关卡,仍然和前面的关卡十分相似,这个时候,基于越来越难的道理,我们首先尝试一下输入和第四关一样的payload

(2)发现过滤了on,那我们应该如何避免过滤on呢,尝试使用大小写转换,发现仍然对on进行了过滤

(3)那我们可以试试对这个标签使用编码的方式进行绕过过滤,发现网页似乎无法识别,这个时候不要灰心,我们再把思维放得简单一点,不使用on的点击事件,我们回到最初的最简单的想法,尝试使用一下<>进行操作,似乎并没有进行转义或是过滤。,尝试一下的payload:

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

(4)似乎发现了被单独弥留下来的一个超链接版的xss代码,我们点击进行尝试,很不错,这个链接尽然弹出了xss代码


xss秘籍第六关(大小写)

(1)这次我们直接进入主题

(2)构造payload,绕过对href的过滤,如下所示:变换大小写

"/><a Href='javascript:alert(1)'>a</a>//


xss秘籍第七关(重复写)

(1)这一关是直接做了关键字的过滤操作,我们无法使用href,src等触发xss的恶意js

(2)思考一下,是否可以使用别的不使用这些标签也可以触发xss的payload呢?但是连script标签也被过滤了!!使用大小写仍然无法过滤,那我们是否可以使用重复写标签进行xss攻击呢?构造payload如下所示,发现恶意js成功执行

"/><ScrscriptipT>alert(1)</ScriscriptPT>//<


xss秘籍第八关(DOM)

(1)进入第八关卡,发现这一关非常可能属于Dom型xss,因此我们需要根据友情链接进行恶意js的构造

(2)javascript被过滤了,那试试大小写或者重复写,似乎都是无法弹框的,那我们需要换个思路,将这个a标签闭合,再重新使用新的js标签,但是,经过尝试,我们会发现,这个不仅无法重复写,也无法使用大小写进行绕过。

(3)尝试对javascript这个函数的关键部分进行编码操作,无论是16进制编码还是Unicode编码均可以


xss秘籍第九关(代码审计)

                                                                                                                                                            (1)当进入第九关的时候,我们需要开始代码审计了。从图中可以看出这一栏不仅对代码进行了过滤,而且还在里面加了http的暗箱操作,如果没有"http://"这几个字符,就返回链接不合法。

(2)因此可以输入如下payload:r(是Unicode编码,r的化身)%0d(空格的url编码)

javascript:%0dhttp://www.xixi.com%0dalert(1)


xss秘籍第十关(改类型)

(1)进入第十关

<input name="t_sort"  value="x&t_sort="type="text" onclick="alert(1)" type="hidden">

居然要get两个参数。这可是盲猜都猜不到的,然后,似乎只过滤了尖括号的样子,因此可以随意构造,type是为了让页面展现出一个输入框,一点击就会弹出alert

我们试试构造别的payload:

发现输入的文本都无法显示,这样就可以猜测出来,这里只能改变一下keyword的类型,type=text


xss秘籍第十一关(改Refere)

从第九关开始,就需要代码审计了,那么,让我们一起来看看第十一关做了哪些代码上的限制吧!

$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];//将payload从http头的referer栏获取过来,注意,这就是最重要的,谁也不知道我们需要从referer构造payload
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."

首先,从代码可以发现,过滤了尖括号与使用了htmlspecialchars函数,t_sort的值来自 上一个连接跳转的地址,所以我们直接抓包把referer里绕过,23&t_sort="type="text" onclick="alert(1)

(1)在第十关完成的瞬间,我们使用burp抓取数据包

(2)然后修改referer这一栏的为我们的payload,payload可以与第十关的相同,可以发现顺利进入了第十一关,并且也有弹出一个输入的text格式框

(3)此时只要点击一下那个text输入框,我们就能顺利通关!


xss秘籍第十二关(改User-Agent)

(1)来到第12关,我们发现这个界面似乎与11关无比的雷同。

(2)代码审计,发现与11关唯一不同的就是这次需要输入的payload来源不再是refer了,而是user-agent

(3)我们按照上一次11关的过关实验方法,修改user-agent来试试xss,发现同样的方法也是OK的,即:在11关过关的时候抓包,修改我们的User-Agent头,然后直接在burp里改为如下payload即可:

keyword=123&t_sort="type="text" onclick="alert(1)


xss秘籍第十三关(改cookie)

(1)通过第11、12关的经验,我们已经成功地破解了其中的奥义,就是根据代码从各个地方注入xss语句,现在继续观察一下第13关的代码

(2)可以看到,这段代码中,添加了传说中的cookie,就是我们需要输入的payload需要在cookie内构造。使用和11、12关同样的方法,注入xss语句

(3)放行数据包,顺利通关!


xss秘籍第十四关(略。。。)

(1)在代码审计后,才突然发现14关有点与众不同,它的页面是这样的,而且还一直在加载中

(2)反正都不会弹alert(1),干脆就直接进入15关吧!哈哈哈哈!


xss秘籍第十五关(文件包含)

(1)可以很明显的发现,这一关只有一个src,加载了一张图片,并告诉你:想个办法自己走出去吧!

(2)似乎存在文件包含漏洞,因为这里面php代码echo了一个ng-include的属性,并把图片资源加载了进来!而我们已知的文件包含版xss又在哪里呢?让我们重新回到第一关,在第一关是个特别简单的什么也没有过滤过的xss文件,我们只要将其包含过来就可以通关成功了!我们直接输入如下payload就可以通关成功!

http://127.0.0.1/xss/level15.php?src='level1.php?name=<script>alert(1)</script>'

xss靶场大通关(持续更新ing)的更多相关文章

  1. Linux命令(持续更新ing)

    *.命令语法:  a.在进行参数设定时,通常为“-”号,若为完整参数名称,则输入“--”符号;  b.指令太长的时候,可以使用“\”符号使指令连续到下一行;  c.各种符号的意义:    ''     ...

  2. Python常用组件、命令大总结(持续更新)

    Python开发常用组件.命令(干货) 持续更新中-关注公众号"轻松学编程"了解更多. 1.生成6位数字随机验证码 import random import string def ...

  3. FireFox所支持的全部标签(持续更新ing)

    近期研究上各个浏览器的差别,得到一些资料,FireFox眼下所支持的全部标签类型,持续更新,供大家參考和学习,不喜勿喷哦 http://mxr.mozilla.org/seamonkey/source ...

  4. 大白话strom——问题收集(持续更新ing)

    本文导读: 1.基于storm的应用 2.storm的单点故障解决 3.strom与算法的结合学习4.杂记——常见问题的解答5.http://www.blogchong.com/catalog.asp ...

  5. Python:常见错误集锦(持续更新ing)

    初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...

  6. 生活小插曲(长篇连载,持续更新ing)^_^

    这个帖子,长期记录一些小小的生活插曲 在北京朋友开店了-关于同学开快餐店的故事.今天下午听说这个朋友在附近开了一个店,下午5点多吧,出门去他那里去了.走路过去的.在那里聊了将近一个小时吧.对最近我们自 ...

  7. java高级&资深&专家面试题-行走江湖必备-持续更新ing

    行走江湖必备一份面试题,这里给大家整理了一套.0面试官最喜欢问的问题或者出场率较高的面试题,助校招或者社招路上的你一臂之力! 首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同 ...

  8. 网页样式——各种炫酷效果持续更新ing...

    1.evanyou效果-彩带的实现,效果如下 注:这个主要用的是Canvas画布实现的,点击背景绘制新的图形,代码如下: /*Html代码:*/ <canvas id=">< ...

  9. 常用js功能函数汇总(持续更新ing)

    ////////////////////获取元素属性/////////////////// function getStyle(obj,name) { if(obj.currentStyle) { r ...

随机推荐

  1. OkHttp Client Ignore certificate

    import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.net.ssl.*; i ...

  2. 一篇文章图文并茂地带你轻松学完 JavaScript 闭包

    JavaScript 闭包 为了更好地理解 JavaScript 闭包,笔者将先从 JavaScript 执行上下文以及 JavaScript 作用域开始写起,如果读者对这方面已经了解了,可以直接跳过 ...

  3. 深入了解gradle和maven的区别

    目录 简介 gradle和maven的比较 可扩展性 性能比较 依赖的区别 从maven迁移到gradle 自动转换 转换依赖 转换repositories仓库 控制依赖的版本 多模块项目 profi ...

  4. python程序配置守护进程

    参考博客 python Supervisor 使用与配置_a35155的博客-CSDN博客 Ubuntu系统下:apt-get install supervisor,通过这种方式安装后,自动设置为开机 ...

  5. select用法&原理详解(源码剖析)(转)

    今天遇到了在select()前后fd_set的变化问题,查了好久终于找到一个有用的帖子了,很赞,很详细!!原文链接如下: select用法&原理详解(源码剖析) 我的问题是: 如下图示:在se ...

  6. 从.NET看微软的焦虑

    节日没事,就像聊聊微软的NET. 1.孩子静悄悄,必定在作妖 截止目前,微软的市值达到1.85万亿美元,按说,这样一个宙斯级的巨无霸应该过的非常舒坦, 但是,和微软市值成鲜明的反差,我们从.NET的发 ...

  7. Python_K-means算法

    from sklearn import cluster [centroid, label, inertia] = cluster.k_means(data_to_be_classified, num_ ...

  8. TypeScript 4.1 Quick Start Tutorials

    TypeScript 4.1 Quick Start Tutorials TypeScript 4.1 快速上手教程 https://typescript-41-quick-start-tutoria ...

  9. Tailwind CSS in Action

    Tailwind CSS in Action Tailwind CSS是一个高度可定制的低级CSS框架,它为您提供了构建定制设计所需的所有构造块,而无需烦恼要覆盖的烦人的自以为是的样式 https:/ ...

  10. Python Coding Interview

    Python Coding Interview Python Advanced Use enumerate() to iterate over both indices and values Debu ...