首页 > 其他分享 >xss跨站脚本攻击

xss跨站脚本攻击

时间:2023-07-08 10:55:37浏览次数:36  
标签:脚本 xss 跨站 DOM 代码 alert XSS 页面

xss跨站脚本攻击

2023年3月29日

8:26

又叫CSS(Cross Site Script),跨站脚本攻击

原理:

指的是恶意攻击者往Web页面里插入恶意JS代码,当用户浏览该页之时,嵌入其中Web里面的JS代码会被执行,从而达到恶意的特殊目的

xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。

攻击目标:用户

XSS的攻击方式/类型

反射型XSS:

<非持久化> 攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。一般是后端代码进行处理

存储型XSS:

<持久化> 代码是存储在服务器数据库中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。

DOM型XSS:

基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。一般是浏览器前端代码进行处理。

防御措施

(1)编码:对用户输入的数据进行HTML Entity编码

(2)过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点等。

(3)校正:避免直接对HTML Entity编码,使用DOM Prase转换,校正不配对的DOM标签

(4).验证码,/token

DVWA演示

反射型xss

Vulnerability: Reflected Cross Site Scripting (XSS)

Low

Low Reflected XSS Source  there  any  nput?

192.168.48.167 묘示  Ijl

Medium

![Medium Reflected XSS Source $_GET ) $ _r„ET

str_replace()有致命弊端,他区分大小写,我们可以使用大写绕过或者双写绕过

<SCRIPT>alert(lir)</SCRIPT> // 有一个字符大写即可

<scr<script>ipt>alert(1)</script>

漏 洞 : 反 射 式 跨 站 点 脚 本 (XSS)  你 叫 什 么 名 字 ? <SCRlPT>alertCljr)</SCRlPTl 提 交

192.168.4&167 표示  Ijl

HIGH

<?php header ("X-XSS-Protection: 0"); // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>"; } ?>

来自 <http://192.168.48.110/dvwa/vulnerabilities/view_source_all.php?id=xss_r>

Submit  Hello 173456789e

<img src=1 one rror=alert(/ljl/)>

What's your name? <img src=l one rror=alel Submit  Hello 1234567890

![Vulnerability t Cross What's your name? Submit More Information 9192.168.48.110 Ijl/

----------------------------------------------------------------

存储型xss

攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。这就意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此储存型XSS的危害会更大。因为存储型XSS的代码存在于网页的代码中,可以说是永久型的。

存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。

Vulnerability: Stored Cross Site Scripting (XSS

Low

Vulnerability: Stored Cross Site Scripting (XSS)  Name •  Sigl Guestbook Clear Guestbook

<script>alert(‘ljl’)</script>

192.168.48.167 교示  Ijl

Medium

str_replace()有致命弊端,他区分大小写,

我们可以使用大写绕过<Script>alert (*1j1')</Script>

也可以用双写绕过<scri<script>pt>alert(ljl)</script>

尽管对message参数进行了编码,但对于name参数仍然是简单过滤,我们希望通过大写或双写绕过,但发现name参数有长度限制

用burpsuit 改包解除长度限制

也可以直接用开发者工具改字段长度限制

θ 192.168.48.169

scirpt 标签

<script> 标签用于定义客户端脚本,比如 JavaScript。

<script>alert(1);</script>

<script>alert("xss");</script>

alert()

是显示一条弹出提示消息和确认按钮的警告框。

需要注意的是 :alert()是一个阻塞的函数,如果我们不点确认按钮,后面的内容就不会加载出来。

// 已经对<script>标签进行了严格的过滤

>

//img标签原理:插入一个没有的图片,当浏览器找不到图片时,自动执行后边的代码。

HIGH

Vulnerability: Stored Cross Site Scripting (XSS)  123456789000m cnoooo  Message •  Guestbook Clear Guest•ook  Name: test  Message This is a test coment < table  <input name-"txtName" type-"text"

把这个值改掉

分别使用双写和大写绕过都失败了

:a6essar•  •ueN  aueun.uao e sgu zobessos•l  Isal •ueN  woawono *oogusono  au•eN Name:  Message: This is a test comment  Name:  Message: I  Name:  Message: I

换用img标签

192.168.48.110  /ljl/

成功

标签:脚本,xss,跨站,DOM,代码,alert,XSS,页面
From: https://www.cnblogs.com/xlvbys/p/17536868.html

相关文章

  • nginx配置头 防止xss攻击
    server{ listen8080; server_namelocalhost; add_headerX-Frame-Options"SAMEORIGIN"; add_headerX-XSS-Protection"1;mode=block"always; add_headerX-Content-Type-Options"nosniff"always; add_headerX-Permitted-Cross......
  • 关于通过bat脚本-自动使用mstsc-远程桌面命令登录到远程windows主机的方法
    在Windows系统中,我们可以通过系统自带的mstsc远程桌面工具,登录到远端的windows服务器主机但是需要输入用户名和密码,回车、于是笔者想了一下,能不能创建一个bat文件,双击后,就会自动的传入用户名和密码进行登录经过查询和实验、还真有这样的办法(当然在正式的环境,不建议这样操作,因为......
  • 自作服务启动脚本
      #!/bin/sh#启动脚本!/usr/bin/envbash!/bin/shROOT_DIR='/sdcard/server'APP_PATH=${ROOT_DIR}/safebox-edge-servicePID_PATH=${ROOT_DIR}/service.pidLOG_PATH=${ROOT_DIR}/logCONFIG=${ROOT_DIR}/config.json#使用说明,用来提示输入参数usage(){ec......
  • 在Linux环境下通过命令行执行JMeter脚本后查看响应结果的配置
    在Linux环境中进行性能测试时,我们可能会遇到一定程度的报错。如果无法打开JMeter的GUI界面,但又需要查看响应结果,可以按照以下步骤进行配置:1.打开JMeter的安装目录,在`bin/`目录下找到`jmeter.properties`配置文件。2.使用文本编辑器打开`jmeter.properties`文件,并在文件末尾添......
  • FART脚本针对Android12 + Frida16适配
    针对@hanbinglengyue的FART项目下的Frida脱壳脚本进行最新适配,可在Frida16.1.0+Android12环境下进行脱壳项目地址:https://github.com/LLeavesG/FART-Fix具体使用方法请参见原项目FART:https://github.com/hanbinglengyue/FART对其中的frida_fart.zip中提供的两个js文件进行......
  • 【vue-问题】vue : 无法加载文件 D:\Program Files\nodejs\node_global\vue.ps1,因
    【vue-问题】vue:无法加载文件D:\ProgramFiles\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本。解决方法:①:管理员方式运行PowerShell,输入get-ExecutionPolicy。如果它回复Restricted,表示是禁止的②:输入:set-ExecutionPolicyRemoteSigned③:输入Y(也有可能不会询问,直......
  • 本地yum仓库脚本
    #编写搭建本地yum仓库脚本[root@localhost~]#vimyum.sh #!/bin/bashecho"正在配置本地yum仓库..."mkdir/mnt/centosmount/dev/cdrom/mnt/centos&>/dev/nullecho'/dev/cdrom/mnt/centosiso9660defaults00'>>/etc/fstabmount-arm-rf......
  • 打造自己的脚本语言jacsl-基于C++(1)
    目录flexbison统计字数示例简单计算器flexbisonsudodnfinstallflexbisonsudodnfinstallflex-devel统计字数示例/*字数统计示例*/%{intchars=0;intwords=0;intlines=0;%}%%[a-zA-Z]+{words++;chars+=strlen(yytext);}\n{chars++;lines++;}.{chars......
  • AE脚本丨自适应底栏边框文字标题动画 Box It v1.0&使用教程
    这个AE脚本BoxIt主要是用于快速创建复杂的动态文本框,非常适合下第三标题、标签、聊天气泡、多个文本框等。 去下载它的主要特点有:1.简单易用,无需键入任何代码,通过简单的拖放和调整参数即可创建动态文本框2.包含多种预设选项,如简单、标准、粗体、标签、聊天气泡等......
  • 软件测试 | 如何使用代理配置快速定位接口测试脚本问题?
    更多软件测试学习资料!!!在调试接口用例过程中,如果响应结果和预期结果不一致,则需要检查请求信息。通过代理获取自动化测试中的请求响应信息,对比与正常请求响应的区别,就能够更直观的排查请求错误,相当于编写代码时的debug功能。实战练习在自动化测试中,不论是Java版本还是Python版......