代码编织梦想

前面写了很多XSS漏洞的利用,这一章开始重点在XSS漏洞的挖掘和如何注入script代码上,和sql注入相类似

目录

一、实验环境——XSS Challenges

二、探测XSS过程

第一关

第二关

第三关

第四关

 第五关


一、实验环境——XSS Challenges

点击此处进入XSS Challenges

不要探测任何XSS外的漏洞,不要使用自动化工具,一些级别的挑战只适用于IE浏览器

需要注入Javascrip代码 alert(document.domain)弹出当前的域名,就是说只要能弹出域名就说明过关了

 Hint选中就会看到提示

二、探测XSS过程

①构造一个独一无二且不会被识别为恶意代码的字符串提交到页面,如:Chend123veryshuai

②使用浏览器审查工具进行代码审查,寻找构造的字符串是否在页面中显示

在靶场操作一下

第一关

可以看到我们输入的内同在<b>标签之间,并且被加上了双引号

这时候可以发现,这里可能存在XSS漏洞

③构建XSS payload

简单版:
<script>alert(document.domain);</script>
因为<b>标签中为加粗,不用闭合,则可以直接写script语句
按顺序闭合标签:
"</b><script>alert(document.domain);</script>
这里不用在后面做闭合,因为html会将它识别成文本

提交完payload之后就可以看见域名啦,到这就通关啦

 

下一关

第二关

同样的操作

 

这回没有再下面显示,而是直接显示在了输入框里

我们查看元素

 发现我们输入的内容再value里面

<input type="text" name="p1" size="50" value="ChenD123veryshuai">

这个时候我们构建payload就需要闭合input与value的单引号了

payload: "><script>alert(document.domain);</script>

另一种方式,使用input中的onmouseover属性,当然也可以利用其他属性

payload: "onmouseover=alert(document.domain)>

当我们鼠标离开输入框时弹出域名 

成功过关!

第三关

 同样的操作

可以看到 我们输入的内容再form表单中,并且是以post方式提交的 

我们尝试以前两关的方式进行注入

发现它直接给识别成字符串了

我们尝试闭合<b>标记

会发现它把</b>直接转成字符串了,所以这块很有可能做了转义等操作,注入点可能不在这里

 发现它提交了两个参数,其中有一个是我们从表单里选择的,注入点有没有可能在这里呢

两种方式

  我们直接在F12查看源码中把第一个选项换成我们的payload

输入框随便输入点东西点击search

过关!

第二种办法,burpsuite抓包!

 

我们直接把japan换成我们的payload,然后放包

 

 也过关!

第四关

下一关看似与第三关相同,实则不然,经过传统手艺,我们发现,第四关把p1和p2两个数据都进行了处理,都会转化为字符串

老样子,看看它都提交了啥数据

 看到没,多了个p3,也就是说p3很有可能是注入点

我们在源码中搜索p3

两种方法

我们只要把value闭合一下然后呢直接alert就行

payload:"><script>alert(document.domain)</script>

 我们进行抓包修改p3

或者使用<svg/事件="">

payload: "><svg onload=alert(document.domain)>%0A

 

过关过关赶赶丹丹

 第五关

可以看到这关跟第二关好像,正当我准备开开心心过关的时候

我输入的payload变成了

 它这里限制了长度

也有两个解决办法

①直接修改

过关

②抓包

也过关

今天就到这里叭

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40345591/article/details/127270260