[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(下)

简介: [PiKaChu靶场通关]Cross-Site Scripting XSS漏洞

发现单引号被变成双引号, 也就是说, 输入的值是被单引号闭合起来再传入标签中的, 在网页源码也可以看到:

1.png所以我们要绕过单引号,方法如下:

' οnfοcus=alert('拈花倾城')>  // a标签内部加属性
'> <img src="" onerror=alert('拈花倾城')>  // 闭合出a标签, 将img标签嵌入上一级div执行

image.png

image.png

五、 DOM型XSS-X

这个题目和上个题目是一样的,payload也是一样的,主要分析一下网页请求过程。当随便输入内容并点击按钮后,发现url新增了一个test参数,点击链接, 调用domxss()函数,解析url提取出test参数值, 然后嵌入到新的a标签中。

六、XSS盲打

意思就是我们看不到弹窗,但是管理员是可以看到弹窗的。

image.png

我们发现内容是无法在网页前端显示出来, 也就是没有写入到前端页面, 而是提交到了后台当中。


倘若我们注入xss, 是无法得知是否xss被执行, 但是管理员在后台查看时, 当我们注入了xss代码, 同时管理员又访问了后台, 且后台把我们的内容输出, 那么后台管理员可能遭受到我们的XSS攻击。


这也是称为Xss盲打的原因。


管理员地址为:

pikachu/vul/xss/xssblind/admin_login.php

image.png

七、Xss之过滤

我们试着插入这个payload:

<script>alter('拈花倾城')</script>

发现并没有弹窗,而且我们上传的内容是没有显示的。f12看看网页内容:

image.png

继续分析, 发现是对script关键字进行了过滤:

image.png

漏洞利用

绕过方式有很多:

<ScRiPt>alert(’拈花倾城‘)</ScRipt>  // 大小写混合绕过
<img src="" onerror=alert(’拈花倾城‘)>  // img标签

八、XSS之htmlspecialchars

htmlspecialchars() 函数

PHP里面把预定义的字符转换为HTML实体的函数

预定义的字符是

    & 成为 &amp
    " 成为 &quot
    ' 成为 &#039
    < 成为 &lt
    > 成为 &gt
可用引号类型
    ENT_COMPAT:默认,仅编码双引号
    ENT_QUOTES:编码双引号和单引号
    ENT_NOQUOTES:不编码任何引号

分析

输入内容, 发现被写入了bjernsen标签作为了一个链接:

image.png

image.png

那么继续用闭合绕过的思路, 发现 " , <, >等都被转义和HTML编码了:

image.png

但是发现单引号没有被过滤掉 (htmlspecialchars函数默认是不过滤单引号的)

漏洞利用

hack' οnfοcus='alert('拈花倾城')  // 单引号闭合+事件标签
javascript:alert('拈花倾城')  // JavaScript伪协议

九、XSS之href输出

用户输入的url会作为a标签的href属性值:

image.png

image.png

查看网页源代码,发现左右尖括号和单引号都被html编码了,这样的话,闭合标签或者闭合属性都行不通了。


但也不是没办法了,W3School中对 标签的href属性有以下描述:

标签的 href 属性用于指定超链接目标的 URL:


href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。


从上述描述可见,这边可以利用JavaScript协议,输入payload:

javascript:alert(document.cookie)

image.png

十、XSS之js输出

输入内容被动态生成到网页的js代码中了:

image.png

image.png

我们输入tmac试试:

1.png

漏洞利用

观察js代码, 发现可以用

</script><script>alert('PiKaChu-Xss完结撒花')</script>

image.png

这个漏洞的输出点是在JS中,通过用户的输入动态生成了JS代码


JS有个特点,它不会对实体编码进行解释,如果想要用htmlspecialchars对我们的输入做实体编码处理的话, 在JS中不会把它解释会去,虽然这样解决了XSS问题,但不能构成合法的JS


所以在JS的输出点应该对应该使用 \ 对特殊字符进行转义。


希望大家可以有所收获哦!


相关文章
|
2月前
|
存储 安全 JavaScript
26、XSS漏洞介绍
26、XSS漏洞介绍
19 0
|
2月前
|
存储 安全 JavaScript
小课堂 -- XSS漏洞介绍
小课堂 -- XSS漏洞介绍
19 0
|
3月前
|
存储 开发框架 安全
如何处理预防XSS漏洞攻击问题
防止XSS攻击需要从多个方面入手,包括输入验证和过滤、输出编码、设置正确的HTTP头部、使用最新的安全框架和库、定期进行安全审计和漏洞扫描以及培训和意识提升等。只有综合运用这些措施,才能有效地防止XSS攻击,保护网站和用户的安全。
|
9月前
|
安全 前端开发 JavaScript
信息服务上线渗透检测网络安全检查报告和解决方案2(安装文件信息泄漏、管理路径泄漏、XSS漏洞、弱口令、逻辑漏洞、终极上传漏洞升级)
信息服务上线渗透检测网络安全检查报告和解决方案2(安装文件信息泄漏、管理路径泄漏、XSS漏洞、弱口令、逻辑漏洞、终极上传漏洞升级)
130 0
|
2月前
|
存储 安全
第二轮学习笔记:XSS跨站脚本漏洞
第二轮学习笔记:XSS跨站脚本漏洞
24 0
|
2月前
|
安全 开发工具 git
xss漏洞工具 -- xsser
xss漏洞工具 -- xsser
55 0
|
5月前
|
SQL 安全 JavaScript
互联网并发与安全系列教程(05) - 常见的Web安全漏洞(XSS攻击、SQL注入、防盗链)
互联网并发与安全系列教程(05) - 常见的Web安全漏洞(XSS攻击、SQL注入、防盗链)
60 0
|
8月前
|
安全 JavaScript 前端开发
|
8月前
|
SQL 存储 安全
【网络安全】护网系列-web漏洞(SQl、RCE、XSS)
【网络安全】护网系列-web漏洞(SQl、RCE、XSS)
349 0
|
9月前
|
SQL 安全 JavaScript
跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案
跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案
121 0