XSS学习(一)
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里存在许多不同类型的节点,主要分为三种
- 元素节点--
<body>、<p>、<ul>之类的元素在文档中的布局形成了文档的结构,称为元素节点 - 文本节点--包含一些内容,多数由文本提供
- 属性节点--元素或多或少都有一些属性,属性用于对元素做出更具体的描述
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学习(一)的更多相关文章
- 第四次:渗透练习,xss学习
xss学习 一.学习目的 初步了解xss攻击,不包括(DOM类型) 二.附加说明 1.xss介绍 https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/ ...
- XSS学习(未完..)
前言 XSS 漏洞原理非常简单,实际应用中非常灵活,于是通过 prompt(1) to win 来学习学习 正文 工具 分析正则表达式 https://regex101.com/ http://xss ...
- PostMessage xss学习和挖掘
PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...
- XSS学习笔记(四)-漏洞利用全过程
<script type="text/javascript" reload="1">setTimeout("window.location ...
- XSS学习笔记(一个)-点击劫持
所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的.一般都是获取用户的C ...
- XSS学习笔记(五)-XSS防御
如果只生产XSS的地方都与输入或输出相关联的.所以错过了主要矛盾.而且,我们将有一个解决问题的办法:您可以输入端砚格过滤,是可能的过滤输出时间,输出到用户的GET或POST中是否有敏感字符: 输入过滤 ...
- 【转载】XSS学习笔记
XSS的分类 非持久型 非持久型XSS也称反射型XSS.具体原理就是当用户提交一段代码的时候,服务端会马上返回页面的执行结果.那么当攻击者让被攻击者提交一个伪装好的带有恶意代码的链接时,服务端也会立刻 ...
- 跨站脚本攻击xss学习
0.认识跨站脚本 举一个跨站脚本的简单例子. 假设一个页面将用户输入的参数直接显示到页面之中.(比如有如下代码) 在实际的浏览器中,在param中提交的参数正常会展示到页面之中.比如输入下面的URL: ...
- XSS学习(二)
尝试操作Cookie 创建一个cookie,需要提供cookie的名字,值,过期时间和相关路径等 <?php setcookie('user_id',123); ?> 它的作用是创建一个c ...
随机推荐
- [Leetcode 217&219]寻找数组中的重复值Contains Duplicate I & II
[题目1] Given an array of integers, find if the array contains any duplicates. Your function should re ...
- DOM艺术基础练习
每个月对于学习的JAVASCRIPT进行总结,加油 主要应用知识点 :
- rtp传输音视频(纯c代码)
参考链接: 1. PES,TS,PS,RTP等流的打包格式解析之RTP流 https://blog.csdn.net/appledurian/article/details/73135343 2. ...
- erlang中http请求
1..app文件中 {application,backend,[ {description,"ebank backend"}, {vsn,1.0}, {modules,[]} ...
- Android四大组件之Service --- 活动与服务的绑定
Acticity与Service进行通信如何在活动中指挥service去做事情? 这里就借助onBind()方法了比如说,目前我们希望在MyService里提供一个下载功能,然后在活动中可以决定何时开 ...
- selenium中的对文本进行全选,复制,粘贴,剪切和删除的操作
# 键盘全选操作from selenium.webdriver.common.keys import Keysdriver.find_element_by_css_selector('#key-dem ...
- 一个切换内外网IP地址的批处理BAT
做了一个切换内外网的小脚本.没想到这个老的没剩几颗牙的DOS竟然功能如此强大.盛名之下名副其实啊!不亏是想当年叱咤风云的操作系统啊! 脚本内容1.建立两个TXT文件,分别按行存储内外网的IP,MASK ...
- IDEA常用快捷键总结
Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱,想排出个理想的榜单还真是困难.以前也整理过Intellij的快捷键,这次就按 ...
- rest参数与扩展运算符
rest参数与扩展运算符 rest参数 当遇上这样一种需求:对于输入的参数,求和返回,但传入的参数个数并不确定. // 在es5中,通常是使用函数自身的arguments对象实现的 function ...
- Java学习笔记(2)
int 和 booleam 不能直接转换,如下语法是不能通过的: boolean b = true; int i = (int) b; int j = 1; boolean a = (boolean) ...