XSS(跨站脚本)概述
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
    1.反射性XSS;
    2.存储型XSS;
    3.DOM型XSS;

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
  输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

攻击流程

假设存在漏洞的是一个论坛,攻击者将恶意的JS代码通过XSS漏洞插入到论文的某一页面中

当用户访问这个页面时,都会执行这个恶意的JS代码,这个代码就会在用户的浏览器端执行

XSS攻击类型

危害:存储型 > 反射型 > DOM型

  • 反射型:交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询页面等
  • 存储型:交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面
  • DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型

XSS形成原因

形成XSS漏洞的主要原因是程序中输入和输出的控制不够严格

导致“精心构造”的脚本输入后,在输出到前端时被浏览器当作有效代码解析执行

XSS漏洞测试流程

① 在目标上找输入点,比如查询接口、留言板

② 输入一组 “特殊字符(>,',"等)+唯一识别字符” ,点击提交后,查看返回源码,看后端返回的数据是否有处理

③ 通过搜索定位到唯一字符,结合唯一字符前后语法确定是否可以构造执行js的条件(构造闭合)

④ 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞

一、反射型XSS(get)

先输入'"kingjerry 发现并没有理我~

看一下网页源代码:

害呀,科比就科比吧……

…………

行吧KobeNB

试试XSS注入吧 简单的JS代码呈上:<script>alert("xss")</script>

长度被限制在了20,改一下再试试~

成功

二、反射性xss(post)

默认用户名admin密码123456

由于是post方式提交,所以不能通过url直接传参数,但只要从文本框传就好。无论get和post都是为了上传文本框里的内容不是嘛……

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

三、存储型xss

有一个留言板。

我们先上传一段文字,看看网页源代码是什么形式。

就很好构造了:

<img src=http://1.html onerror=alert('pikachu')>

四、DOM型xss

还是先看源代码:

都提醒到我脸上了……

onmouseover 鼠标移动到上面就发送请求。

以及,作为强迫症明明用img没有图真的太难受了。

嘻嘻嘻嘻嘻嘻嘻嘻祢豆子天下第一可爱

五、DOM型xss-x

 ……出生二十载,单身二十年,吾已至弱冠,不曾及柔荑,算吗???算吗!!!

好的^_^

'><img src="http://192.168.1.104/pikachu/npy.bmp" onmouseover="alert('我的未来女朋友你在哪里')">

主要是吧,没点图我就觉得,不严谨,不科学,不规范~

' onclick="alert('我想要一个女朋友')">

在鼠标移到位置上触发第一个动作后,鼠标单击触发第二个动作,才会触发xss命令

六、xss盲打

还是直接看源码

我们在文本框内输入的内容是直接传上网站后端的。所以直接的XSS打,我们攻击的是后台的管理员。

那只需要最简单的方法:

<script>alert('Pikachu')</script>

登录后台

攻击成功

七、xss之过滤

能猜出,把文本框内上传的文字直接抓包放在了下面。

那只要尝试绕过后端对上传文本的重放就好了。这里利用大小写正则匹配的漏洞。

<SCRIPT>alert('奥里给!!!')</sCRIpt>

八、xss之htmlspecialchars

挺随便的吧……

记录在herf里了。

直接javascript:alert(233333)

九、xss之href输出

与上题同理

javascript:alert(23333)

十、xss之js输出

……(内心中有一万只什么什么跑过……)

看一下js源码

它会把我们的输入放到JS中,然后对这个变量进行判断,然后再输出

那其实先把前面的结构结束 再单独加一段<script>就好了

'</script><script>alert('pikachu')</script>

Pikachu-XSS的更多相关文章

  1. pikachu的xss及csrf

    一.XSS 可解析的js 未经过滤 XSS见框就插     script 大小写  中间插入 <img src="" onerror="alert(11111)&q ...

  2. Pikachu漏洞练习平台实验——XSS(二)

    概述 简介 XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户 XSS漏洞可以用来进行钓鱼攻击.前端js挖矿.盗取用户cookie,甚至对主机进行远程控制 攻击流程 假设存在漏洞的是 ...

  3. pikachu练习平台(XSS-漏洞测试案例(cookie的窃取和利用、钓鱼攻击、XSS获取键盘记录))

    XSS-漏洞测试案例 xss案例 1.cookie的窃取和利用 2.钓鱼攻击 3.XSS获取键盘记录 在进行案例之前首先要搭建xss后台 搭建xss后台 1.在pikachu文件夹下面,把pkxss单 ...

  4. XSS跨站脚本攻击学习笔记(pikachu)

    颓废了几天,该好好努力了. XSS概述 XSS漏洞是web漏洞中危害较大的漏洞,是一种发生在web前端的漏洞,所以危害的对象也主要是前端用户,XSS可以用来进行钓鱼攻击,前端js挖矿,获取用户cook ...

  5. pikachu靶场-XSS

    .Tips: 一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS 由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器): 通过变化不同的scr ...

  6. XSS - Pikachu

    概述: Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以分为如下几种常见类型 ...

  7. pikachu靶场XSS详解

    一.反射型XSS 1.get型 源码前后区别 前 <form method="get"> <input class="xssr_in" typ ...

  8. Pikachu靶场通关之XSS(跨站脚本)

    一.XSS(跨站脚本)概述 Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以 ...

  9. web安全技术--XSS和CSRF

    Xss一般是脚本代码,主要是JS的,但是也有AS和VBS的. 主要分为反射型,存储型,DOM型三个大类. 一般来讲在手工测试的时候先要考虑的地方就是哪里有输入那里有输出. 然后是进行敏感字符测试,通常 ...

  10. xss之上传文件的xss,绕过csp,预警机制

    xss1.XSS姿势——文件上传XSS https://wooyun.x10sec.org/static/drops/tips-14915.html总结: 1.1.文件名方式,原理:有些文件名可能反应 ...

随机推荐

  1. 异常:java.lang.RuntimeException: Canvas: trying to draw too large(161740800bytes) bitmap

    现象 今天做一个安卓项目的时候,我使用了10张图片,这10张图片都是放在了drawable目录下. 根据这个错误,我在网上寻找解决问题的方案,然后我放在了mipmap-xxhdpi下结果可以运行. 但 ...

  2. if判断语句的总结

    1.表达式:关系表达式或逻辑表达式: 2.表达式的运算结果应该是“真”或者“假”: 真:执行该语句:            假:跳过该语句,执行下一条语句: 3.“语句”可以是单语句也可以是复合语句: ...

  3. Linux发展历史(简略)

    LINUX UNIX历史发展 1969肯 汤姆森在DEC PDP-7机器上开发出了UNIX系统 1971肯 汤姆森的同事丹尼斯 里奇发明了C语言 1973UNIX系统绝大部分用C语言重写,为提高UNI ...

  4. 设置更改root密码、连接mysql、mysql常用命令

    6月19日任务 13.1 设置更改root密码13.2 连接mysql13.3 mysql常用命令 13.1 设置更改root密码 使用场景:例如长时间不用忘记了mysql的root密码,那么就需要去 ...

  5. 转战C#_001

    ---------------尽量用最少的语言描述 C# 世界里的所有事物------------------- 1. C#(pronounced "C-sharp") is an ...

  6. Too many open files的四种解决办法【华为云技术分享】

    [摘要] Too many open files有四种可能:一 单个进程打开文件句柄数过多,二 操作系统打开的文件句柄数过多,三 systemd对该进程进行了限制,四 inotify达到上限. 领导见 ...

  7. 华为“方舟编译器”到底是啥?一文看懂TA如何让手机性能再突破【华为云技术分享】

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

  8. DevOps on DevCloud|如何实现应用接口的混合驱动测试

    引言:在"DevOps能力之屋(Capabilities House of DevOps)"中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力. ...

  9. 深入理解Android异步消息处理机制

    一.概述 Android 中的异步消息处理主要分为四个部分组成,Message.Hndler.MessageQueue 和 Looper.其关系如下图所示: 1. Message 是线程之间传递的消息 ...

  10. CAS都不了解,你还怎么看J.U.C

    前言 说到CAS(CompareAndSwap),不得不先说一说悲观锁和乐观锁,因为CAS是乐观锁思想的一种实现. 悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用 ...