源代码:

可以看到是用htmlspecialchars 对get参数message进行处理,但是他默认不对单引号进行处理的。

只对预定义的字符进行处理:

  • & (和号)成为 &
  • " (双引号)成为 "
  • ' (单引号)成为 '
  • < (小于)成为 <
  • > (大于)成为 >
它的语法如下:
htmlspecialchars(string,flags,character-set,double_encode)

其中第二个参数flags需要重要注意,很多开发者就是因为没有注意到这个参数导致使用htmlspecialchars()函数过滤XSS时被绕过。因为flags参数对于引号的编码如下:

可用的引号类型:

  • ENT_COMPAT - 默认。仅编码双引号。
  • ENT_QUOTES - 编码双引号和单引号。
  • ENT_NOQUOTES - 不编码任何引号。
默认是只编码双引号的!默认只编码双引号!默认只编码双引号……重要的事情说三遍!!!

如果我们的源码是:htmlspecialchars($message, ENT_QUOTES),

这个时候才用我们的payload 就不行了,单引号被转义了。

payload:

输入: ' onclick='alert(111)'       点击触发xss

输入:' onmouseover='alert(1)      触发xss

输入:  ' onmouseover='javascript:alert(1)'   触发xss

最新文章

  1. 包含修改字体,图片上传等功能的文本输入框-Bootstrap
  2. 解决vue与传统jquery插件冲突
  3. 【BZOJ-2527】Meteors 整体二分 + 树状数组
  4. JavaScript学习笔记及知识点整理_3
  5. Nginx 笔记与总结(14)expires 缓存设置
  6. vb6 判断64位操作系统
  7. c# 如何获取项目的根目录
  8. 深度模拟java动态代理实现机制系类之三
  9. Razor视图引擎的基本概念与法语
  10. SQL SERVER 查看死锁的存储过程
  11. 转:40多个关于人脸检测/识别的API、库和软件
  12. oc随笔六:字典
  13. C语言strstr()函数:返回字符串中首次出现子串的地址
  14. QTableView
  15. 读取Excel2003、Excel2007或更高级的兼容性问题 workbook 下载中文名称文件
  16. 申请的阿里云主机ubuntu系统无法显示中文
  17. 逆向并查集 HYSBZ1015星球大战starwar
  18. HDU5985 Lucky Coins 概率dp
  19. ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
  20. python class的创建

热门文章

  1. pandas模块的使用详解
  2. 配置Charles 设置手机代理并允许https请求
  3. 华为交换机telnet登录时老是提醒是否更改初始密码- Warning: The initial password poses security risks
  4. C#高级编程第11版 - 第三章 索引
  5. Java面向对象(三)—— 继承
  6. win api 窗口操作-窗口置顶与寻找与激活
  7. Google performance Tools (gperftools) 使用心得
  8. 正则re高级用法
  9. Python学习【第8篇】:python中的函数
  10. LOJ10067