当前位置: 首页 > news >正文

Cross-Site Scripting

文章目录

      • 反射型xss(get)
      • 反射型xss(post)
      • 存储型xss
      • DOM型xss
      • DOM型xss-x
      • xss-盲打
      • xss-过滤
      • xss之htmlspecialchars
      • xss之href输出
      • xss之js输出

image-20230815221214655

反射型xss(get)

image-20230812143856462

<script>alert("123")</script>

修改maxlength的值

image-20230812143947435

image-20230812143956083

反射型xss(post)

账号admin密码123456直接登录

<script>alert('xss')</script>

image-20230812150211238

image-20230812150216602

存储型xss

在留言板里直接<script>alert('xss')</script>

image-20230812150255251

出现xss的弹框后,点击确定,发现有个删除,说明确实是存到数据库里了

image-20230812150403215

查看数据库又没有这一条数据

image-20230812150651668

再次在留言板里输入js代码<script>alert('zs6666')</script>

image-20230812150736541

再次查看数据库

image-20230812150749514

这就是存储型反射型永久性和一次性的区别,会永久的存储在数据库中。

DOM型xss

javascript语言中分两种BOMDOM

BOM:浏览器对象模型 Brower Object Modeljs代码操作浏览器
DOM:文档对象模型  Document Object Modeljs代码操作标签

查看网页源代码,ctrl+f查找what do you see? 的位置

image-20230812151517365

发现源码中已经给出了xss代码


输入框中的内容就是标注的str,我们可以在这里构造一个闭合,实现弹窗

<a href='"+str+"'>what do you see?</a>

在输入框中输入' onclick="alert('xss')">,点击click me,出现what do you see?点击

image-20230812151847732

DOM型xss-x

image-20230812152427993

输入框里输入1,发现url发生了变化

image-20230812152449376

这次是从url中获取我们输入的text参数的,这就类似反射型,构造闭合即可。' onclick="alert('xss')">

image-20230812152721741

xss-盲打

将留言保存至后台 当管理员登录查看留言时就会触发

在页面中两个输入框中都输入<script>alert("123")</script>,提交后没有反应

查看数据库:

image-20230812153056263

也可以点一下提示,让去后台看看

http://127.0.0.1/pikachu/vul/xss/xssblind/admin.php

image-20230812153122947

发现登录后台,就会弹框

image-20230812154100666

xss-过滤

不知道过滤了什么 双写,提交后没反应

<sc<script>ript>alert("123")</script>

换成大写后成功

<SCRIPT>alert('xss')</SCRIPT>

xss之htmlspecialchars

specialchars函数就是把单引号,双引号,尖括号过滤了,但是这个函数默认是不过滤单引号的

javascript:alert(1)

xss之href输出

href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了<a>标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。

javascript:alert(document.cookie)
javascript:alert(1)

xss之js输出

image-20230812161216819

先输入tmac

在这里插入图片描述

可以提前闭合</script>

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

也可以' ; alert(1); //

页面接受到的就是$ms=''; alert(1);//'

第一步: $ms=‘’’

第二步: $ms=‘’;’ 加分号,表示语句结束

第三步: $ms=‘’; alert(1);’ 弹框

第四步: $ms=‘’; alert(1); //’ 把//后面的那对引号 注释掉

http://www.lryc.cn/news/128290.html

相关文章:

  • 基于java企业员工绩效考评系统设计与实现
  • SpringBoot 操作Redis、创建Redis文件夹、遍历Redis文件夹
  • c++11 标准模板(STL)(std::basic_stringbuf)(六)
  • iceberg系列之 hadoop catalog 小文件合并实战
  • 神经网络基础-神经网络补充概念-25-深层神经网络
  • MySQL— 基础语法大全及操作演示!!!(上)
  • [golang gin框架] 46.Gin商城项目-微服务实战之后台Rbac客户端调用微服务权限验证以及Rbac微服务数据库抽离
  • 域名和ip的关系
  • excel日期函数篇1
  • Leetcode151 翻转字符串中的单词
  • PHP FTP的相关函数及简单使用示例
  • 高光谱 | 矿物识别和分类标签数据制作、农作物病虫害数据分类、土壤有机质含量回归与制图、木材含水量评估和制图
  • 【数据结构】二叉树篇| 纲领思路01+刷题
  • 系统架构设计师---计算机基础知识之数据库系统结构与规范化
  • PyCharm连接Docker中的容器(ubuntu)
  • 安防视频汇聚平台EasyCVR视频监控综合管理平台H.265转码功能更新,新增分辨率配置的具体步骤
  • 全平台数据(数据库)管理工具 DataCap 管理 Rainbond 上的所有数据库
  • “深入探究JVM内部机制:从字节码到实际执行“
  • C++写文件,直接写入结构体
  • 【Spring专题】Spring之Bean的生命周期源码解析——阶段二(二)(IOC之属性填充/依赖注入)
  • 线程|线程的使用、四种实现方式
  • Facebook 应用未启用:这款应用目前无法使用,应用开发者已得知这个问题。
  • (十八)大数据实战——Hive的metastore元数据服务安装
  • ubuntu 22.04 LTS 在 llvm release/17.x 分支上编译 cookbook llvm example Chapter 02
  • 【仿写tomcat】三、通过socket读取http请求信息
  • Hive的窗口函数与行列转换函数及JSON解析函数
  • CSS中的z-index属性有什么作用?如何控制元素在层叠上下文中的显示顺序?
  • c语言——字符转ASCLL码
  • ardupilot开发 --- 安装与调参篇
  • BC108 矩阵交换