因为最近在学习web安全,出于好奇,尝试对CSDN进行了XSS注入,没想到真的成功了。

操作步骤:

直接找一篇博客,在底下评论

<img src="pic.gif" οnerrοr="javascript:this.src='/noPic.gif';" alt="pic" />

因为CSDN做了简单的转义,他会将注入的标签,去掉闭合性,也就是会把我注入的内容处理为:

<img src="pic.gif" οnerrοr="javascript:this.src='/noPic.gif';" alt="pic">

这样,注入的标签就失去了他的闭合性了,对一些普通的攻击就进行了防御,但是onerror事件是专门针对js出错的,所以,标签闭合性被破坏刚好触发了这个事件,所以,他会被执行,执行之后将img标签的src属性替换成我们想要的属性,然而我注入的这个地址,故意又是一个不能访问的地址,于是,就反复的触发这个onerror事件,最终导致浏览器堆栈溢出了。

说明:如果图片存在,但网络很不通畅,也可能触发 onerror。

解决方法:

1、用html转义,将<>转义成转义符,这样标签就编程了文本了(QQ空间的做法)

2、使用jsoup白名单过滤掉onerror关键字,让他不要在前台显示(这种更安全,因为转义还有可能被绕过)

网络安全(2) -- 关于一次XSS攻击-图片(img标签)的onerror事件相关推荐

  1. 图片(img标签)的onerror事件

    打开网页时提示 Stack overflow at line: 0.我做了截图如下: 经过分析,发现网页中存在类似如下的代码: <img src="pic.gif" οner ...

  2. 图片(img标签)的onerror事件,你有用过嘛?

    分析:特别注意 onerror,当图片不存在时,将触发 onerror,而 onerror 中又为 img 指定一个 NoPic.gif 图片.也就是说图片存在则显示 pic.gif,图片不存在将显示 ...

  3. %3c %3e 转换html,防止基本的XSS攻击 滤掉HTML标签

    /** *防止基本的XSS攻击 滤掉HTML标签 *将HTML的特殊字符转换为了HTML实体htmlentities *将#和%转换为他们对应的实体符号 *加上了$length参数来限制提交的数据的最 ...

  4. 加载默认图片,如何避免img标签陷入onerror事件死循环

    当图片加载失败的时候,我们可以利用onerror事件赋予它默认图片,但是问题来了,假如默认图片又不存在呢,即加载失败,这个时候就会陷入死循环. 为了避免死循环的情况,我们可以在执行完onerror事件 ...

  5. img标签的onerror事件来显示默认图片

    有时,img标签中的src图片加载失败,原来的位置会加载一个碎片化图标. 怎样可以设置一个加载失败时的默认显示图片那? <img width="50px" name=&quo ...

  6. 了解与防御XSS攻击

    一. XSS是什么 XSS攻击全称跨站脚本攻击(Cross Site Scripting),是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写 ...

  7. xss攻击-面向前端的安全攻击 ─=≡Σ(((つ•̀ω•́)つ 知己知彼百战百胜 web安全

    文章目录 XSS简介 测试环境 XSS工具步骤与分类 XSS用到的一些HTML和JS HTML表单文本框介绍 探测xss 反射型XSS 常用的反射型XSS攻击方法 闭合标签 使用下拉菜单 使用隐藏输入 ...

  8. [网络安全提高篇] 一〇四.网络渗透靶场Oracle+phpStudy本地搭建万字详解(SQL注入、XSS攻击、文件上传漏洞)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  9. [网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Python弱口令攻击.自定义字典生成,并构建了Web目录扫描器:本文将 ...

最新文章

  1. 深度学习模型之各种caffe版本(Linux和windows)的网址
  2. python的concat用法_Pandas串联操作concat()用法介绍
  3. ubuntu安装与配置nfs服务器
  4. 美团Android自动化之旅—生成渠道包
  5. Codevs 1025 选菜
  6. vijos 1071 01背包+输出路径
  7. HDU 3555: Bomb
  8. UE4 在游戏中使用Slate
  9. .NET 靠开源再“出圈”!
  10. VB6中SendKeys的基本应用
  11. 武汉理工大学合肥工业大学 计算机,合工大为什么从985降到211?附合肥工业大学211地位(合工大不是985)...
  12. java框架_2020年到了,你需要掌握的9大顶级Java框架
  13. 钉钉web版防撤回、屏蔽已读
  14. ReentrantReadWriteLock 可重入的读写锁
  15. 深度linux如何打开exe文件,在deepin中简单粗暴地执行exe程序
  16. HDB3码:快速上手步骤实例
  17. html中加js弹窗,前端html+css+js弹窗的实现
  18. 广义线性模型 matlab,基于Matlab的广义线性模型建模
  19. win10锁屏时间太短就关闭屏幕
  20. 计算机房要保持清洁 卫生,国家机房数据安全管理制度

热门文章

  1. 软件架构设计---面向服务的架构
  2. 安装 Black Duck
  3. 布袋除尘器过滤风速多少_布袋除尘器-布袋除尘器过滤风速是指的什么?-宏大除尘设备...
  4. HTTP Status 404 的解决思路
  5. HangFire简单实践
  6. 【kafka专栏】使用shell脚本快速安装kafka集群(含视频)
  7. 云服务器和vps二者的区别
  8. 股票pb接口是什么?
  9. swagger支持中英文
  10. 推荐系统实践Task1:熟悉新闻推荐系统基本流程