欢迎光临
我们一直在努力

xss-labs-master通关记录(1-10)

XSS概述

xss跨站脚本攻击,本质是把用户的输入当作代码执行(拼接恶意的HTML代码,主要是js)

常用的js调用方式包括标签法,伪协议法和事件法

1.标签法

<script>alert(1)<script>

2.伪协议法

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

其中href=javascript:xxx 是伪协议,作用是:不跳转页面,直接执行后面的JS代码

3.事件法

" onfocus=alert(1) //
" onerror=alert(1) //

靶场通关记录:

level1

猜测test为payload,直接进行尝试payload:

?name=<script>alert(1)</script>

通过:

level2

test为文本框输入的内容,尝试onfocus关键词。查看网页源码,发现为双引号闭合

构建payload:

" onfocus=alert(1) //

输入后没反应,但再次点击输入框时弹出:

通关。。。。。了吗?

发现小问题,这个弹窗一直弹,考虑能不能改进一下,尝试采用标签法:

"/><script>alert(1)</script>
#双引号和/>用于源码闭合

通关并只弹一次!解决

level3

查看网页源码(因为xss的特性,根据源码构建payload是合理步骤)

尝试出入123,发现出现位置。于是采用和第二关相同的payload试一下,结果并未通关,查看源码发现未能进行字符串逃逸:

注意到输入的颜色与原本的符号不同,怀疑进行了转译操作,查看网页URL后的GET传参为:

level3.php?keyword="%2F><script>alert%281%29<%2Fscript>&submit=搜索

有点懵逼,尝试几番后准备观摩一下其他大佬的解题思路,发现我们的level3好像不一样!!其他的level3好像是单引号闭合,我怎么直接是双引号。没事,多尝试一下,万一能力大转飞呢,我也试试单引号。

果然被转译了,但是最后貌似出现了一个单引号?是否意味着单引号没有被转译?

尝试构造存在单引号,但不存在<>和/的payload

' onfocus=alert(1) //

通关!

但是怎么让它停止弹窗呢?有没有更好的办法呢

成功构造payload:

' onfocus='alert(1);this.blur()' //

blur:让输入框失去焦点。想要只弹一次就添加语句 this.blur()

level4

用第三关的payload试一下:' οnfοcus='alert(1);this.blur()' //

看来又被转译了,不过不太清楚哪些字符被转译了

继续尝试payload:"/><script>alert(1)</script>

发现”/>都被过滤了,尝试:'/scriptalert(1)/script

发现尖括号被过滤了,没有尖括号的只有事件法,而且源码是用双引号闭合的(感觉思路有点不对?)

构造payload:

" onfocus="alert(1);this.blur()" //

发现成功闭合value并添加onfocus,成功通关

发现最后的“和//并没生效,优化payload后:

" onfocus="alert(1);this.blur()

依然能通关!

level5

查看源码依旧双引号闭合,用第四关的payload:" οnfοcus="alert(1);this.blur()" // 继续尝试

发现onfocus关键词被修改了,猜测该关卡对一些敏感输入进行了处理,但双引号成功闭合了

尝试后发现script也被过滤了,改大小写也不好使

好想让我用标签法啊,不得不试试标签法:

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

点击test,成功通关!

level6

双引号闭合,用第五关的payload:" ><a href=javascript:alert(1)>test</a>尝试

发现href被过滤了,而且后面的闭合貌似也有点问题,怀疑是过滤了什么符号

测试发现script和onfocus也被过滤了

大小写尝试:

" Onfocus="alert(1);this.blur()" //

成功过关!(看来没有检验大小写)

进一步测试发现,payload

" ><a Href=javascript:alert(1)>test</a>
"/><Script>alert(1)</Script>
" Onfocus="alert(1);this.blur()" //

均可过关。该关卡单纯考大小写

level7

依旧双引号闭合,继续尝试"/><script>alert(1)</script>

好家伙,script直接整个删掉了。改大小写也被过滤了

尝试" οnfοcus="alert(1);this.blur()" //

发现on被过滤了,再尝试" ><a href=javascript:alert(1)>test</a>发现href被过滤了

至此,script,onfocus和href均被过滤,且大小写也失败了

是否可以通过双写进行绕过?怀疑检测到相关词汇就直接删除,尝试构造双写payload

"/><scrscriptipt>alert(1)</scrscriptipt>
" oonnfocus="alert(1);this.blur()" //

均能直接过关!

但双写href的payload却无法成功

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

源码中显示为:

忘了这里也有个script,双写绕过!

" ><a hrhrefef=javascrscriptipt:alert(1)>test</a>

成功!

level8

有个链接,点进去看看

发现url变成了注入的内容。查看网页源码内容:

输入好像会写入网页的href标签中,构造一个标签payload试试

""javascript:alert(1)>

尝试失败,查看源码发现为:

好家伙,&quot是将引号进行了转译,script关键词也被处理了。

on,herf也被添加了下划线进行了过滤。尝试后发现大小写也无法绕过。

有点没招了。本题存在一个网站自带的href功能,href这里肯定是突破口。但构建的闭合绕过语句均被过滤了,会不会因为是href本身有什么特点是用于突破的呢?

查阅发现href可以解析html十六进制实体,尝试构造相关字符编码:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)
#内容为:javascript:aldrt(1)

直接过关!!

(这里lz其实有个小疑问,<a href=javascript:alert(1)>test</a>和<a href=”javascript:alert(1)“>test</a>为什么会有同样的效果呢?在网上查阅相关资料为:在HTML中,属性值通常使用双引号(")或单引号(')括起来,也可以在不包含空格、等号或尖括号等特殊字符时省略引号)

level9

好家伙,我还什么都没做呢,就默认我不合法了(╯▔皿▔)╯直接拿上一关的payload试试

这哥们铁打不动,难道是要另外构造href?进行尝试:

加不出来?看字符颜色怀疑符号被转译了

把鼠标放”在您的链接不合法?有没有!"上,发现这居然直接就是一个网页链接!裂开

既然加不了,是不是要对这个链接进行修改啊?该链接为:

http://192.168.47.226/bachang/xss-labs-master/您的链接不合法?有没有!

在上一关查阅href相关知识时发现href可以直接链接网址url,提示也是链接不合法,是否需要插入合法的网页链接呢?直接拿劳模百度进行尝试:

https://www.baidu.com/

依然不行!怀疑是https的原因,尝试一下http,居然成功了!

瞬间思路打开,应该是需要在注入内容中包含http然后将其注释掉的方式进行,开始尝试。

过程中发现需要包含的内容为http://,构造相关payload:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1) //http://

成功过关!(本关同上一关一样也对关键词进行了过滤)

level10

GET传参,改url。开始尝试。发现输啥都没反应。

有点懵,查看网页源码发现有三个输入参数 : t_link,t_history,t_sort,怀疑这三是突破口,尝试。

?keyword=111&t_link=222&t_history=333&t_sort=444

再查看源码,果然有猫腻!

懂了!keyword不是注入点,t_sort才是!

尝试构造payload:

?keyword=111&t_sort=1"><script>alert(1)<script>

好家伙,居然还过滤了尖括号!考虑用onfocus构造,但又出现一个问题:网页上没有输入框。

于是要手动添加一个输入框(好吧其实是网页把输入框隐藏了,type=hidden就是用于隐藏),修改type类型即可。重构payload:

?keyword=111&t_sort=1" onfocus="alert(1);this.blur()" type="text

成功过关。

赞(0)
未经允许不得转载:171主机测评 » xss-labs-master通关记录(1-10)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址