01-xss基本原理

news/2024/11/16 5:25:04/

核心:攻击的是前端,

一、课程引入

1、开发一个简单的PHP页面,代码如下:

<?php
// xss 基础演示代码:从浏览器中接受一个URL地址参数名为content
if(isset($_GET['content'])){$content=$_GET['content'];echo "你输入的内容:$content";
}else{echo "请在地址栏输入content值";
}
?>

2、在地址栏输入:http://localhost/shentou/xss/testxss.php?content=hello,world 可以正常输出:你输入的内容是hello,world

3、如果在地址栏输入:http://localhost/shentou/xss/testxss.php?content=

也可以是alert("hello,world")或者试试快来点我

4、如果在地址栏输入:

http://localhost/shentou/xss/testxss.php?content=<script> var result = 0; for (var i=0; i<999;i++){result+=i;}alert(relslt);</script>

其中+号变成了空格

5、如果地址栏输入

http://localhost/shentou/xss/testxss.php?content=<script> var result = 0; for (var i=0; i<999;i++){result+=i;}alert(relslt);</script>

xss的核心要求是构造出能够让前端执行的JavaScript代码,所以要求我们对Javascript的代码必须要熟悉

xss也算是注入类的漏洞,JavaScript的代码注入,所以xss漏洞更主要是去攻击系统用户,而不是系统本身

先试探

二、xss概述

xss全程为:Cross site scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析引擎,

Xss就是让攻击者的JavaScript代码在受害者的浏览器上执行

xss攻击者的目的就是寻找具有xss漏洞的网页,让受害者在不知情的情况下,

在有xss漏洞的网页上执行攻击者的JavaScript代码

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

JavaScript运行条件:

1)代码位于""标签中

<script>alert(1)</script>

2)代码位于onclick事件中,此类事件带有onerror,onfocus,onblur,onchange,onmouseover等

http://localhost/shentou/xss/testxss.php?content=<script>alert(1)</script> <img src="http:/"> http://localhost/shentou/xss/testxss.php?content=<a href="地址">点击有惊喜</a>

3)代码位于超链接的href属性中,或者其他类似属性中

xss 的攻击payload一定满足上述条件

XSS是以Web站点用户为攻击目标,而不是服务器,所以是一种钓鱼攻击,攻击目标是不确定的。

但是,如果是针对cookie类的攻击,隐含一个目标(越权类的操作):网站管理员,

就可以获取网站管理员的coolie,通过网站管理员cookie登录,可以管理网站

基于xss配置钓鱼网站:自行构造一个与淘宝页面一样的页面,

用户一旦输入用户和密码,将直接发送账密发送到攻击者的后台服务器,

然后将后台账密保存后,再跳转到真实的淘宝网站,让用户完成后续工作,服务器代码类似于

// 获取用户的淘宝账密 $username=$_POST['username']; $password=$_POST['possword']; // 将数据保存起来,文件或数据库 // 让他直接跳转到真实的网站 echo "<script>location.href='https://www.taobao.com';</script>"

利用ifame完成XSS攻击,将攻击者的模仿页面嵌入被攻击网页中,:

五、xss的危害

1)网页挂马

2)盗取用户Coolie并扮演用户角色。

3)DOS(拒绝服务攻击)客户端浏览器

4)钓鱼攻击,高级的钓鱼技巧

5)删除目标文章、恶意篡改数据、嫁祸

6)劫持用户Web行为,甚至进一步渗透内网

7)爆发web 2.0蠕虫

8)蠕虫式的DDOS攻击

9)蠕虫式挂马攻击、刷广告、刷流量、破环网上数据

一言以弊之,具体实现何种危害,完全取决于你的JavaScript代码执行何种功能。

(其实就是js能干什么,我就可以干什么)


http://www.ppmy.cn/news/1456127.html

相关文章

k8s保持pod健康

存活探针 Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。如果探测失败&#xff0c;Kubemetes 将定期执行探针并重新启动容器。 Kubemetes 有以下三种探测容器的机制&#xff1a; HTTP GET 探针对容器的 IP 地…

【SolidWorks】快速做一个密闭箱体的方法

最近博主在用SolidWorks搭建一个带有上盖的方壳体&#xff0c;经过一番摸索&#xff0c;发现采用“特征”里的“拉伸”和“抽壳”两个功能&#xff0c;就可以快速搭建一个封闭箱体。这里将快速做密闭箱体的方法分享给大家。 1、在草图里画一个箱体的底部图形&#xff0c;比如方…

如何使用Knife4j进行接口测试

Knife4j是一个为Java MVC框架提供增强的Swagger UI界面的开源工具&#xff0c;它集成了Swagger UI并提供了更丰富的功能。使用Knife4j可以进行接口的测试&#xff0c;以下是使用Knife4j进行接口测试的详细步骤和解释&#xff1a; 1. 引入Knife4j依赖 首先&#xff0c;确保你的…

python获取图像边缘轮廓

在计算机视觉领域,图像边缘检测是基础且关键的一环,它能够帮助我们从复杂的图像数据中提取有用的结构信息,进而用于物体识别、形状分析等多种应用。Python凭借其丰富的库支持,如OpenCV、Pillow、Scikit-image等,成为了实现图像边缘检测的热门工具。本文将详细介绍如何使用…

虚幻引擎5 Gameplay框架(二)

Gameplay重要类及重要功能使用方法&#xff08;一&#xff09; 配置LOG类及PlayerController的网络机制 探索验证GamePlay重要函数、类的执行顺序与含义 我们定义自己的日志&#xff0c;专门建立一个存放自己日志的类&#xff0c;这个类继承自BlueprintFunctionLibrary 然后…

c++ 唤醒指定线程

在C中&#xff0c;直接唤醒一个特定的线程并不像在Java的Thread类中有interrupt()方法或者某些操作系统特定的API&#xff08;如POSIX的pthread_cond_signal或Windows的SetEvent&#xff09;那样简单。C标准库没有提供一个直接的方法来"唤醒"一个正在等待的线程。然而…

sh: 1: appimagetool: not found

下载 appimagetool&#xff1a; 首先&#xff0c;访问 AppImageHub 或者 AppImage GitHub releases 页面 查找 appimagetool 的最新版本。 安装 appimagetool&#xff1a; 下载完成后&#xff0c;你将获得一个 .AppImage 文件。你需要将这个文件转换为可执行文件&#xff0c…

1077 互评成绩计算

solution 总成绩 &#xff08;老师成绩 同学去掉最高分去掉最低分的平均分&#xff09;/2&#xff0c;其中总成绩四舍五入取整 #include<iostream> #include<algorithm> using namespace std; int main(){int n, m, worst, better, sum, g, x, cnt;scanf("…