xss靶场大通关(持续更新ing)

您所在的位置:网站首页 食物怎么搭配更有营养 xss靶场大通关(持续更新ing)

xss靶场大通关(持续更新ing)

2024-01-21 04:22| 来源: 网络整理| 查看: 265

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

 

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

 

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

 

      xss秘籍第二式(构弹) (1)进入自己搭建的靶场,发现仍然有get请求,并为keyword=test

 

 

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

 

 

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

"/>alert(1)//

 

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

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

"/>//

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

 

 

"/>alert(1)//

 

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

 

如' onmouseover='javascript:alert(1)

 

 

但为什么要这要做呢?,如果换成" onmouseover=" javascript:alert(1) ,却并不会成功 这是因为, 只有使用单引号,转换出来的'才有意义       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:

 

" />

 

 

 

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

 

 

 

 

xss秘籍第六关(大小写) (1)这次我们直接进入主题

 

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

 

"/>a//

 

 

 

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

 

 

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

 

 "/>alert(1)//

 

居然要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("



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3