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攻击原理相关推荐

  1. 详解 XSS 攻击原理

    更多优质博文请关注:听到微笑的博客 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分, ...

  2. 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击

    主要包括 浏览器同源策略与跨域请求 XSS攻击原理及防御策略 如何使用SpringSecurity防御CSRF攻击 CC/DDOS攻击与流量攻击 什么是SSL TLS HTTPS? 一.浏览器的同源策 ...

  3. 漏洞:反射型 XSS 攻击

    什么是反射型 XSS 攻击? 反射型 XSS 是指应用程序通过 Web 请求获取不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户.反射型 XSS 一般可以由攻击者构造带有恶意代码 ...

  4. Web 安全之 XSS 攻击原理/分类/防御 详解

    什么是 XSS 攻击? 全称 Cross-Site Scripting 跨站脚本攻击,简写为了避免和 CSS 冲突而改成 XSS 原理:通过在浏览器可输入的地方(比如评论栏.搜索栏.地址栏等)注入脚本 ...

  5. 反射型xss解决方法,增加过滤器,防止反射型 XSS攻击漏洞

    web.xml配置 <filter><filter-name>XSSFilter</filter-name><filter-class>com.xxx. ...

  6. 深入理解XSS攻击与防御

    深入理解XSS攻击与防御 What is XSS XSS攻击的类型 XSS攻击原理 XSS攻击危害 XSS攻击方法 How to defense XSS 防御原则:永远不要相信用户的输入. 防御措施 ...

  7. XSS跨站脚本攻击原理与常见的脚本及《XSS跨站脚本攻击剖析与防御》摘录总结

    XSS跨站脚本攻击原理与常见的脚本及<XSS跨站脚本攻击剖析与防御>摘录总结 一.XSS跨站脚本攻击的原理 1.什么是XSS跨站脚本 2.跨站脚本攻击产生因素 二.XSS跨站脚本攻击的类别 ...

  8. 【网络攻防】“跨站脚本攻击“ 第一弹 ——反射型XSS

    撰稿|谢泳 编辑|王聪丽 信息收集|谢泳 目录 1. 初识XSS 2. 反射型XSS 2.1 Cookie劫持 2.2 Get请求 2.3 Post请求 3. 防御方式 1. 初识XSS 跨站脚本攻击 ...

  9. web安全-XSS攻击(一)

    XSS攻击和SQL注入都是web安全中很常见的攻击方式,最近先学习XSS攻击,待到XSS学完后再去学习SQL注入,哇(感慨一番),这些知识真的太有趣了. 在开始之前,有必要了解一下概念 1.XSS跨站 ...

最新文章

  1. 从JSON数据中取出相关数据
  2. Jmeter 在 beanshell 脚本中写日志
  3. 百度搜索结果 转换_如何让图片出现在百度搜索结果里出现?
  4. linux go redis,godis: go实现的一个redis项目, 很好还有博客,非常值得学习
  5. 维基百科用php,在PHP中解析维基百科标记的最佳方法是什么?
  6. 王者荣耀10连胜,竟然也有人不相信,猎游大神带菜鸡玩家10连胜
  7. Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
  8. Throwable、Error、Exception、RuntimeException 区别
  9. Elasticsearch与SpringBoot整合 High-level-client-rest
  10. 你了解的工厂模式可能有误
  11. SQL Agent服务无法启动如何破
  12. 大数据与机器学习:实践方法与行业案例.1.4 本章小结
  13. 降维系列之 LTSA 局部切空间排列
  14. 用手机打开exe文件
  15. 单片机cant通讯 c语言,基于C8051F040单片机的CAN总线通信
  16. (全网首发)谢惠民答案------谢惠民上下册习题解析
  17. GMAC接口(2)——协议
  18. mysql动态ip域名连接_用本地动态IP连接本地mysql
  19. 理解线性变换和基(坐标)变换
  20. uni-app的flex盒模型与布局进阶写法(高手勿进)

热门文章

  1. 易飞ERP Msg Type:E and ID:201403 not found!故障处理
  2. 《动态壁纸 : 手机壁纸大全》用户协议
  3. (私人收藏)蓝色抽象科技感工作计划PPT模板
  4. Apache Mahout初体验
  5. win7摄像头软件_菜鸟记400旧手机当摄像头,网课直播设备不用愁
  6. react快速框架dva搭建项目架构
  7. LAYDATE日历插件使用
  8. PS切片为什么会切出很多不想切的东西呢?
  9. ELK - X-Pack设置用户密码
  10. 《Vue.js实战》知乎日报V2.0