xsslab靶场

编程入门 行业动态 更新时间:2024-10-14 08:21:44

xsslab<a href=https://www.elefans.com/category/jswz/34/1769473.html style=靶场"/>

xsslab靶场

XSS-lab靶场:

开干必知:

  • xss的了解:

XSS(Cross-Site Scripting)攻击利用Web应用程序没有对用户数据进行充分过滤和转义的漏洞,导致攻击者向其他用户注入恶意脚本。攻击者在Web应用程序中注入的脚本可以执行他们想要的任何操作,例如窃取用户cookie、将用户重定向到其他网站、修改页面内容等等。

XSS攻击的原理是通过向Web应用程序注入恶意脚本,该脚本会被其他用户的浏览器执行。攻击者通常会通过Web表单或URL等途径向Web应用程序提交恶意脚本,并且这些脚本会被Web应用程序保存到数据库或其他存储设备中。

当其他用户访问被注入恶意脚本的页面时,他们的浏览器会执行该脚本。攻击者可以通过这种方式窃取用户cookie、模拟用户操作、修改页面内容、将用户重定向到其他网站等等。

xss攻击的一些常用方法:

  1. 反射型 XSS 攻击:攻击者将恶意脚本注入到 URL 中,当用户访问被注入恶意脚本的链接时,脚本会被执行。
  2. 存储型 XSS 攻击:攻击者将恶意脚本存储到 Web 应用程序的数据库或其他存储设备中,当用户访问包含恶意脚本的页面时,脚本会被执行。
  3. DOM-based XSS 攻击:攻击者通过修改页面中的 DOM 元素来执行攻击,这种攻击方式不需要向 Web 服务器发送请求,因此很难检测和防范。
  4. 长度限制绕过:攻击者利用 Web 应用程序对输入长度的限制来绕过过滤,将恶意脚本分割成多个短的字符串进行注入。
  5. 标签属性注入:攻击者在某些标签的属性中注入恶意脚本,当用户鼠标经过该标签时,脚本会被执行。
  6. 空格绕过:攻击者利用空格字符绕过过滤,将恶意脚本分成多部分,每部分之间使用空格隔开,达到绕过过滤器检测的目的。
  7. 动态执行:攻击者注入的恶意脚本可以通过动态调用 JavaScript 函数来执行,从而绕过一些简单的防御措施。

第一关:

1,测试网页的过滤规则:

​ 输入代码:

?name=<script" 'Oonn>

发现页面出现空白。

2,通过源代码判断过滤规则:

​ 在第十六行代码中发现,我们输入的语句都没有过滤,也没有转义,完整地出现,所以这里我们可以直接构造弹窗函数:<script " ’ Oonn>.

3,构造xss漏洞进行验证:
输入语句
?name=<script>alert(/xss/)</script>

页面会弹出“完成的不错”。

第二关:

1,测试网页的过滤规则:

​ 输入语句

<script" 'Oonn>

输入框中没有显示出双引号,所以次处应该是双引号闭合。

注:alert()是一个弹窗函数!!!alert的功能是用于显示带有一条指定消息和一个OK按钮的警告框

2,查看网页源代码推导过滤的规则:

(1),在17行,发现输入的参数是被双引号闭合着带入到input中的。

(2),针对(1)的情况,需要:

​ 1>,开头构造一个">把标签input标签闭合掉。

​ 2>,再在之后拼接一个

<script>alert(/xss/)</script>

这样构造的标签就能顺利被编译,且不是简单的字符串了。

​ 3>,另外还需要在结尾构造一个"<把input剩下的尖括号闭合掉。

3,构造xss漏洞验证代码并运行:

修改参数为:

"><script>alert(/xss/)</script><"

会发生页面弹窗。

第三关:

1,测试网页的过滤规则。

在输入框中输入语句:

<script " ' Oonn>

回车,无事发生,只能看到输入框中只剩双引号了,因此可以猜测是单引号闭合。

2,查看网页源代码判断过滤规则。

  1. 在源代码的第17行可以看到,大于号和小于号被转义,但是单引号却没有被转义且参数是用单引号闭合的。
  2. 因为大于号被转义,所以需要使用哪些不需要用到标签的语句来达到触发xss漏洞。比如说:用事件触发的形式。
  3. 开头需要使用单引号与input标签属性原有的单引号闭合,结尾需要单引号与input标签属性单有的结尾单引号闭合。

3,构造xss漏洞验证代码并验证:

​ 这里我们构造事件弹窗。

​ 输入参数:

'onmouseover='alert(/xss/)

回车,触发事件,弹窗出现。

第四关:

1,测试网页的过滤规则:

​ 输入语句 :

<script " 'Oonn>

回车,可以看到搜索框里的小于号消失了,这里猜测是被转义了,内容是到script截止的,猜测应该是双引号闭合。

2,查看网页源代码判断过滤规则:

  1. ​ 可以看到第17行中,小于号已被过滤,引号没有被过滤或者转义,参数采用的是双引号闭合。
  2. ​ 因此本题构造语句需要使用事件触发类型的,避免使用大小于号。
  3. ​ 开头需要使用双引号与input标签属性原有的开头双引号闭合,结尾需要双引号与input标签属性原有的结尾双引号闭合。

3,构造xss漏洞验证代码并验证:

修改参数为:

"onmouseover="alert(/xss/)

回车,当把鼠标移到输入框时,触发事件,弹出窗口。

第五关:

1,测试网页的过滤规则:

​ 输入语句:

<script " ' Oonn>

2,查看网页源码判断过滤规则:

  1. ​ 在第17行发现script与on的两个关键字都没被转义,尖括号和引号都没有被过滤或转义,同时还可以看出语句采用双引号闭合。

  2. ​ 在此处,我们测试其他关键字语句,such as:

  3. <a href="javascript:alert(/xss/)">
    
  4. 在开头构造一个">把标签input标签闭合掉。

  5. 再在之后拼接一个语句,这样我们构造的标签就能顺利被编译,而不只是简单的字符串。

  6. 还需要在结尾构造一个"<把input剩下的尖括号闭合掉。

注:这里的herf是一个HTML属性

  • herf:
在跨站脚本攻击(XSS)中,href是一个HTML属性,用于指定链接的目标URL或文档位置。通过在href属性中注入恶意的JavaScript代码,攻击者可以利用XSS漏洞执行脚本,窃取用户网站的Cookie、密码或其他敏感信息。
例如,以下链接就可能存在XSS漏洞:
<a href="=<script>alert('XSS');</script>">Click here</a>
当用户点击链接时,浏览器就会执行其中的JavaScript代码,弹出一个警告框。而如果攻击者在其中注入的是更恶意的代码,就可能造成更危险的后果。
在防范XSS攻击时,应该注意对用户输入的内容进行安全转义,以防止恶意脚本的注入。同时也建议开启HTTPonly属性,避免被窃取的Cookie用于构造恶意请求。
这里javascript是一个伪协议。
  • 伪协议:
  • 伪协议(Pseudo-protocol)实际上是一种特殊的URL协议,用于在浏览器中执行特定的操作。在跨站脚本攻击(XSS)中,攻击者可以利用一些常见的伪协议(例如javascript:)来执行恶意脚本或进行其他攻击行为。
    例如,攻击者可以构造一个恶意的链接,如下所示:
    <a href="javascript:alert('你已被攻击!')">点击我</a>
    
    当用户点击此链接时,就会执行该链接中的JavaScript代码(即弹出一个警告框)。攻击者可以利用这种方式,将恶意脚本注入到页面中,获取用户的敏感信息、盗用用户的会话等。
    在防范XSS攻击时,应该注意限制使用伪协议,仅允许受信任的协议,例如"mailto:"等,并使用 JavaScript 框架和 Web 内容安全策略等技术来过滤和限制用户输入的内容。

3,构造xss漏洞验证代码并验证:

​ 构造参数:

"><a href="javascript:alert(/xss/)">click me!</a><"

点击搜索,出现页面,然后点击click me 后出现弹窗。

第六关:

1,测试网页过滤规则:

​ 输入语句:

<script " ' Oonn>

2,查看网页源代码判断过滤规则:

  1. 在第17行,发现script和on开头关键字被转义,尖括号没有被过滤和转义,引号没有被过滤和转义且没有对大小写进行转化,语句采用双引号闭合。
  2. 因此,我们可对关键字进行大小写混编进行尝试,”>"<。

3,构造xss漏洞验证代码并验证。

修改参数为:”>"<,点击搜索如下。

第七关:

1,测试网页的过滤规则:

输入语句:<script " ’ Oonn>,回车,发现如下页面。

2,查看网页源代码判断过滤规则:

  1. 在第17行中可以发现,script被过滤,同时on也被过滤了一次,其余符号(尖括号,单双引号都没进行处理,同时语句采用双引号闭合。
  2. 因此,我们考虑双写绕过。

3,构造xss漏洞验证代码并验证:

构造参数:

"oonnmouseover="alert()

回车,成功通关。

第八关:

1,测试网页过滤规则:

输入语句:

<script " ' Oonn>

2,查看网页源代码判断过滤规则:

  1. 在第十七行中可以发现,尖括号被转义,双引号被转义,单引号没变,关键字没事,同时,语句采用双引号闭合方式。
  2. 在第20行中,可以看到参数被传递到a标签的herf属性中,尖括号被转义回来,双引号还是被转义着,关键字被插入下划线,单引号没事。
  3. 对此情况,我们考虑注入herf的伪协议

4,构造xss漏洞验证代码并验证:

构造函数:javascript:alert(/xss/)网页如下,点击友情链接后,没有出现弹窗。

5,查看源代码:

  1. 在第20行中,可以看到伪协议中的script被插入了下划线。
  2. 因此,考虑对部分字符进行编码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lHULWixx-1686402212251)(C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230531115848139.png)]

6,再次构造xss漏洞验证代码并验证:

在构造参数的script中的c转码,修改参数为:

javas&#x63;ript:alert(/xss/)

完成后点击友情链接触发xss。

第九关:

1,测试网页过滤规则:

输入语句:<script " ’ Oonn>,显示如下:

2,查看网页源代码判断过滤规则:

  1. 在第17行中发现,我们可以看到尖括号被转义,双引号被转义,单引号没事,关键字也没事,大写变小写。同时语句采用双引号闭合。
  2. 在第20行中发现,参数被传递到herf参数中,但此处显示连接不合法,没有说具体怎么不合法,在么有代码审计的情况下,只能一步步尝试什么格式是合法的。

3,解决参数不合法的问题。

由于输入参数会赋给href,属于一个链接,因此猜测是否输入函数需要含http://才合法。

输入参数为:


并提交,查看源代码发现现在链接是合法的,在这里推测是加了http://这个信息的缘故。

4,构造xss漏洞验证代码并验证:

修改参数为:

javascript:alert('http://')

让内容中含有http://这一字符串,发现仍然执行失败,再次查看源代码,发现链接处还过滤关键字script。

5,再次构造xss漏洞验证代码并验证。

修改参数为:javascript:alert(‘http://’)让内容中含有http://这一段字符,成功执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9qqWRAO-1686402212252)(C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230531154252426.png)]

第十关:

1,测试网页过滤规则:

输入语句:

<script " ' Oonn>

显示如下:

2,查看网页源代码判断过滤规则:

  1. 发现第15行中的尖括号被转义,双引号被转义,单引号没事,关键字也没事,大写没有转化为小写。同时语句为双引号闭合。
  2. 在第17,18,19行,发现另外三个输入参数,分别是:t_link,t_history,t_sort,考虑将测试语句依次传入进行测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7JUwusrK-1686402212252)(C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230531154838045.png)]

3,再次测试网页过滤规则。

  1. 当在搜索栏将参数改为:?t_sort=<script " ’ Oonn>时,看到源代码中出现我们输入的参数值。
  2. 在第19行,尖括号被过滤,其余没事,参数采用双引号闭合。
  3. 对此,考虑不需要尖括号事件触发方式构造语句。

4,构造xss漏洞验证代码并验证。

我们修改参数为:

?t_sort=click me!" type="button"onmouseover="alert(/xss/)

页面显示如下,鼠标移动到按钮上,出现弹窗表示通过。

  • ?t_sort=表示参数是传递给谁;
  • click me!"给input赋值同时闭合双引号;
  • 修改type属性为按钮方便事件触发;
  • onmouseover则表示鼠标移动到按钮上时触发事件。

注:这里button是指创建一个按钮,而text是创建一个输入框。

第十一关:

1,测试网页过滤规则:

输入语句:

<script " ' Oonn>

页面如下:

2,查看网页源代码判断过滤规则:

  • 发现第15行尖括号被转义、双引号都被转义、单引号没事、关键字没事,大写没有转化为小写。同时语句采用双引号闭合。
  • 在第17,18,19,20行,发现另外四个输入参数,分别是t_link、t_history、t_sort、t_ref,考虑将测试语句依次传入进行测试。

3,再次测试网页过滤规则:

当给t_link,t_history和t_ref传入参数时,源码中value值均没有响应。而当传入参数为?t_sort=<script " ’ Oonn>时,源码如下:

  • 发现第19行大小于号被转义、双引号都被转义、单引号没事、关键字没事,大写没有转化为小写。同 时语句采用双引号闭合。

  • 方法一:尝试从 keyword 和 t_sort 进行突破,两者的过滤规则是一样的,需要用双引号进行闭合但是双引号被转义。尝试过对大小于号、双引号进行编码以求绕过,发现还是不行。

  • 方法二:其他三个参数时均没有显示,可能该参数不是通过url地址栏传递的,比如说t_ref有可能是http的referer头部信息。

    4,借助BurpSuite工具测试http请求其他位置的输入:

    将请求发送到repeater模块,在host下新增一行referer:<script " ’ Oonn>,点击send。在回包中看到t_ref参数显示出我们的参数,没有任何过滤。

5,构造xss漏洞验证代码并验证。

回到拦截(proxy)模块,再次获取请求,并修改参数如下:

referer:click me!"type="button" onmouseover="alert(/xss/)

点击放行(forward),页面显示如下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GQS5X2Pd-1686402212253)(C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230531192023291.png)]

  • referer:
  • Referer是HTTP协议的一个请求头信息,其作用是指出当前请求的URL是从哪个URL过来的。在XSS攻击中,攻击者可以通过篡改Referer信息来欺骗服务器,来实现一些攻击目的。

    攻击者可能会在恶意网站中添加一个被篡改的Referer信息,在用户进入该恶意网站后,攻击者会将用户重定向到一个受害网站,并附带着篡改后的Referer信息。如果受害网站没有进行相应的输入验证和过滤,那么攻击者可以利用这个漏洞,通过构造恶意的URL,在受害网站上执行不当的操作,例如窃取用户的敏感信息、冒充用户执行恶意操作等。

    为了防止利用篡改Referer信息的XSS攻击,应当对网站的输入进行过滤和验证,并采用适当的HTTP头部设置,例如设置CSP策略来限制Web页面的资源获取和执行。此外,也可以在服务器端对Referer信息进行相应的验证和过滤,以防止攻击者利用篡改Referer信息的漏洞进行攻击。

第十二关:

1,测试网页过滤规则:

输入语句:

<script " ' Oonn>

显示页面如下:

2,查看网页源代码判断过滤规则:

在第15行可以发现,尖括号被转义,双引号被转义,单引号没事,关键字也没事,大写没有转化为小写,同时可以发现语句采用双引号闭合。

在第17,18,19,20行,发现另外四个输入函数,分别是t_link,t_history,t_sort,t_ua,看到t_ua后面的值,属于User-Agent参数,因此猜测可能和11关类似,需要借助burpsuite工具修改http请求头消息。

3,Burpsuite工具repeater模块:

同样的,利用BurpSuite获取到浏览器的请求,来修改http请求头消息。将拦截到的请求发到repeater模块,通过修改User-Agent参数为<script " ’ Oonn>, 点击send。在回包中看到t_ua参数显示出我们的参数,只过滤了尖括号。

4,构造xss漏洞验证代码并验证。

回到代理(proxy)模板,再次获取请求,并修改User-Agent参数为:

click me!" type="button" onmouseover="alert(/xss/)

点击forward。

第十三关:

1,测试网页过滤规则:

在搜索栏输入语句:?keyword=<script " 'Oonn>显示如下:

2,查看网页源代码判断过滤规则:

  • 在第15行中可以发现,尖括号,双引号都被转义,单引号和关键字没事,大写没有转化为小写。同时语句采用双引号闭合。
  • 在第17,18,19,20行,发现另外四个输入参数,分别是t_link,t_sort,t_history,t_cook,看t_cook参数,猜测这次应该是通过cookie输入参数。因此,我们可能和11关类似,需要借助BurpSuite工具修改http请求头信息。

3,BurpSuite中Repeater模块:

利用BurpSuite获取浏览器的请求,来修改http请求头信息,将拦截到的请求发送到repeater模块。由于请求中的cookie参数的user值与源代码中的一致,因此修改cookie参数中的user值为<script" ’ Oonn>,点击send。在回包中看到t_cook参数显示出我们的参数,只过滤了尖括号。

4,构造xss漏洞验证并验证:

回到代理(proxy)模块,再次获取请求,并将cookie参数中的user值修改为:

click me!" type="button" onmouseover="alert(/xss/)

点击forward

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhN5C0Op-1686402212253)(C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230601105115801.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZFeAvLLB-1686402212253)(C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230601105115801.png)]

第十四关:

第十五关:

1,查看网页源代码:

  • 可以看到我们提交的参数src的值被插入到了标签的class属性值中,但是前面还有ng-include这样的字符。

  • ng-include是angular js中的东西,起作用相当于php的include函数。

  • 这里就是将1.gif这个文件给包含进来。

  • SRC标签:
  • 在跨站脚本攻击(XSS)中,src是HTML标签中的一个属性,用于指定要加载的资源的URL(例如:图片、脚本、框架等)。攻击者可以通过在src属性中注入恶意代码,利用XSS漏洞攻击目标网站的用户。
    例如,以下代码就可能存在XSS漏洞:
```
当用户浏览包含此代码的网页时,浏览器就会加载其中的图片,并执行其中的JavaScript代码。如果攻击者在其中注入恶意代码,就可能对用户造成更严重的影响,如窃取用户的Cookie、密码等敏感信息。
在防范XSS攻击时,应该注意对用户输入的内容进行安全转义,以防止恶意脚本的注入。同时也建议开启HTTPonly属性,避免被窃取的Cookie用于构造恶意请求。建议使用安全的编程语言和框架,对用户的输入做前端和后端都进行过滤和校验,从而避免XSS攻击。

ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号。


### 2,包涵前面的关卡:我们先试试看包涵第一关,构造payload:输入语句:

?src=‘/level1.php’


<img src="C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230601142719900.png" alt="image-20230601142719900" style="zoom:50%;" />所以可以随便包涵之前的一关并对其传参,以达到弹窗的效果,先测试一下过滤了啥,构造payload### 3,判断过滤:输入语句:

?src=" ’ sRc DaTa OnFocus


<img src="C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230601143305303.png" alt="image-20230601143305303" style="zoom:50%;" />对比可以发现,这里有个html实体化函数在,没有删掉东西,所以不影响我们接下来的操作,我们可以包涵第一关再让第一关弹窗。(注意:这里不能包涵那些直接弹窗的东西,如<script>),但是可以包涵那些标签的东西比如:<a>,<input>,<img>,<p>标签等等,这些标签都是需要我们手动点击的),这里我们使用a标签,构造payload。输入语句:

?src=‘level1.php?name=’


当鼠标移动到图片的时候就触发了弹窗。<img src="C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230601144059863.png" alt="image-20230601144059863" style="zoom:50%;" />## 第十六关:### 1,查看网页源代码:<img src="C:\Users\阮振坤\AppData\Roaming\Typora\typora-user-images\image-20230601150203048.png" alt="image-20230601150203048" style="zoom:50%;" />test插入到了center标签中,所以这里就不用闭合了,可以先测试一波关键字。、

更多推荐

xsslab靶场

本文发布于:2024-02-11 20:04:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1683132.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:靶场   xsslab

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!