前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pikachu 靶场之XSS(跨站脚本) -下篇

pikachu 靶场之XSS(跨站脚本) -下篇

作者头像
亿人安全
发布2022-06-30 15:00:35
4650
发布2022-06-30 15:00:35
举报
文章被收录于专栏:红蓝对抗

前言

大家好,我是Leon-pi,可以叫我pipi,新人报道,是个菜鸟,由于个人也是在学习过程中,文章写的也不是面面俱到,尽善尽美,请见谅。

XSS 之盲打

场景:

一个留言板,只有后台才能看见前端存在的内容,从前端无法确定是否存在XSS漏洞,假设存在XSS漏洞,直接往里输入 XSS 代码,称为盲打。

不论3721!,直接往里面插入XSS代码,然后等待,可能会有惊喜!!

被动等待.....(当后台管理员登陆时就可能被攻击)

1 构造payload

代码语言:javascript
复制
<script>alert("attack!")</script>

提交后,模拟管理员登录后台

2 模拟管理员登录后台

存在XSS漏洞,并且也是存储型XSS

XSS 之过滤

1 随便输入内容,然后输入特殊字符('"<>)

2 输入 payload

代码语言:javascript
复制
<script>alert("attack!")</script>

什么也没发生,应该是过滤掉一些内容

3 尝试绕过

改动大小写
代码语言:javascript
复制
<SCRIPT>alert("attack!")</SCRIPT>
img 中 onerror事件
代码语言:javascript
复制
<img src="x" onerror="alert('error!')">

说明只是过滤了大小写,当然XSS绕过姿势不止一种,师傅们自行扩展

XSS 之htmlspecialchars

htmlspecialchars函数概览

调用该函数进行转换的字符如下

函数转换的类型

如果使用该函数对用户的输入进行处理,而保持默认转换类型可能会出现 XSS漏洞

(仅编码双引号)

1 输入 '"<>111 查看源码

从源代码可以看出,单引号未进行过滤,只是过滤了双引号

2 输入 payload

代码语言:javascript
复制
#' onclick='alert("aaa")

XSS 之href输出

javascript 伪协议

语法
代码语言:javascript
复制
javascript:someScript;
someScript 是一个或多个使用 ; 分隔的 JavaScript 语句
实例
代码语言:javascript
复制
<a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>

XSS href 输出

  • 输出在 a 标签的 href 属性中,可以使用 JavaScript 协议来执行js
  • 防御:只允许http,https,其次再进行 htmlspecialchars 处理

1 根据提示输入网址,查看源码

2 点击链接跳转至百度

2 使用 js协议 构造payload

代码语言:javascript
复制
javascript:alert("aaa")

XSS之 js输出

1 输入aaa,查看源码

这里发现输入的内容被放入到了js中

2 构造payload

代码语言:javascript
复制
';alert("attack xss")</script>

XSS 防范:输入做过滤,输出做转义

结语:

本人菜弟弟一个,大佬勿喷,谢谢

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亿人安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • XSS 之盲打
    • 场景:
      • 1 构造payload
        • 2 模拟管理员登录后台
        • XSS 之过滤
          • 1 随便输入内容,然后输入特殊字符('"<>)
            • 2 输入 payload
              • 3 尝试绕过
              • XSS 之htmlspecialchars
                • htmlspecialchars函数概览
                  • 1 输入 '"<>111 查看源码
                    • 2 输入 payload
                    • XSS 之href输出
                      • javascript 伪协议
                        • XSS href 输出
                          • 1 根据提示输入网址,查看源码
                          • 2 点击链接跳转至百度
                          • 2 使用 js协议 构造payload
                          • 1 输入aaa,查看源码
                          • 2 构造payload
                      • XSS之 js输出
                      • XSS 防范:输入做过滤,输出做转义
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档