XSS构造技巧
利用字符编码:
百度曾经出过一个XSS漏洞,在一个<script>标签中输出一个变量,其中转义了双引号:
var redirectUrl="\";alert(/XSS/);";
一般来说这里是没有XSS漏洞的,因为变量位于双引号内,系统转义了双引号。但是百度的返回页面是GBK/GB2312编码的,因此"%c1\"这两个字符被组合在一起会成为一个Unicode字符,在Firefox下会认为这是一个字符,所以构造:
%c1";alert(/XSS/);//
" %c1 "把转义字符" \ "吃掉了,从而绕过检查实施XSS攻击。
绕过长度限制:
最好的办法是把XSS Payload写到别处,再通过简短的代码加载这段XSS Payload。
最常用的一个藏代码的地方,就是”location.hash“。根据HTTP协议,location.hash的内容不会在HTTP包中发送,所以服务器端的Web日志不会记录下location.hash里的内容,从而更好地隐藏攻击者意图。
可通过注释符绕过长度限制,把两个文本框之间的代码注释掉,打通两个<input>标签。
使用<base>标签:
<base>标签将指定其后的默认标签从"http://www.google.com"取URL:
<body>
<base href="http://www.google.com" />
<img src="/intl/en_All/images/srpr/logolw.png" />
</body>
需要注意的是,<base>可以出现在页面任何地方,并作用于该标签之后的所有标签。如果攻击者在页面中插入了<base>标签,就可以通过在远程服务器上伪造图片,链接或脚本,劫持当前页面中所有使用”相对路径“的标签。
所以在设计XSS安全方案时,一定要过滤掉这个非常危险的标签。
XSS构造技巧的更多相关文章
- XSS的构造技巧
XSS的构造技巧 By:Mirror王宇阳 E-mail:2821319009@qq.com 本文为长期持续维护,一旦遇到新的技术技巧将及时更新本文内容 非常的欢迎技术大佬纠正并补充,也欢迎技术同僚讨 ...
- XSS常用技巧
一般发现一个xss漏洞后要做的基本上就是这些: 1. 伪造请求 使用$_REQUEST或$_GET 首先我们要找找该网站使用的程序是不是在网上能找到源码,如果能找到源码的话,就去分析后台管理员更改密码 ...
- xss构造--如何使用xss语句
XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...
- 【奇淫巧技】XSS绕过技巧
XSS记录 1.首先是弹窗函数: alert(1) prompt(1) confirm(1)eval() 2.然后是字符的编码和浏览器的解析机制: 要讲编码绕过,首先我们要理解浏览器的解析过程,浏览器 ...
- Vue中的Xss构造
首发tools:https://www.t00ls.net/thread-59512-1-1.html 存储型XSS 最近做测试的时候碰到了一个前端页面使用了Vue框架的项目 在测试XSS漏洞的过程中 ...
- XSS构造剖析
参考:邱永华<XSS跨站脚本攻击剖析与防御> 一 绕过XSS-filter 1.利用<>标记注射Html/JavaScript比如:<script>alert('X ...
- 谨慎能捕千秋蝉(一)——XSS
最近在研读<白帽子讲web安全>和<Web前端黑客技术揭秘>,为了加深印象,闲暇之时做了一些总结. 下面是书中出现的一些专有词汇: POC(Proof Of Concept): ...
- 跨站脚本攻击xss学习
0.认识跨站脚本 举一个跨站脚本的简单例子. 假设一个页面将用户输入的参数直接显示到页面之中.(比如有如下代码) 在实际的浏览器中,在param中提交的参数正常会展示到页面之中.比如输入下面的URL: ...
- web攻击之一:XSS跨站脚本
一.浏览器安全 同源策略 影响源的因素:host,子域名,端口,协议 a.com通过以下代码: <script scr=http://b.com/b.js> 加载了b.com上的b.js, ...
随机推荐
- Day16 IO流
流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. Ja ...
- springboot项目打war包pom设置
<build> <finalName>PayManager</finalName><!--打包后的名字PayManager.war--> <plu ...
- sql sever和mysql 卸载及oracle安装
sql sever和mysql的卸载及Oracle安装 目的:本人健忘,以后难免会重装系统啥的,软件卸了装是常有的事,特此写此详细教程,一是方便自己以后重装的时候可以看看:二是如果有某位初学者有幸光临 ...
- Gobelieve 架构(转载)
Gobelieve 架构 Gobelieve github地址 im 客户连接服务器 (可分布式部署,暂无负载均衡模块) imr 路由查询服务器(主要解决im分布式部署的问题) ims 存储服务器 ( ...
- linux 学习第十八天学习(DNS分离解析、DHCP配置、邮件服务配置)
DNS分离解析技术 yum install bind-chroot systemctl restart named systemctl enable named vim /etc/named.conf ...
- 在centos环境下编译安装myrocksdb
rocksdb(https://rocksdb.org.cn/)是脸书(facebook)公司开源的一个key-value存储引擎,基于leveldb开发.rocksdb使用的是LSM存储引擎,纯c+ ...
- redis 基本数据类型-列表(List)
今天不瘦给大家分享一下redis第二个基本数据类型:列表.如果大家了解基本数据结构,相信大家对列表不会陌生,比如在C语言中我们可以使用数组实现一个列表,也可以使用链表实现一个列表(列表链表傻傻分不清楚 ...
- 一些漂亮的js库
http://tympanus.net/Development/ModalWindowEffects/ http://js1k.com/2013-spring/demos http://dimseme ...
- plsql分页
分页是任何一个网站(bbs,网上商城,blog)都会使用到的技术,因此学习pl/sql编程开发就一定要掌握该技术.如下图: 1. 编写无返回值的存储过程 首先是掌握最简单的存储过程,无返回值的存储过 ...
- PostgreSQL集群方案相关索引页
磨砺技术珠矶,践行数据之道,追求卓越价值 返回顶级页:PostgreSQL索引页 本页记录所有本人所写的PostgreSQL的集群方案相关文摘和文章的链接: pgpool-II: 1 pgpool-I ...