XSS闯关日记
Posted 西柚网安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS闯关日记相关的知识,希望对你有一定的参考价值。
XSS闯关笔记
西安邮电大学
逆·流沙团队成员
No.1
Xss第一关
No.2
Xss第二关
查看源码发现可以在value值这里注入
对其闭合再注入
No.3
Xss第三关
同样位置:
注入后发现后端使用了htmlspecialchars函数过滤:转义双引号和尖括号
使用不带过滤符号的函数,需要移动鼠标才会执行
No.4
Xss第四关
跟第三关差不多,查看源码会发现只是把尖括号换成空
使用类似的payload(需要点击边框才会执行)
No.5
Xss第五关
过滤了script标签和on,试试其他方式,用a标签通过
No.6
Xss第六关
和上方一样的过滤
源码发现没有了strtolow()函数,尝试大小写绕过
No.7
Xss第七关
这里直接过滤为空,可以试试复写
No.8
Xss第八关
想必到这里,该过滤的都差不多了,这个的突破点在这个链接这里,此处有个a标签,会把输入的内容作为标签内容
但是script被过滤了,可以用html的实体编码方式绕过
Payload:jav
ascript:alert('xss');
或者图中的这个
No.9
Xss第九关
在源码里发现了strpos()函数,如果输入的内容中没有http://会弹出你的输入不合法
这里加上注释,在注释里写http://就可以
No.10
Xss第十关
Keyword注入貌似没用,但发现了几个隐藏标签,可以试试在这几个标签中是否可以注入
No.11
Xss第十一关
先是测试发现keyword和t_sort被实体化
但发现还有个t_ref的参数,试试在referer头中注入
修改payload
No.12
Xss第十二关
这次放聪明些,看到前端代码中有ua,猜测在useragent头部注入
No.13
Xss第十三关
不用看了cookies注入(经常看数据包的人会知道为什么这里要用user=)
No.14
Xss第十四关
(改用google来做)
用iframe引入了一个页面,这个引入的页面里存在一个可以执行图片的exif信息中包含xss代码的漏洞,可以参考乌云爆出的漏洞http://www.anquan.us/static/bugs/wooyun-2012-09110.html
上传图片后点击查看大图就可以执行xss代码
不过不知道什么原因导致的哪个页面找不到上传图片的位置,所以下面我就演示一下怎么修改图片的exif信息
用MagicEXIF 元数据编辑器(win下)打开图片
完成后保存信息查看原图片的属性信息
完成后将这张图片上传即可
No.15
Xss第十五关
发现这一关引入了angular的js框架,且为1.2.0版本
下面这一行是利用了angular的js框架的ng_include指令来包含文件的,先测试一下
接下来链接一下第三关的网页链接及注入payload
简单说一下原因:
AngularJS是一个谷歌开发的MVC客户端框架。使用AngularJS可以对包涵有ng-app标签的模版进行客户端的渲染,他可以通过插入一个特定的标签,然后对这个标签内的内容进行解析,达到渲染模版的效果,正是因为这个特性,所以导致了我们不需要使用html标签,只能要我们输入的内容能够输出在ng-app标签内就可以配合AngularJS的标签来进行xss。
No.16
Xss第十六关
源代码中没有任何东西,但是keyword,可以使用
而且输出位置的标签并不能使用,所以标签内注入实现不了
自己写标签但空格被过滤,绕过后可以成功
另一个
payload:<img%0Asrc=xss%0Aonmouseover=alert('xss')>
No.17
Xss第十七关
这一关主要是在embed标签,它本身就可以加入事件
可能是火狐限制了弹窗,用google打开后就ok了
No.18
Xss第十八关
和十七关没啥区别,同一个payload可过
十九和二十关是flash的xss注入,鉴于flash基本上告别了我们的浏览器,就写了(关键是我也不太会,哈哈)
写在最后:
建议大家多看看源码,熟悉常规情况下的xss过滤机制,这里我并没有把源码贴出来,其实好多地方看到源码就知道怎么过滤了,可以的话下次再出一篇源码解释的笔记。
大家可以根据这个笔记里的内容,查看源码的过滤机制,更有助于理解xss的绕过方法。
以上是关于XSS闯关日记的主要内容,如果未能解决你的问题,请参考以下文章