XSS(一)

XSS分类
1.反射型XSS
2.持久性XSS
3.DOM型XSS
****
反射型XSS
也称作非持久型,参数型跨站脚本
主要将Payload附加到URL地址参数中
例如:

http://127.0.0.1/XSS.php?name=<script>alert(`XSS`)</script>

持久型XSS
又称存储型跨站脚本
此类XSS不需要用户单机特定URL就能执行跨站脚本
攻击者事先将恶意JS代码上传或存储到漏洞服务器中
当受害者浏览包含此恶意JS代码的页面就会执行JS代码


DOM树
DOM会将XML文件的节点构建成树桩,以此反映文件本身的阶层结构
DOM节点:
文档是由节点构成的集合,在DOM里存在许多不同类型的节点,主要分为三种

  1. 元素节点--<body>、<p>、<ul>之类的元素在文档中的布局形成了文档的结构,称为元素节点
  2. 文本节点--包含一些内容,多数由文本提供
  3. 属性节点--元素或多或少都有一些属性,属性用于对元素做出更具体的描述

DOM型XSS原理
客户端的脚本程序可以通过DOM动态地检查和修改页面内容
程序执行不依赖于服务器端的数据,从客户端获得的DOM中的数据并在本地执行
浏览器用户可以操纵DOM的一些对象,比如URL、LOCATIOIN等
用户在客户端输入的数据如果包含了恶意JS脚本,而这些脚本没有经过适当的过滤和消毒,应用程序就可能受到基于DOM的XSS攻击

简单示例:
HTML页面

<body>
<div id = "private_msg>'XSS test'</div>
</body>

JS:

<script>
var text = document.getElementById('private_msg').innerHTML;
alert(text);
</script>

查找DOM树方法
document.getElementById
document.getElementByName
document.getElementsByTagName

XSS学习(一)的更多相关文章

  1. 第四次:渗透练习,xss学习

    xss学习 一.学习目的 初步了解xss攻击,不包括(DOM类型) 二.附加说明 1.xss介绍 https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/ ...

  2. XSS学习(未完..)

    前言 XSS 漏洞原理非常简单,实际应用中非常灵活,于是通过 prompt(1) to win 来学习学习 正文 工具 分析正则表达式 https://regex101.com/ http://xss ...

  3. PostMessage xss学习和挖掘

    PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...

  4. XSS学习笔记(四)-漏洞利用全过程

    <script type="text/javascript" reload="1">setTimeout("window.location ...

  5. XSS学习笔记(一个)-点击劫持

    所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的.一般都是获取用户的C ...

  6. XSS学习笔记(五)-XSS防御

    如果只生产XSS的地方都与输入或输出相关联的.所以错过了主要矛盾.而且,我们将有一个解决问题的办法:您可以输入端砚格过滤,是可能的过滤输出时间,输出到用户的GET或POST中是否有敏感字符: 输入过滤 ...

  7. 【转载】XSS学习笔记

    XSS的分类 非持久型 非持久型XSS也称反射型XSS.具体原理就是当用户提交一段代码的时候,服务端会马上返回页面的执行结果.那么当攻击者让被攻击者提交一个伪装好的带有恶意代码的链接时,服务端也会立刻 ...

  8. 跨站脚本攻击xss学习

    0.认识跨站脚本 举一个跨站脚本的简单例子. 假设一个页面将用户输入的参数直接显示到页面之中.(比如有如下代码) 在实际的浏览器中,在param中提交的参数正常会展示到页面之中.比如输入下面的URL: ...

  9. XSS学习(二)

    尝试操作Cookie 创建一个cookie,需要提供cookie的名字,值,过期时间和相关路径等 <?php setcookie('user_id',123); ?> 它的作用是创建一个c ...

随机推荐

  1. vue-cli项目多页面配置

    参考 : https://www.jianshu.com/p/0a30aca71b16

  2. 关于ijkplayer下载的demo不能运行,这是因为FFmpeg

    前提是你在Mac上已经配置了 homebrew 包管理工具 关于ijkPlayer的demo和framework的使用,也许当直接下载下来不能使用,这时候你需要再你下载的当前目录下运行,你看下自己的目 ...

  3. L1-060 心理阴影面积

    这是一幅心理阴影面积图.我们都以为自己可以匀速前进(图中蓝色直线),而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工(图中的红色折线).由红.蓝线围出的面积,就是我们在做作业时的心理阴影面积. 现给出 ...

  4. python ---split()函数讲解

    python ---split()函数讲解 split中文翻译为分裂. 在python用于分割字符串使用. split()就是将一个字符串分裂成多个字符串组成的列表. split()可以传入参数,也可 ...

  5. vs-code 基础设置

    汉化设置: 最新版的vscode 汉化需要两步 1 ctrl+shift+p   在顶部输入框中输入 language 后选择  configure Display Language  后进入 第二张 ...

  6. 移动端click事件无反应或反应慢 touchend事件页面滑动时频繁触发

    H5页面的点击事件click 无论在浏览器 iframe还是小程序里面 都会出现点击无反应或者反应慢的情况出现 所以决定用touchend事件来代替click 但是touchend事件触发比较灵敏 在 ...

  7. 配置Nim的默认编译参数 release build并运行

    配置Nim的默认编译参数 release build并运行 默认情况下nim编译是debug build,如果需要release build, 需要加上-d:release , release编译的命 ...

  8. UML 类图口诀

    UML类图口诀: (10G:实线继承)空三角实线指向被继承, (虚实:虚线实现)空三角虚线指向被实现, (恐惧:空棱形聚合)空棱形实线(棱形)指向聚合整体.部分作为成员变量. (十足:实棱形组合)实棱 ...

  9. vs2017 创建虚拟目录失败 http//locXXXXXX,vs2015 无法访问IIS源数据

    两个版本ide打开的错误提示不一样,但是一个解决都解决了 这个问题折磨了我接近五个小时 终于找到了解决方案,在百度上面搜的都没什么鸟用,最终还是在stackoverflow找到了解决方案,附上连接,虽 ...

  10. C\C++控制台程序隐藏方法总结

    学习计算机,往往先从Windows环境下学习编程,学习编程,往往从C学起,学习C,往往又从控制台程序学习,何为控制台,就是那个黑框白字的界面.对于这样一个最初认为奇陋无比而现在认为无所不能的编程平台, ...