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