xsschallenge靶场通关-1~13

第一关

这里将test改成1发生没有过滤可以直接输出,那么可以直接使用代码进行注入测试了

  输入代码 

<script>alert(/xss/)</script>

直接注入xss代码将1换成我们注入的代码,即可通关。

 第二关

先按照常规思路注入代码,看是否可行 ,发现没有找到。

 那就F12打开网页源码

 发现str需要闭合一下,那我们就来闭合一下。输入

”><script>alert('6')</script>

 将这个代码闭合下。 ://  >是为了闭合include左边的<    "是为了闭合value右边的"

 第三关

先输入一个<>测试一下发现值被赋了"和”>

感觉和第二题差不多,但实际想着没那么简单的情况下,我们打开了源码进行查看,发现使用了

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

htmlspecialchars() 预定义的字符分别是:

&=&

"="

'='

<=>

例如 htmlspecialchars("&") 将返回 &amp;,这样在 HTML 中显示时就不会被解析为标签的开始。

所以我们这次就是用事件类型进行注入。

' οnmοuseοver='alert(1)  //由于是使用多个onmouseover注入,需要滑动一下鼠标才能实现。//这里的' onmouseover是为了在源码中value的左边成为一对, 'alert是为了和左边的'划成一对,'的作用是为了定义字符串的边界,这样才不会被htmlspecialchars函数转换为 HTML 实体。

第四关

做的我有点烦了,这边直入主题,先输入一个<> 返现和上一关没什么两样,打开源码,情况基本和上一关差不多,什么html乱七八糟的,

 

 查看以上代码,发现意思大致差不多,就是一个转义,第三题的单引号(‘)在前面,所以这次事件输入,改为" οnmοuseοver="alert(1)   使得双引号对称,最终实现效果。

 以下是补齐以后的源码。

第五关 

直接对源码进行解析  继而得出大小写,on 、script  都无法使用

 由于这里只对script进行过滤,所以我们可以使用伪协议来绕过过滤。输入代码,生成超链接即可成功。

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

 第六关

这里使用伪协议对靶场进行测试,发现不行

 这里打开源码发现

1:所有的输入没有规定只能小写输出(没有之前的严格,那这次我们可以以这个为突破口)

2:输入<script会输出为scr_ipt

3:输入on会输出为o_n

4:输入src会输出sr_c

5:输入data会输出data_

6:输入href会输出hr_ef

这里我们使用混淆大小写的方式绕过。

输入代码:

"><sCript>alert(1)<sCript> 

第七关

上来第一步,拿个大小写碰碰运气测试测试,结果不行

 那就打开源码看看吧!

 基本上差不多 

1:输出统一都为小写

2:script 为空值

3:on 为空值

4:src也为空值

5:data也为空值

6:href输出也为空(那就用不了伪协议了)

这里我们采用重复注入的方式对靶机进行注入

输入代码

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

 第八关

这里旁边有一个超链接 我们点进去试试。

像是把输入的值当成a标签里的herf属性进行跳转。

 下面我们输入csdn的网址进去试试,发现可以跳转。

查看了网站源码是直接进行输出的,那我们试试伪链接看看能不能输出。

 使用伪链接进行输出 结果还是被滤了。

那么废话不多说,直接开始尝试转码,转码后直接通关。

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;

 这里通关了之后,我们来看下系统源码

$str = strtolower($_GET["keyword"]); // 将获取到的 "keyword" 参数转换为小写
$str2 = str_replace("script","scr_ipt",$str); // 将字符串中的 "script" 替换为 "scr_ipt"
$str3 = str_replace("on","o_n",$str2); // 将字符串中的 "on" 替换为 "o_n"
$str4 = str_replace("src","sr_c",$str3); // 将字符串中的 "src" 替换为 "sr_c"
$str5 = str_replace("data","da_ta",$str4); // 将字符串中的 "data" 替换为 "da_ta"
$str6 = str_replace("href","hr_ef",$str5); // 将字符串中的 "href" 替换为 "hr_ef"
$str7 = str_replace('"','&quot',$str6); // 将字符串中的双引号替换为 HTML 实体 &quot;

第九关

这里抱着侥幸的态度,试一下上一次的代码,但是看右下角

 直接就没有输出,而且还说我的链接不合法

 这次尝试使用http://sougou.com/进行访问,显示访问成功,结合两次源码结果返回。可以试试将源码加上http进行绕过攻击。

 将伪协议转换码放在前,http的网址放在后面,记住要加 // 进行连接

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;//http://www.sougou.com

注入后我们先添加,暂时不点击链接,观察源码这边已经成功绕过。点击链接发现成功绕过。

 既然已经打开了那么就打开源码看看分析一下情况啦。

 过滤处就不单独列开了,和上面一致。

个人认为是,这里唯一不同的是在下面TF条件中,增加了需要增加http://这个要求。文中的意思是如果没有http就要显示链接不合法这里,如果包含,则直接去下一条,是整个链接连接在一块。

 第十关

输入个111看一下结果,打开源码发现3个隐藏文件。

 我们用text替换hidden,使得表格显现出来。

 

 这边没有keyword,标签名都是以t_什么什么结尾的,所以我们尝试在文本框输入

t_sort="type="text" onmouseover="alert(1) (不要问我为什么一上来就写sort,我也是一个个试过来的)
 

查看源码,发现被正常拼接在一起了。这里我们点回车,成功执行。

这边进行代码分析 大差不差,不出我们所想。keyword被输出t_short (就简单来说,他只接受t_sort)

再就是$22这句代码就是将$11中的<>都给替换成空值,再将结果存储在$str33当中。

 第十一关

来到第十一关,在查看源代码之后,发现多了一行name为t_ref的input输入库

看了一下就比上一关多了一个t_ref ,另外这个t_ref框里的value似乎是上一个关卡的网站。

 那我们这里就在hakbar的数据里对Referer进行添加值。随后点击一下弹出的输入框即通关完成。

输入代码。

123”onclick="javascript":alert(1)"type="

第十二关

打开源码,看到这里比上一关多了一个user agent,结合上一关的思路,我们先按上一关的手法试试这个。

 这里先打一些东西进去探探路。

 打开源码,和我们想的差不多。基本是照单输出了。

然后这里使用bp进行抓包

基本上和输入输出的差不多

 然后对其进行注入,输入代码。

 '"onblur="alert(/1/)"type="text"//'"type="hidden">

然后把url复制到浏览器后,点击回车。

最后将url复制到浏览器中即可执行。

 源码分析:

也没什么好说的,和第12关基本一样,只是注入标签从herf变成了user_age了。

这里使用bp抓包抓一下在复制进去就可以了。 

第十三关

这里看到原来的UA变成了cookie,这个我们按照上一关的思路去试一试。

这里成功抓到了包。和上一关基本一样,就是抓的头不一样。

 ​​

 然后把上一关的代码替换掉这个就可以了,注意的是需要将代码补齐,否则不运行。

 '"onblur="alert(/1/)"type="text"//'"type="hidden">

 源码分析,也没什么。就是注入的头部变成了cookie,再就是注意前面的单双引号补全即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值