XSS闯关日记

Posted 西柚网安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS闯关日记相关的知识,希望对你有一定的参考价值。

 XSS闯关笔记

西安邮电大学

逆·流沙团队成员

No.1

Xss第一关



No.2

Xss第二关

查看源码发现可以在value值这里注入


XSS闯关日记

对其闭合再注入

XSS闯关日记


No.3

Xss第三关

同样位置:


XSS闯关日记

注入后发现后端使用了htmlspecialchars函数过滤:转义双引号和尖括号

XSS闯关日记

使用不带过滤符号的函数,需要移动鼠标才会执行

XSS闯关日记

No.4

Xss第四关

XSS闯关日记

跟第三关差不多,查看源码会发现只是把尖括号换成空

使用类似的payload(需要点击边框才会执行)


XSS闯关日记

No.5

Xss第五关

XSS闯关日记
XSS闯关日记

过滤了script标签和on,试试其他方式,用a标签通过

XSS闯关日记


No.6

Xss第六关

和上方一样的过滤


XSS闯关日记

源码发现没有了strtolow()函数,尝试大小写绕过


XSS闯关日记

No.7

Xss第七关


XSS闯关日记

这里直接过滤为空,可以试试复写


XSS闯关日记
XSS闯关日记

No.8

Xss第八关

XSS闯关日记

想必到这里,该过滤的都差不多了,这个的突破点在这个链接这里,此处有个a标签,会把输入的内容作为标签内容


XSS闯关日记

但是script被过滤了,可以用html的实体编码方式绕过

Payload:jav

ascript:alert('xss');

或者图中的这个

XSS闯关日记

No.9

Xss第九关

在源码里发现了strpos()函数,如果输入的内容中没有http://会弹出你的输入不合法

XSS闯关日记


这里加上注释,在注释里写http://就可以


XSS闯关日记

No.10

Xss第十关

XSS闯关日记

Keyword注入貌似没用,但发现了几个隐藏标签,可以试试在这几个标签中是否可以注入


XSS闯关日记

No.11

Xss第十一关

先是测试发现keyword和t_sort被实体化


XSS闯关日记

但发现还有个t_ref的参数,试试在referer头中注入


XSS闯关日记

修改payload


XSS闯关日记
XSS闯关日记

No.12

Xss第十二关

这次放聪明些,看到前端代码中有ua,猜测在useragent头部注入


XSS闯关日记
XSS闯关日记

No.13

Xss第十三关

XSS闯关日记

不用看了cookies注入(经常看数据包的人会知道为什么这里要用user=)


XSS闯关日记
XSS闯关日记

No.14

Xss第十四关

(改用google来做)

XSS闯关日记

用iframe引入了一个页面,这个引入的页面里存在一个可以执行图片的exif信息中包含xss代码的漏洞,可以参考乌云爆出的漏洞http://www.anquan.us/static/bugs/wooyun-2012-09110.html

 

上传图片后点击查看大图就可以执行xss代码


不过不知道什么原因导致的哪个页面找不到上传图片的位置,所以下面我就演示一下怎么修改图片的exif信息


用MagicEXIF 元数据编辑器(win下)打开图片

XSS闯关日记


完成后保存信息查看原图片的属性信息


XSS闯关日记

完成后将这张图片上传即可


No.15

Xss第十五关

发现这一关引入了angular的js框架,且为1.2.0版本


XSS闯关日记

下面这一行是利用了angular的js框架的ng_include指令来包含文件的,先测试一下


XSS闯关日记

接下来链接一下第三关的网页链接及注入payload


XSS闯关日记

简单说一下原因:

AngularJS是一个谷歌开发的MVC客户端框架。使用AngularJS可以对包涵有ng-app标签的模版进行客户端的渲染,他可以通过插入一个特定的标签,然后对这个标签内的内容进行解析,达到渲染模版的效果,正是因为这个特性,所以导致了我们不需要使用html标签,只能要我们输入的内容能够输出在ng-app标签内就可以配合AngularJS的标签来进行xss。


No.16

Xss第十六关

源代码中没有任何东西,但是keyword,可以使用


XSS闯关日记

而且输出位置的标签并不能使用,所以标签内注入实现不了

自己写标签但空格被过滤,绕过后可以成功

另一个

payload:<img%0Asrc=xss%0Aonmouseover=alert('xss')>


XSS闯关日记

No.17

Xss第十七关

这一关主要是在embed标签,它本身就可以加入事件


XSS闯关日记

可能是火狐限制了弹窗,用google打开后就ok了


XSS闯关日记

No.18

Xss第十八关

和十七关没啥区别,同一个payload可过


十九和二十关是flash的xss注入,鉴于flash基本上告别了我们的浏览器,就写了(关键是我也不太会,哈哈)


写在最后:

  建议大家多看看源码,熟悉常规情况下的xss过滤机制,这里我并没有把源码贴出来,其实好多地方看到源码就知道怎么过滤了,可以的话下次再出一篇源码解释的笔记。

  大家可以根据这个笔记里的内容,查看源码的过滤机制,更有助于理解xss的绕过方法。



以上是关于XSS闯关日记的主要内容,如果未能解决你的问题,请参考以下文章

白帽子挖漏洞日记之指定型XSS

无聊日记3-远程文件包含XSS

DVWA学习日记--CSRF超详细漏洞利用讲解

2022护网日记,护网工作内容护网事件告警流量分析

XSS闯关游戏准备阶段及XSS构造方法

DWVA-XSS部分练手闯关