作者: kostis90gr
翻译: 黯魂[S.S.T]
本文已发表于《黑客防线》6月刊,版权属于《黑客防线》及脚本安全小组,转载请保持文章完整性,谢谢 :)
这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负责任.
通过使用javascript注入,用户不用关闭网站或者把页面保存在他的PC上就可以改变网站中的内容.这是由他的浏览器的地址栏完成的.
命令的语法看上去像这样:
Copy code
javascrit:alert(#command#)
比方说如果你想看到在网站http://www.example.com里面的一个警告框,那么首先在地址栏输入URL(www.example.com),当页面加载完之后,清空URL并输入javascrit:alert("Hello World")作为一个新的URL.这样将弹出一个警告框显示Hello World.可是,一些人会用这个技巧改变页面内的几乎任何内容.例如一个图片.让我们设想有一个网站的logo图片.通过查看页面源代码(可以使用浏览器中的"查看源代码"做到),我们发现一句HTML代码:
Copy code
<IMG Name="hi" src="/UploadFiles/2021-04-02/hello.gif">
得到信息:有一个图片被命名为hi,且源文件为hello.gif.我们想要改变它为bye.jpeg并存储到我们的站点http://www.mysite.com上.所以我们的图片的完整URL是http://www.mysite.com/bye.jpeg 要使用javascript注入,我们需要在地址栏中输入:
Copy code
javascript:alert(document.hi.src="/UploadFiles/2021-04-02/bye.jpeg">
你将看到一个提示框说http://www.mysite.com/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="[email]someone@somewhere.com[/email]">
<input type="text" name="name">
<input type="submit" value="submit"></form>
我们想要表单发送到我们的邮箱,而不是代码中的邮箱someone@somewhere.com,这个想法可以被这个命令完成:
Copy code
javascript:alert(document.format.mail.value="[email]me@hacker.com[/email]")
到现在你已经知道我总是按层次来讲述,下面我们就从大到小开始:
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")如果我们想要把它变为一个变量的值,则不需要使用双引号"".比如我们想改变变量a的值,使其等于变量b的值,会输入javascript:alert(a=b).
但是,大多数页面中的属性都没有名字,例如:
Copy code
<form action="send.php" method="post">
<input type="hidden" name="mail" value="[email]someone@somewhere.com[/email]">
<input type="text" name="name">
<input type="submit" value="submit"></form>
在这个代码中,表单没有名字.利用上面的所有信息,命令可能看上去像这样:
Copy code
javascript:alert(document. .mail.value="[email]me@hacker.com[/email]")
在这种情况下我们将不得不计算所有的表单来发现这个表单的序号.我会用一个例子来讲解:
复制代码 代码如下:<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")
像这样,你就能改变没有名字的图片或者链接了.
对于图片:
复制代码 代码如下:javascript:alert(document.images[3].src="/UploadFiles/2021-04-02/#你想改变的目标图片URL#">对于链接:
复制代码 代码如下:javascript:alert(document.links[0].href="http://www.undug.net/#你想改变的目标链接#")
最后,我们可以用这个技巧编辑cookies.
下面的命令由triviasecurity.net的Dr_aMado所编写,但是我修改了一点以至于在用户编辑它之前就能显示cookie.你只需要复制它们到地址栏:
复制代码 代码如下:javascript:alert(window.c=functiona(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:","")));
作为结束,我必须强调我们所做的改变仅仅是在用户端!就像是把网站保存在了你的PC上,然后修改它.尽管如此,使用这个技巧你仍然可以欺骗一个页面(例如cookies)或者通过一个页面的安全验证.例如一些页面会检测用户从哪发送的数据.如果数据从http://www.test.com/form.php发送到http://www.test.com/check.php,check.php可能会检测数据是否是从http://www.test.com/form.php上的表单发送的.除此之外,如果你打算登录一个页面中你自己的javascript代码,通过使用一些像这样的技巧,你将能够改变类似不变的图片!可是你需要用到比这里讲到的更深层次的知识.
要是有任何问题和建议,请发邮件给我:kostis90gr@gmail.com
翻译: 黯魂[S.S.T]
本文已发表于《黑客防线》6月刊,版权属于《黑客防线》及脚本安全小组,转载请保持文章完整性,谢谢 :)
这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负责任.
通过使用javascript注入,用户不用关闭网站或者把页面保存在他的PC上就可以改变网站中的内容.这是由他的浏览器的地址栏完成的.
命令的语法看上去像这样:
Copy code
javascrit:alert(#command#)
比方说如果你想看到在网站http://www.example.com里面的一个警告框,那么首先在地址栏输入URL(www.example.com),当页面加载完之后,清空URL并输入javascrit:alert("Hello World")作为一个新的URL.这样将弹出一个警告框显示Hello World.可是,一些人会用这个技巧改变页面内的几乎任何内容.例如一个图片.让我们设想有一个网站的logo图片.通过查看页面源代码(可以使用浏览器中的"查看源代码"做到),我们发现一句HTML代码:
Copy code
<IMG Name="hi" src="/UploadFiles/2021-04-02/hello.gif">
得到信息:有一个图片被命名为hi,且源文件为hello.gif.我们想要改变它为bye.jpeg并存储到我们的站点http://www.mysite.com上.所以我们的图片的完整URL是http://www.mysite.com/bye.jpeg 要使用javascript注入,我们需要在地址栏中输入:
Copy code
javascript:alert(document.hi.src="/UploadFiles/2021-04-02/bye.jpeg">
你将看到一个提示框说http://www.mysite.com/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="[email]someone@somewhere.com[/email]">
<input type="text" name="name">
<input type="submit" value="submit"></form>
我们想要表单发送到我们的邮箱,而不是代码中的邮箱someone@somewhere.com,这个想法可以被这个命令完成:
Copy code
javascript:alert(document.format.mail.value="[email]me@hacker.com[/email]")
到现在你已经知道我总是按层次来讲述,下面我们就从大到小开始:
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")如果我们想要把它变为一个变量的值,则不需要使用双引号"".比如我们想改变变量a的值,使其等于变量b的值,会输入javascript:alert(a=b).
但是,大多数页面中的属性都没有名字,例如:
Copy code
<form action="send.php" method="post">
<input type="hidden" name="mail" value="[email]someone@somewhere.com[/email]">
<input type="text" name="name">
<input type="submit" value="submit"></form>
在这个代码中,表单没有名字.利用上面的所有信息,命令可能看上去像这样:
Copy code
javascript:alert(document. .mail.value="[email]me@hacker.com[/email]")
在这种情况下我们将不得不计算所有的表单来发现这个表单的序号.我会用一个例子来讲解:
复制代码 代码如下:<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")
像这样,你就能改变没有名字的图片或者链接了.
对于图片:
复制代码 代码如下:javascript:alert(document.images[3].src="/UploadFiles/2021-04-02/#你想改变的目标图片URL#">对于链接:
复制代码 代码如下:javascript:alert(document.links[0].href="http://www.undug.net/#你想改变的目标链接#")
最后,我们可以用这个技巧编辑cookies.
下面的命令由triviasecurity.net的Dr_aMado所编写,但是我修改了一点以至于在用户编辑它之前就能显示cookie.你只需要复制它们到地址栏:
复制代码 代码如下:javascript:alert(window.c=functiona(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:","")));
作为结束,我必须强调我们所做的改变仅仅是在用户端!就像是把网站保存在了你的PC上,然后修改它.尽管如此,使用这个技巧你仍然可以欺骗一个页面(例如cookies)或者通过一个页面的安全验证.例如一些页面会检测用户从哪发送的数据.如果数据从http://www.test.com/form.php发送到http://www.test.com/check.php,check.php可能会检测数据是否是从http://www.test.com/form.php上的表单发送的.除此之外,如果你打算登录一个页面中你自己的javascript代码,通过使用一些像这样的技巧,你将能够改变类似不变的图片!可是你需要用到比这里讲到的更深层次的知识.
要是有任何问题和建议,请发邮件给我:kostis90gr@gmail.com
标签:
Javascript注入技巧
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“Javascript注入技巧”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。