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

  • A+
所属分类:安全文章

前言

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

XSS 之盲打

场景:

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

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


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

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


1 构造payload

<script>alert("attack!")</script>

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

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


2 模拟管理员登录后台

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

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


XSS 之过滤

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

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

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

2 输入 payload

<script>alert("attack!")</script>

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

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


3 尝试绕过

改动大小写

<SCRIPT>alert("attack!")</SCRIPT>

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

img 中 onerror事件

<img src="x" onerror="alert('error!')">

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

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


XSS 之htmlspecialchars

htmlspecialchars函数概览

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

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

函数转换的类型

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

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

(仅编码双引号)

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

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

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

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


2 输入 payload


#' onclick='alert("aaa")

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

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


XSS 之href输出

 javascript 伪协议

语法

javascript:someScript;someScript 是一个或多个使用 ; 分隔的 JavaScript 语句

实例


<a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>

XSS href 输出

  • 输出在 a 标签的 href 属性中,可以使用 JavaScript 协议来执行js

  • 防御:只允许http,https,其次再进行 htmlspecialchars 处理

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

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

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

2 点击链接跳转至百度

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

2 使用 js协议 构造payload

javascript:alert("aaa")


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


XSS之 js输出

1 输入aaa,查看源码

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

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


2 构造payload

';alert("attack xss")</script>

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


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


结语:

本人菜弟弟一个,大佬勿喷,谢谢,如果觉得个人写的还凑活,三连(点赞+关注+转发)一哈吧💪谢谢各位师傅,祝各位师傅玩的开心😊

本文始发于微信公众号(亿人安全):pikachu 靶场之XSS(跨站脚本) -下篇

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: