XSS的构造技巧
XSS的构造技巧
By:Mirror王宇阳 E-mail:2821319009@qq.com
本文为长期持续维护,一旦遇到新的技术技巧将及时更新本文内容
非常的欢迎技术大佬纠正并补充,也欢迎技术同僚讨论学习
利用字符编码
利用字符编码构造成一个xss,在道哥的书中是这样描述的:
百度搜索存在一个script标签输出一个变量,但是转义了双引号
var ** = " \";alert(/xss/);"
正常情况下,双引号被转义了,后面的(引号外)内容是会被赋给**并得不到有效输出的~(一旦赋值那么这就知识一个普通的字符串,而不会构成xss)
但是百度使用了GBK的编码方式返回页面,在返回中“%c1/”会组合成为一个Unicode字符,在浏览器中会被认为是一个合法的字符,意义:表示这个转义的斜杠就失去了作用,同理双引号也就不会被转义
# 构造
%c1";alert(/xss/);//
# 页面返回效果
var ** = "%c1/";alert(/xss/);//"
//这时的**的值时特殊的字符 alert(/xss/);被当做一条可执行的语句存在script标签中构成了xss
绕过长度限制
存在xss漏洞的攻击点,服务端对该处有逻辑上的长度限制;在有限的长度限定内无法完成自己需要的xss语句构造!
举例:<input type=text value="$var" > 该处的$var可以实现xss><script>alert(/xss/)</script>等一定字符限制内容的xss构造……
如果服务端对$var变量的长度设置了字符长度限制……攻击者可以利用事件Event来缩短自己xss的字符长度例如:" onclick=alert(/xss/) 这时候也会鼠标触发事件导致xss的执行……
但是如果长度的限制导致我们也无法使用事件来构造xss;道哥给出的解决办法是:将xss Payload写到其他地方,在构造简短的代码加载Payload xss
使用location.hash
location.hash是一个很好的藏代码的地方,他下载地址栏#符号后面,长度理论上没有限制而且HTTP协议中是不会计算该内容的……
# URL构造
http://www.xxx.com/index.html#alert(/xss执行/)
# 构造xss $var变量的值
" onclick="eval(location.hash.substr(1))"
当触发鼠标时间后,就会执行eval函数(执行js代码),调用location.hash的内容且从第一个字符开始(因为第0个字符是符号#)
特定环境注释绕过长度限制
当我们的xss测试环境下,有两个以及两个以上的可输入的文本框,则可以利用HTML的注释符特性,将两个文本框之间的HTML代码内容全部注释,最终将多个文本框之间连通在一起可以实现多字节长度的xss Payload的构造和使用……
<base>标签
<base>标签是一种用于定义HTML文档中定义的“相对路径”链接属性源地址的标签;通俗的说:
<img src="/imgage/2001/9/img_222993.png">
这是一个图片标签,使用的是相对地址,默认情况是从当前的位置寻找imgage文件夹一路追溯找到png图片,但是本地并没有这个png图片,这个图片是从一个图穿网站上找来的,但是没有使用绝对路径导致图片无法加载,而正有几百个img标签存在与这同样的问题;为了方便可以使用<base>标签,定义:
<base href="http://www.xxx.con/">
在这个标签之后的所有地址链接都会从这个网站开始构造成一个绝对路径进行追溯文件并加载……
攻击者可以在适当的地方加入<base>标签,导致该标签后的所有链接地址重新定义追溯地址的起点位置,攻击者可以利用这个伪造图片、链接等等……这是一种链接地址劫持
巧妙运用window.name
window.name是对当前窗口的对象操作,而非document……利用window.name可以实现不一样的神奇的操作…
index_1.html:
<script>
window.name = "text";
alert(document.domain + "~" + window.name);
window.location = "index_2.html";
</script>
index_2.html:
<script>
alert(document.domain + "~" + window.name)
</script>
最后的测试结果显示:两个HTML页面的window.name的内容为一致!由此可得出:window.name是可以跨站、跨页面实现一定的操作内容的!
同理:window.name的内容值实现了跨页面后,就可以在另外一个由该页面跳转的HTML页面中发现xss漏洞后利用window.name;若window.name是一个xss Payload语句,在页面xss利用处直接写入eval(window.name)岂不是美哉!
XSS的构造技巧的更多相关文章
- 跨站的艺术-XSS Fuzzing 的技巧
作者 | 张祖优(Fooying) 腾讯云 云鼎实验室 对于XSS的漏洞挖掘过程,其实就是一个使用Payload不断测试和调整再测试的过程,这个过程我们把它叫做Fuzzing:同样是Fuzzing, ...
- XSS构造技巧
利用字符编码: 百度曾经出过一个XSS漏洞,在一个<script>标签中输出一个变量,其中转义了双引号: var redirectUrl="\";alert(/XSS/ ...
- WAF指纹识别和XSS过滤器绕过技巧
[译文] -- “Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters” 0x1 前言 之前在乌云drop ...
- 学习xss模拟构造攻击(第一篇)
本文作者:i春秋签约作家——rosectow 0×00前言 XSS又名叫CSS全程(cross site scriptting),中文名跨站脚本攻击,目前网站的常见漏洞之一,它的危害没有像上传漏洞,s ...
- Web安全攻防(简)学习笔记
Web安全攻防-学习笔记 本文属于一种总结性的学习笔记,内容许多都早先发布独立的文章,可以通过分类标签进行查看 信息收集 信息收集是渗透测试全过程的第一步,针对渗透目标进行最大程度的信息收集,遵随&q ...
- XSS常用技巧
一般发现一个xss漏洞后要做的基本上就是这些: 1. 伪造请求 使用$_REQUEST或$_GET 首先我们要找找该网站使用的程序是不是在网上能找到源码,如果能找到源码的话,就去分析后台管理员更改密码 ...
- xss构造--如何使用xss语句
XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...
- xss脚本攻击
xss脚本攻击不仅仅只是alert(1)就算完了,xss脚本攻击真正的用处是盗取普通用户的cookie,或者盗取管理员的cookie. xss分类(类型): 1. 反射型xss2. 存储型xss3. ...
- 谨慎能捕千秋蝉(一)——XSS
最近在研读<白帽子讲web安全>和<Web前端黑客技术揭秘>,为了加深印象,闲暇之时做了一些总结. 下面是书中出现的一些专有词汇: POC(Proof Of Concept): ...
随机推荐
- 自已动手作图搞清楚AVL树
@ 目录 一.背景 二.平衡二分搜索树---AVL树 2.1 AVL树的基本概念 结点 高度 平衡因子 2.2 AVL树的验证 三.旋转操作 3.1 L L--需要通过右旋操作 3.2 R R--需要 ...
- Monster Audio 使用教程(三)多音轨录音、播放
在工作站音轨上,把需要进行录音的音轨的录音按钮点亮,然后点击液晶屏旁边的[录音]按钮,开始录音 导出干声 如果希望录音后,导出干声(干声为录下的原始声音,不受效果器的作用),用其他宿主软件进行处理, ...
- 前端学习(十):CSS选择器
进击のpython ***** 前端学习--CSS选择器 每一条CSS样式声明由两部分组成: 选择器{ 样式: } 在CSS中{}之前的部分就是"选择器","选择器&qu ...
- PHP imageaffinematrixget - 获取矩阵
imageaffinematrixget — 获取矩阵.高佣联盟 www.cgewang.com 语法 array imageaffinematrixget ( int $type [, mixed ...
- 初学编程丨从零开始学习编程的基本路线,BAT程序员亲手总结!
编程并不是说代码怎么写,框架怎么用,业务怎么转换为代码逻辑,这些都不是编程的要素(但却是工作的刚需......).我认为按照下面这个路线来学习编程,会使自己在学习的路途上少去很多问题(比如为啥会有多线 ...
- datagrip安装与破解
datagrip下载 从官网下载的dataGrip可以免费使用30天,如果已经破解过或者付费过的小伙伴可以跳过这个章节.对于未安装软件的小伙伴,博主这里收集了dataGrip的破解教程,扫描底部博主的 ...
- 数据分析First week(7.15~7.21)
描述统计学 当我们面对大量信息的时候,经常会出现数据越多,事实越模糊的情况,因此我们需要对数据进行简化,描述统计学就是用几个关键的数字来描述数据集的整体情况. 1.集中趋势 1.1 众数 众数是样本观 ...
- TF签名为什么这么稳定?TF签名找微导流!
TF签名作为目前最稳定的签名方式收到了业界开发者们的认可,而在如今鱼龙混杂的签名平台中,应该如何选择客厅的TF签名平台呢?下面就一起来看看TF签名为什么这么稳定?TF签名找微导流! TF签名的 ...
- 19-关键字package和import
1. package的使用1.1 使用说明: * 1.为了更好的实现项目中类的管理,提供包的概念 * 2.使用package声明类或接口所属的包,声明在源文件的首行 * 3.包,属于标识符,遵循标识符 ...
- Windows系统护眼色设置
Win10&Win8系统设置护眼色1. windows+R键调出运行窗口(或者鼠标右击开始键,选择运行)2. 在运行窗口中输入 regedit 调出注册表编辑器3. 按照如下顺序找到windo ...