Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2720
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-21 12:46
文章分类
文章存档

2014年(1)

我的朋友
最近访客

分类: 其他平台

2014-06-06 15:58:14

Javascript注入





本文已发表于.黑客防线.6月刊,版权属于.黑客防线.及脚本保险小组,转载请坚持文章完全性,谢谢 :

这份指南仅仅是出于讲演目的,如果任何人把它用于守法目标,我不负义务.

通过应用javascript注入,用户不必封闭网站或者把页面保留在他的PC上就能够改变网站中的内容.这是由他的阅读器的地址栏实现的.

命令的语法看上去像这样:

Copy code
javascrit:alert(#mand#)

比喻说假如你想看到在网站里面的一个忠告框,那么首先在地址栏输入URL(),当页面加载完之后,清空URL并输入javascrit:alert("Hello World")作为一个新的URL.这样将弹出一个警告框显示Hello World.可是,一些人会用这个技能改变页面内的简直任何内容.例如一个图片.让我们假想有一个网站的logo图片.通过查看页面源代码(可以使用浏览器中的"查看源代码"做到),我们发明一句HTML代码:

Copy code
IMG Name"hi" src"hello.gif"

得到信息:有一个图片被命名为hi,且源文件为hello.gif.我们想要改变它为bye.jpeg并存储到我们的站点上.所以我们的图片的完整URL是/bye.jpeg 要使用javascript注入,我们需要在地址栏中输入:

Copy code
javascript:alert(document.hi.src"/bye.jpeg")

你将看到一个提醒框说/bye.jpeg,并且在那之后图片将会被改变.注意固然那些变化只是临时的!如果你刷新页面或者再次进入,你造成的变更将丧失,由于你改变的不是服务器上的站点,而是你PC上的.

使用同样的方式,我们可以查看或改变变量的值.比如我们在网站中找到这样一些源代码:

Copy code
SCRIPT LANGUAGE"JavaScript"
var a"test"
/SCRIPT

意思是给变量a赋值test.为了查看变量的值,我们将输入:

Copy code
javascript:alert(a)

而后为了把它从test改为hello,则输入:

Copy code
javascript:alert(a"hello")

然而javascript注入重要用来改变表单的属性.下面是我们已有的局部代码:

Copy code
form name"format" action"send.php" method"post"
input type"hidden" name"mail" value"someonesomewhere."
input type"text" name"name"
input type"submit" value"submit" /form

我们想要表单发送到我们的邮箱,而不是代码中的邮箱someonesomewhere.,这个主意可以被这个命令完成:

Copy code
javascript:alert(document.format.mail.value"mehacker.")

到当初你已经晓得我老是按档次来讲述,下面我们就从大到小开端:
1)从document开始
2)输入我们想要改变的对象名(比如document.hi.src)或者它所属的属性并且从新赋值(比如document.format.mail.value)
3)最后停止于咱们想要转变的特点(比方源门路:document.hi.src,或者变量值:document.format.mail.value)
4)用".",分隔单词.
5)当我们想要改变特征值的时候,使用"",跟新的特征值.
.留神:当新的特征值为字符串时须要使用双引,""括起来(好比:document.format.mail.value"mehacker.")如果我们想要把它变为一个变量的值,则不需要使用双引,"".比如我们想改变变量a的值,使其即是变量b的值,会输入javascript:alert(ab).

但是,大多数页面中的属性都不名字,例如:

Copy code
form action"send.php" method"post"
input type"hidden" name"mail" value"someonesomewhere."
input type"text" name"name"
input type"submit" value"submit" /form

在这个代码中,表单没著名字.应用上面的所有信息,命令可能看上去像这样:

Copy code
javascript:alert(document. .mail.value"mehacker.")

在这种情形下我们将不得不计算所有的表单来发现这个表单的序,.我会用一个例子来讲授:


以下内容为程序代码
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"someonesomewhere."
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.通常我们要先找到表单序,再减一.

我们将用这个序,来补全我们的命令:


以下内容为程序代码

阅读(682) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~