Ric*_*yes -1 html javascript code-injection
这是我注入页面的JavaScript代码:
javascript:{document.head.innerHTML+='<script>function inject(){alert("hello");}</script>';
document.body.innerHTML+='<button onclick="inject()">Run</button>';}
Run Code Online (Sandbox Code Playgroud)
在URL栏中运行此代码后,我检查网站的源代码.按钮和功能定义都存在,但按下按钮不会像预期的那样运行警报.
可能是什么问题呢?
有些浏览器不再接受javascript:直接从位置栏,他们需要你从书签中调用脚本
你的语法气味如意.你在这里尝试的东西永远不会那样
这个语法:
javascript:(function() { var s = document.createElement("script"); s.src="somejsurl.js";document.getElementsByTagName("head")[0].appendChild(s)})()
Run Code Online (Sandbox Code Playgroud)
可能是一个更好的开始
要执行此操作,您需要创建一个html页面
<a href="javascript:(function() { var s = document.createElement('script'); s.src='somejsurl.js';document.getElementsByTagName('head')[0].appendChild(s)})()">Exec</a>
Run Code Online (Sandbox Code Playgroud)
在href代码中使用单引号并加载并将"Exec"拖动到书签
在测试时,Chrome和Firefox都有一个可以使用的命令行
如果要创建脚本而不加载它,则需要在创建的按钮中内联脚本:
javascript:(function() { var b = document.createElement("button"); b.onclick=function() { alert('hello')}; b.innerTHML='Hello';})()
Run Code Online (Sandbox Code Playgroud)