`

javascript注入

 
阅读更多

1、JavaScript注入就是在浏览器地址栏中输入一段js代码,用来改变页面js变量、页面标签的内容。

使用Javascript注入,用户不需要关闭或保存网页就可以改变其内容,这是在浏览器的地址栏上完成的。命令的语法如下:

javascript:alert(#command#) 

例如,如果你想在http://www.example.com站点上看到一个alert警告框,那么首先在地址栏上输入URL并等待页面加载完成,然后删掉URL并输入:

javascript:alert("Hello World")

 作为新的URL。这将弹出一个“Hello World”警告框,使用这一技术几乎可以改变网页的任何内容,例如一张图片。假设有一张网站logo图片,我们通过查看页面源文件找到其中一段HTML代码:

<IMG Name="hi" SRC="hello.gif">

 图片被命名为“hi”,源文件是“hello.gif”,我们想要把它改成存储在我们站点(http://www.mysite.com)上的 “bye.jpeg”文件,因此图片完整的URL地址是http://www.mysite.com/bye.jpeg,使用Javascript注入, 我们只需要在地址栏上输入:

javascript:alert(document.hi.src="http://www.mysite.com/bye.jpeg")

 你将会看到弹出“http://www.mysite.com/bye.jpeg”alert警告,然后图片就被更改了。需要注意的是,这些更改只是暂时的!如果你刷新页面或者重新进入,你的更改将会消失,因为你只是在你的PC作了这些更改,而不是在网页服务器上。

使用同样的方法我们可以查看或更改变量的值,例如我们在网页上找到一段这样的代码:

<SCRIPT LANGUAGE="JavaScript">
var a="test"
</SCRIPT> 

 意思是变量a的值为“test”,现在我们输入:

javascript:alert(a)

 然后我们将其值改为“hello”:

javascript:alert(a="hello")

 Javascript注入通常被用来更改表单属性,假设有一段这样的代码:

<form name="format" action="send.php" method="post">
<input type="hidden" name="mail" value="someone@somewhere.com">
<input type="text" name="name">
<input type="submit" value="submit"></form>

 我们想让表单发送到我们的邮箱,而不是someone@somewhere.com。可以使用如下命令:

javascript:alert(document.format.mail.value="me@hacker.com")
  • 也许你已经注意到了这些命令的层次关系:
  • 我们按照从左到右的顺序依次说明:
  • 1)最左边是document
  • 2)然后是我们想要更改的对象名(比如document.hi.src)或其包含的对象(比如document.format.mail.value)
  • 3)最后是我们想要更改的属性(比如源路径:document.hi.src,或变量值:document.format.mail.value)
  • 4)使用“.”号分隔
  • 5)当我们想要更改属性值的时候,我们使用“=”号和新的属性值
  • *注释:当新的属性值为字符串时(比如:document.format.mail.value="me@hacker.com")需要用双引号把它括起来。
  • 如果我们想要把它作为一个变量的值,则不需要使用双引号""。例如我们想要将变量b的值赋予变量a,我们可以输入javascript:alert(a=b)。
  • 但是,页面中的大部分标签都没有名字,比如:
<form action="send.php" method="post">
<input type="hidden" name="mail" value="someone@somewhere.com">
<input type="text" name="name">
<input type="submit" value="submit"></form>

 在这段代码中没有表单名,综合上面这些信息,可以使用此命令:

javascript:alert(document. .mail.value="me@hacker.com")

 在这种情况下我们必须统计并找出表单序号,下面是一个例子:

<form action="send.php" method="post">
<input type="text" name="name">
<input type="submit" value="submit">
</form>

<form action="send.php" method="post">
<input type="hidden" name="mail" value="someone@somewhere.com">
<input type="text" name="name">
<input type="submit" value="submit">
</form>

<form action="send.php" method="post">
<input type="text" name="name">
<input type="submit" value="submit">
</form> 
  • 在以上代码中我们看见了3个表单,但我们只对第二个感兴趣,因此我们想要的表单序号就是2。不要忘记我们是从1开始计算的,比如1,2,3,4...而javascript却从0开始计算,比如0,1,2,3...所以真正的表单序号是1,不是2,通常我们要把找到的表单序号减一。我们将用这个序号来补全我们的命令:
javascript:alert(document.forms[1].mail.value="me@hacker.com") 
  • 这样你就可以更改没有名字的图片或链接了,你可以把“forms”换成任何你想要的标签类型。对于图片就是
javascript:alert(document.images[3].src="#the url of the picture you want#")

 对于链接就是

javascript:alert(document.links[0].href="#the url you want#")
  •  最后,我们可以用这个技巧来编辑cookies。下面的命令由triviasecurity.net的Dr_aMado编写,我只修改了一点点,让它在用户编辑之前显示出来。你只要把它们复制到地址栏就可以了:
javascript:alert(window.c=function a(n,v,nv){c=document.cookie;c=c.substring(c.indexOf(n)+n.length,c.length);
c=c.substring(1,( (c.indexOf(";")>-1) ? c.indexOf(";") : c.length));nc=unescape(c).replace(v,nv);
document.cookie=n+"="+escape(nc);return unescape(document.cookie);});
alert('The cookie is: "'+document.cookie+'"');alert(c(prompt("The name of the cookie:",""),
prompt("Change this value:",""),prompt("with this:","")))
//如果你想要手动更改你的cookie,可以使用下面这条命令:
javascript:alert(document.cookie)

 这将显示你的当前cookie,假设是“userid=1”,如果你想把它改成“userid=2”,可以使用下列命令:

javascript:alert(document.cookie="userid=2")

 最后我必须强调的是,所有的更改都只是在客户端!就像是把网页保存在你的PC上然后修改它。尽管如此,使用这一技巧你仍然可以欺骗页面(例如cookies)或绕过安全验证。例如一些网页会检测用户发送数据的位置,如果从http://www.test.com/form.php 发送数据到http://www.test.com/check.php,check.php可能会检测数据是否来自http: //www.test.com/form.php上的表单。除此之外,如果你打算在页面中输入你自己的JavaScript代码,通过使用一些这样的技巧,你将能够更改图片并保持不变!

分享到:
评论
2 楼 a114d 2015-11-23  
没看懂,是指直接在URL后面加个  javascript:alert()吗?
1 楼 113980982 2012-04-19  
     nice job
             收藏一个

相关推荐

    通过Javascript注入实施的PDF攻击.pdf

    "通过Javascript注入实施的PDF攻击" 本文将围绕PDF攻击的安全问题进行讨论,具体涉及到Javascript注入实施的PDF攻击、苹果电脑的攻击、Wordpress的Java Script注入攻击、MD5哈希被破解等方面。 首先,让我们来讨论...

    servlet过滤器Api 以及乱码处理.javascript注入问题

    在这个主题中,我们将深入探讨Servlet过滤器的API用法、乱码处理策略以及如何防止JavaScript注入问题。 首先,让我们了解一下Servlet过滤器的基础。在Servlet规范中,`Filter`接口定义了过滤器的核心方法,如`...

    浅谈html转义及防止javascript注入攻击的方法.docx

    ### 浅谈HTML转义及防止JavaScript注入攻击的方法 #### 一、HTML转义的概念 在Web开发中,用户输入的数据经常会直接展示在网页上,例如在评论区、聊天室等场景。如果用户输入的数据中包含HTML标签或者JavaScript...

    web-injection:Chrome扩展程序可将自定义JavaScript注入每个页面

    在这个场景中,"Chrome扩展程序可将自定义JavaScript注入每个页面"指的是开发者可以利用Chrome浏览器的扩展开发机制,创建插件并在用户浏览网页时自动在页面上下文中执行自定义的JavaScript代码,实现各种定制化需求...

    JavaScript注入漏洞的原理及防范(详解)

    JavaScript注入漏洞是一种常见的网络应用安全问题,它允许攻击者通过Web应用程序在用户浏览器中执行恶意脚本代码。本文将深入探讨JavaScript注入漏洞的原理,并提供相应的防范措施。 ### JavaScript注入漏洞的原理 ...

    什么是JavaScript注入攻击?

    JavaScript注入攻击是一种网络安全威胁,攻击者通过注入恶意的JavaScript代码到受信任的网站中,当其他用户访问该网站时,恶意代码将被执行,可能导致用户信息泄露、网站内容被篡改等后果。这种攻击方式常见于接受...

    浅谈html转义及防止javascript注入攻击的方法

    防止JavaScript注入攻击的关键在于正确处理用户输入的数据。以下是一些预防策略: 1. **HTML转义**:如上所述,对用户输入的数据进行HTML转义是最基本的防御手段,可以防止浏览器将它们解释为JavaScript代码。 2. ...

    BrowserExtension_TestJavaScriptInjection:用于测试 JavaScript 注入的 BrowserExtension

    用于注入 Javascript 的浏览器扩展 这是一个示例,向您展示如何通过浏览器扩展将 JavaScript 注入网页。 如何安装 IE 扩展 以管理员身份打开命令提示符并输入命令: Regsvr32.exe IeExtension.dll Popover页面打开...

    sinject:一个简单的javascript注入框架,支持循环依赖和延迟解析

    输入sinject 是一个简单的 JavaScript 注入框架。 它的构建是因为循环依赖和模块加载器不能很好地协同工作,循环依赖和构造函数注入也没有。 循环依赖是否有害? 好吧,它们在某些架构中可能是代码异味。 然而,对于...

    injection-proxy:Flask服务器,可让您将JavaScript注入到Internet上的任何页面

    标题 "injection-proxy: 使用Flask构建的JavaScript注入服务器" 描述了这是一个基于Python的Flask应用程序,其功能是允许用户向互联网上的任意网页注入JavaScript代码。这种技术通常用于Web测试、网页抓取或者安全...

    jquery.environment.js:环境 JavaScript 注入器

    jquery.environment.js 环境 JavaScript 注入器安装在 jQuery 库之后包含脚本 &lt; script src =" /path/to/jquery.environment.js " &gt; &lt;/ script &gt;用法初始化插件并将代码放在 jQuery document.ready 回调...

    iOS中JS注入例子

    在iOS开发中,JavaScript注入是一种常见的技术,它允许我们在原生应用中与Web视图(如UIWebView或WKWebView)中的JavaScript代码进行交互。这种方式能够实现原生功能与网页内容的深度整合,提升用户体验,或者在某些...

    chrome插件js注入网页demo

    而JavaScript注入则涉及到如何利用Chrome插件API,特别是`content_scripts`配置,将JS代码注入到匹配规则的网页中运行。 **详细知识点:** 1. **Chrome扩展结构**:一个典型的Chrome插件包括manifest.json文件、...

    代码注入的三种方法(文档)

    JavaScript注入,也称为XSS(跨站脚本攻击),发生在动态生成的Web页面中,攻击者通过注入恶意的JavaScript代码,使得当其他用户访问该页面时,恶意脚本会在他们的浏览器中执行。这可能导致数据盗窃、会话劫持或...

    Page-Manipulator:浏览器扩展,它将自动将自定义HTML,CSS或JavaScript注入任何网页。 这样,您可以自定义任何网页以适合您的需求。 目前可在Google Chrome和Microsoft Edge上使用

    浏览器扩展,可将HTML,CSS或JavaScript注入任何网页。 将HTML,CSS或JavaScript注入您喜欢的网页。 每次访问指定网站时,都要保存并应用所做的更改。 比“检查元素”更好,因为它会在重新加载页面后保留。 如何...

    Javascript注入技巧

    通过使用javascript注入,用户不用关闭网站或者把页面保存在他的PC上就可以改变网站中的内容.这是由他的浏览器的地址栏完成的. 命令的语法看上去像这样: Copy code javascrit:alert&#40;#command#&#41; 比方说如果...

    h5页面注入js代码

    首先,我们要理解JavaScript注入的两种主要方式:动态注入和静态注入。静态注入通常是在HTML文件中直接写入`&lt;script&gt;`标签,而动态注入则可能在页面加载后通过DOM操作或AJAX请求来添加脚本。 1. 静态注入: 在HTML...

    注入工具集合.zip

    【BeEF(The Browser Exploitation Framework)】同样专注于浏览器安全,通过JavaScript注入,可以控制受害者的浏览器,有时也能在特定情况下协助SQL注入攻击。 使用这些工具时,安全专家会遵循严格的道德准则,仅...

Global site tag (gtag.js) - Google Analytics