反射型XSS攻击原理
XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS与反射型的XSS。
DOM型的XSS由于其特殊性,常常被分为第三种,这是一种基于DOM树的XSS。例如服务器端经常使用document.boby.innerHtml等函数动态生成html页面,如果这些函数在引用某些变量时没有进行过滤或检查,就会产生DOM型的XSS。DOM型XSS可能是存储型,也有可能是反射型。
(注:下面的实验都是在Firefox浏览器下进行的,感谢火狐没做XSS filter)
LOW
<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Feedback for end user echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}
?>
可以看到,代码直接引用了name参数,并没有任何的过滤与检查,存在明显的XSS漏洞。
MEDIUM
服务器端核心代码
<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = str_replace( '<script>', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>";
}
?>
可以看到,这里对输入进行了过滤,基于黑名单的思想,使用str_replace函数将输入中的
HIGH
服务器端核心代码
<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>";
}
?>
可以看到,High级别的代码同样使用黑名单过滤输入,preg_replace() 函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。
反射型XSS攻击原理相关推荐
- 详解 XSS 攻击原理
更多优质博文请关注:听到微笑的博客 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分, ...
- 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击
主要包括 浏览器同源策略与跨域请求 XSS攻击原理及防御策略 如何使用SpringSecurity防御CSRF攻击 CC/DDOS攻击与流量攻击 什么是SSL TLS HTTPS? 一.浏览器的同源策 ...
- 漏洞:反射型 XSS 攻击
什么是反射型 XSS 攻击? 反射型 XSS 是指应用程序通过 Web 请求获取不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户.反射型 XSS 一般可以由攻击者构造带有恶意代码 ...
- Web 安全之 XSS 攻击原理/分类/防御 详解
什么是 XSS 攻击? 全称 Cross-Site Scripting 跨站脚本攻击,简写为了避免和 CSS 冲突而改成 XSS 原理:通过在浏览器可输入的地方(比如评论栏.搜索栏.地址栏等)注入脚本 ...
- 反射型xss解决方法,增加过滤器,防止反射型 XSS攻击漏洞
web.xml配置 <filter><filter-name>XSSFilter</filter-name><filter-class>com.xxx. ...
- 深入理解XSS攻击与防御
深入理解XSS攻击与防御 What is XSS XSS攻击的类型 XSS攻击原理 XSS攻击危害 XSS攻击方法 How to defense XSS 防御原则:永远不要相信用户的输入. 防御措施 ...
- XSS跨站脚本攻击原理与常见的脚本及《XSS跨站脚本攻击剖析与防御》摘录总结
XSS跨站脚本攻击原理与常见的脚本及<XSS跨站脚本攻击剖析与防御>摘录总结 一.XSS跨站脚本攻击的原理 1.什么是XSS跨站脚本 2.跨站脚本攻击产生因素 二.XSS跨站脚本攻击的类别 ...
- 【网络攻防】“跨站脚本攻击“ 第一弹 ——反射型XSS
撰稿|谢泳 编辑|王聪丽 信息收集|谢泳 目录 1. 初识XSS 2. 反射型XSS 2.1 Cookie劫持 2.2 Get请求 2.3 Post请求 3. 防御方式 1. 初识XSS 跨站脚本攻击 ...
- web安全-XSS攻击(一)
XSS攻击和SQL注入都是web安全中很常见的攻击方式,最近先学习XSS攻击,待到XSS学完后再去学习SQL注入,哇(感慨一番),这些知识真的太有趣了. 在开始之前,有必要了解一下概念 1.XSS跨站 ...
最新文章
- 从JSON数据中取出相关数据
- Jmeter 在 beanshell 脚本中写日志
- 百度搜索结果 转换_如何让图片出现在百度搜索结果里出现?
- linux go redis,godis: go实现的一个redis项目, 很好还有博客,非常值得学习
- 维基百科用php,在PHP中解析维基百科标记的最佳方法是什么?
- 王者荣耀10连胜,竟然也有人不相信,猎游大神带菜鸡玩家10连胜
- Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
- Throwable、Error、Exception、RuntimeException 区别
- Elasticsearch与SpringBoot整合 High-level-client-rest
- 你了解的工厂模式可能有误
- SQL Agent服务无法启动如何破
- 大数据与机器学习:实践方法与行业案例.1.4 本章小结
- 降维系列之 LTSA 局部切空间排列
- 用手机打开exe文件
- 单片机cant通讯 c语言,基于C8051F040单片机的CAN总线通信
- (全网首发)谢惠民答案------谢惠民上下册习题解析
- GMAC接口(2)——协议
- mysql动态ip域名连接_用本地动态IP连接本地mysql
- 理解线性变换和基(坐标)变换
- uni-app的flex盒模型与布局进阶写法(高手勿进)