pentesterlab xss(writeup)

example1

第一题往往都是热身题,没有任何的过滤。通过查看源码发现我们输入的内容时直接输出在html标签之间的,所以直接插入:


注:这里我自己一直有一个误区,今天偶然看到一篇文章才发现,原来审查元素看到的并不是源代码,之前一直是这样查看源码的,有时候会有一些差异,因为源码是我们直接从服务器取过来的代码,没有经过任何js加工渲染,但是审查元素看到的就是经过渲染过后的代码呈现。

example2

同样的输出位置,这次我还是先尝试使用进行测试。但是发现都被过滤了,预测后台使用正则把这两个标签进行了替换,把他们都替换为空,那么绕过姿势也就很简单:
pentesterlab xss(writeup)_第1张图片
补充:后来经过测试,后台的正则匹配应该只是匹配了小写,所以我们同样可以使用大小写混合来绕过:,当然这并不意味着没有其它的方式了,当然可以借助一些其它的标签进行绕过,例如:之类的。

example3

可以使用与example2第一种策略进行绕过。

example4

这次是过滤了script(SCRIPT)这几个字母,当然还是可以用其它标签来绕过,不顾我也尽量想了想其它办法,比如通过在script这几个字母之间插入一些浏览器能够解析的字符,比如我们可以将,却发现被转义了,结果如下:
pentesterlab xss(writeup)_第6张图片,居然被url转义了, 反正我通过各种编码是没有绕过的。但是官方的答案给的就是:,大家试试吧,可能与浏览器版本有关吧

注:说一点比较重要的吧,今天拜读《web前端黑客技术揭秘》,看到了不通浏览器的url编码差异,而这一题就涉及到这一不同浏览器的特性,这里我一开始没有成功弹窗就是因为chrome与firefox编码了<>这两个特殊符号,当时就是没有测试ie,今天特地测试了一下,成功弹窗:
pentesterlab xss(writeup)_第7张图片
可以说是相当刺激了,又涨姿势了

小结

虽然这些题目相对来说比较简单,但是很有拓展性。

你可能感兴趣的:(Web安全)