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

跨站脚本攻击漏洞

时间:2024-02-21 21:34:25浏览次数:33  
标签:脚本 XSS 跨站 xss DOM 用户 漏洞 攻击者 输入

漏洞讲解

漏洞运用过程:

攻击者会通过xss漏洞在网站注入恶意代码,使得用户在访问网页时,恶意代码执行,从而达到攻击的目的

漏洞原理:

程序对输入和输出的控制不够严格,导致恶意代码输入后,在前端浏览时被当作有效代码进行解析,从而产生各种危害。

漏洞危害:

1)网站中弹窗,影响用户体验和利益
2)网络钓鱼,盗取用户账号信息
3)劫持用户通话
4)盗取用户cookies,获取用户隐私信息
5)蠕虫病毒的传播

xss漏洞分类

1)反射型XSS

反射型xss又称非持久型xss,是发生在客户端上,并且要访问了构造好的恶意链接。
反射型xss是利用应用程对用户的输入和输出的不恰当处理,使得攻击者可以通过构造构造链接,将脚本注入到响应中。若有人访问该链接,在他那里的浏览器就会执行该脚本,从而导致攻击者盗取到用户敏感信息等。

常见注入点:网站搜索框、用户登录入口等

攻击流程:
1.攻击者找到有漏洞的网站,攻击者发送恶意链接给用户,并引诱用户点击
2.用户访问恶意链接
3.服务器会在响应时引入该恶意脚本
4.用户在浏览器打开响应时,恶意脚本执行,攻击者成功实现攻击

案例:(pikachu靶场)

get:


如图,我输入a后,message=后面跟着我们输入的


那么我们直接输入,成功

post:

其实也大差不差
post型,我们就打开bp嘛

在bp里面将它都改成进行测试
也确实是这样

2)存储型XSS

存储型与反射型不同,它是将恶意脚本永久地嵌入到网页界面中,当有用户访问时候便会执行,从而收到攻击,反射型攻击是客户端,它是服务器端,又称持久型xss。

常见注入点:论坛留言处、个人信息查看处、博客等

攻击流程:
1.攻击者在一个可以注入的地方,并留下恶意代码,也永久存储在服务器中
2.用户访问网站,打开留下恶意代码的帖子之类的
3.网站从其数据库获取其帖子内容,在用户的浏览器上解析出来
4.恶意脚本在浏览器上执行,攻击成功

案例:(pikachu靶场)

存储型XSS
输入
刷新一下界面后重新进入

3)DOS型XSS

DOM是一种表示HTML文档结构的对象模型,它运行程序和脚本动态地更新文档内容、结构、样式,并且处理后的结果能够被页面重新解析出来,又DOM型XSS至于后端服务器进行交互,所以DOM型XSS又是一种特殊的反射型XSS

常见注入点:可以通过JavaScript脚本对DOM文档对象进行修改的地方

攻击流程:
1.攻击者首先要找到一个可以通过用户输入或JavaScript脚本生成DOM结果的地方
2.对这个页面采取构造恶意URL等方式,将恶意代码注入到页面上
3.用户点击URL,进入界面,页面收到请求,返回HTML,此时是正常的
4.客户端在执行HTML内的恶意脚本后,注入到页面中
5.恶意脚本在浏览器上执行,修改了页面的DOM树结构,通过DOM元素和属性等来达到目的,通过攻击成功

案例:(pikachu靶场)

DOM型XSS


看到其实有提示
看到Javascript里面写的意思:
首先给变量str赋值上id=text的值(也就是输入框的值)
id=dom里面的内容是由<a href>和str拼接而成
document.getElementById("dom").innerHTML ="<a href='"+str+"'>what do you see?";来看这个结构
可以看到"<a href='" 和 str 和 "'>what do you see?" 三部分拼接、
那我们应该先闭合那个单引号
后面发现是标签<a href>
可以应用onclick
再加上onclick="alert('a')"
在闭合标签加上>
所以整体是'οnclick="alert(‘a’)”>(当然答案不唯一,还有其他的)

DOM型XSS-X

也是一样
' onclick="alert('a')">


此时这个链接重新打开,也是可以触发xss的

其他案例:

xss之盲打

盲打只是你输入的不是在你这个页面显示

我们两个输入框都输入
在后台我们就可以看到

xss之过滤

我们尝试几种,<script>等等
后面发现只要与<script>这样相近的就会被会被过滤
那没事,反正还是有其他标签可以触发的
试试之前的<a>
<a href='' onclick=alert('a')>
可以成功

xss之htmlspecialchars

htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。语法为:htmlspecialchars(string,quotestyle,character-set).
预定义的字符是:
&(和号) 成为&
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
(参考于百度百科https://baike.baidu.com/item/htmlspecialchars/9713223)
简单来说,就是对特殊字符进行处理

输入<script>alert(1)

发现输入的在<a>标签内,跟前面的差不多
在输入框内输入' onclick='alert(123)'

xss之href输出

一开始,没思路,看了一下网上的,他们都看了看源码,我也去看了

从中我们获得了两个提示
一个是用了htmlspecialchars,不能采取闭合了
另一个是使用javascript协议
具体参考(https://blog.51cto.com/u_16175448/7480754)
因此输入JavaScript:alert('a')
成功

xss之js输出

<script>
    $ms='';
    if($ms.length != 0){
        if($ms == 'tmac'){
            $('#fromjs').text('tmac确实厉害,看那小眼神..')
        }else {
//            alert($ms);
            $('#fromjs').text('无论如何不要放弃心中所爱..')
        }

    }
</script>

这是网页源代码一部分
可以看到输入的,在

XSS常用标签

1)<script>
如:<script>alert('a')</script>

2)<a>
如:<a href=javascript:alert('a')>
3)<input>
有多种,主要是可以不同形式触发
如:
<input type="type" onclick=“alert('a')”>,鼠标光标点击时触发
<input type="type" onkeypress=“alert('a')”>,按下按键式时触发
<input type="type" onkeyup=“alert('a')”>,松开按键式时触发
4)<style>
如:<style οnlοad=alert('a')>,页面加载好时触发

XSS的检测手段

检测手段分为两种,有手动,有自动

自动的话,我们在搜索xss,也可以看到很多xss平台,除此之外还有其他工具(其他工具我是看网上的):APPSCAN、AWVS、Burp Suite
手工呢,我感觉先找可疑的地方,再去尝试一些特殊一点的字符如<、>、“、‘等等啊

可能还有一些没学习到位的,到时继续补充(抓头)

标签:脚本,XSS,跨站,xss,DOM,用户,漏洞,攻击者,输入
From: https://www.cnblogs.com/l-xx123/p/18017977

相关文章

  • 一些脚本
    importitertools#假设数组为arrarr=[0,22330693840234311255135949029444484409546667648719176405826663892267656641027,127168478027482847709328807841325386271927515479937061237117195618823278578116,1822583113740538596208886996802121680106653233745488701......
  • 【CVE-2024-21626】容器逃逸漏洞修复
    哈喽大家好,我是咸鱼。好久不见,最近有一个很火的CVE——runc容器逃逸漏洞。年前的时候我们已经在测试环境进行了相关操作打算年后线上进行修复。因为今天咸鱼才开工,所以文章也就拖到了现在......
  • secueCRT脚本小试牛刀
    secureCRT可以使用脚本自动化执行操作,如登录脚本。支持vbs、python(目前最高仅3.9)和jscript。据说还可以录制操作,没试过。secureCRT版本为9.10。secureCRT内置了一些对象,入crt,具体用法可见官网,或其他网上资料。尝试了vbs和python,功能一样:#$language="VBScript"#......
  • Weblogic XMLDecoder反序列化漏洞(CVE-2017-10271)复现
    0x00漏洞简介OracleFusionMiddleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。OracleWebLogicServer是其中的一个适用于云环境和传统环境的应用服务器组件。OracleFusionMiddleware中的Oracle......
  • Apache Shiro反序列化漏洞 (CVE-2016-4437)复现
    0x00漏洞简介ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。ApacheShiro1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触......
  • springboot jar 快速启停脚本
    Window启动@echooffstartjavaw-jar-Dfile.encoding=UTF-8-Dlogging.config=D:\deploytest\logback-spring.xmlD:\deploytest\gateway-server-1.0.0.jarecho"gatewaysuccess----"startjavaw-jar-Dfile.encoding=UTF-8-Dlogging.config=D:\de......
  • Kafka-批量启动和停止Kafka节点脚本
    1、编辑脚本#!/bin/bashzookeeper_home=/usr/local/zookeeperkafka_home=/usr/local/kafkazookeeper_array=(hadoop01hadoop02hadoop03)kafka_array=(hadoop01hadoop02hadoop03)##启动和停止Zookeeperfunctionzookeeper_operate(){zookeeper_operate=$@......
  • Zookeeper-批量启动和停止zookeeper节点脚本
    背景由于zookeeper的服务启动和停止,需要一台一台地去启动和停止。当部署的zookeeper节点多时非常麻烦,所以编写下面的脚本,用于提升启动和停止的效率。执行如下脚本需要确保:脚本存放的服务器与所有的zookeeper节点直接可以免密登录(服务器之间建立互信)。1、编辑脚本vi manage-z......
  • 一键脚本破解最新版 idea 步骤,开启学习java 之旅,好好好
    效果:步骤1、idea安装:直接在官网下载最新idea-2022.2.3.dwg(:官网地址,然后根据安装引导一步一步完成安装即可,完成后打开idea看到如下效果表示idea安装成功!如图发现idea需要注册!这里我们先不管,直接关闭idea准备激活!步骤2、下载最新的破解包https://pan.baidu.com/s/1iQby9......
  • 【油猴脚本】百度-原创力-人人-豆丁-道客-豆丁建筑文档下载
    【油猴脚本】百度-原创力-人人-豆丁-道客-豆丁建筑文档下载描述这是一个用于Tampermonkey或其他支持用户脚本的浏览器扩展的油猴脚本。看到论坛经常有小伙伴们需要下载某创力文档-某人文库一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档......