您的位置:首页 > Web前端 > JavaScript

利用Javascript进行注入

2007-06-25 11:50 393 查看
来源:黯魂的网络日志

//作者: kostis90gr
//翻译: 黯魂[S.S.T]
//本文已发表于《***防线》6月刊,版权属于黯魂和《***防线》杂志社,转载请务必保持文章完整性,谢谢:)

这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负责任.

通过使用javascript注入,用户不用关闭网站或者把页面保存在他的PC上就可以改变网站中的内容.这是由他的浏览器的地址栏完成的.
命令的语法看上去像这样: javascrit:alert(#command#)
比方说如果你想看到在网站http://www.example.com 里面的一个警告框,那么首先在地址栏输入URL(www.example.com),当页面加载完之后,清空URL并输入javascrit:alert ("Hello World")作为一个新的URL.这样将弹出一个警告框显示Hello World.可是,一些人会用这个技巧改变页面内的几乎任何内容.例如一个图片.让我们设想有一个网站的logo图片.通过查看页面源代码(可以使用浏览器中的"查看源代码"做到),我们发现一句HTML代码:
<IMG Name="hi" src="hello.gif">
得到信息:有一个图片被命名为hi,且源文件为hello.gif.我们想要改变它为bye.jpeg并存储到我们的站点http://www.mysite.com上.所以我们的图片的完整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,并且在那之后图片将会被改变.注意虽然那些变化只是暂时的!如果你刷新页面或者再次进入,你造成的变化将丢失,因为你改变的不是服务器上的站点,而是你PC上的.
使用同样的方法,我们可以查看或改变变量的值.比如我们在网站中找到这样一些源代码:
<SCRIPT LANGUAGE="JavaScript">
var a="test"
</SCRIPT>

意思是给变量a赋值test.为了查看变量的值,我们将输入:
javascript:alert(a)
然后为了把它从test改为hello,则输入:
javascript:alert(a="hello")
但是javascript注入主要用来改变表单的属性.下面是我们已有的部分代码:

<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>

我们想要表单发送到我们的邮箱,而不是代码中的邮箱[email]someone@somewhere.com[/email],这个想法可以被这个命令完成:
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="[email]me@hacker.com[/email]")
如果我们想要把它变为一个变量的值,则不需要使用双引号"".比如我们想改变变量a的值,使其等于变量b的值,会输入javascript:alert(a=b).
但是,大多数页面中的属性都没有名字,例如:

<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>

在这个代码中,表单没有名字.利用上面的所有信息,命令可能看上去像这样:
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="[email]someone@somewhere.com[/email]">
<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="[email]me@hacker.com[/email]")

像这样,你就能改变没有名字的图片或者链接了.
对于图片: javascript:alert(document.images[3].src="#你想改变的目标图片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 休闲