• 家用轿车投诉比例多 今年3·15,汽车维权是这样的 2018-03-26
  • 上杭县中医院举办2017年度全县基层中医药适宜技术推广培训班 2018-03-26
  • 黄金要结束“八年轮回” 打开牛市新格局 2018-03-26
  • 抗衰老药物吃多等于吸毒 2018-03-26
  • 邢善萍:努力营造民族团结一家亲浓厚氛围 2018-03-26
  • 湖北羽协主席赵芸蕾:举全协会之力组队冲羽超 2018-03-26
  • 滴滴获软银80亿美元后最新估值多少 答案是576亿美元 2018-03-26
  • 重生在末世种田的日子全本TXT小说下载 2018-03-26
  • 易车网周四早盘大跌超10%易车网周四早盘 2018-03-26
  • 喝雪梨薏米瘦肉汤 清热止咳、健脾利湿 2018-03-26
  • 张杰“我想”巡演历时两年 明年推出全新专辑 2018-03-26
  • 李水华:坚决打赢扫黑除恶专项斗争攻坚仗 2018-03-26
  • 学生花38000元培训后未获一等奖 诉培训公司获赔培训一等奖竞赛 2018-03-26
  • 绝世天君 第1182章 大结局(13) 全本小说网 2018-03-26
  • 伯莱塔AR70223自动步枪图片 2018-03-26
  • 针对J2EE的重定向后代码执行

    几年之前关于一种“新类型”的漏洞——重定向后代码执行的白皮书,被发布在http:cs.ucsb.edu~bboepublicpubsfear-the-ear-ccs2011.pdf.这是一种“逻辑“型漏洞

    关于EAR

    几年之前关于一种“新类型”的漏洞——重定向后代码执行的白皮书,被发布在http://cs.ucsb.edu/~bboe/public/pubs/fear-the-ear-ccs2011.pdf.这是一种“逻辑“型漏洞,关于EAR的原理也很简单。就是当一个web应用返回重定向头给用户时,没有停止而是继续执行之后的代码。因此,有可能绕过授权并且在web 应用中执行一些动作或者窃取一些重要信息。

    下面的例子更清晰的解释了EAR:

    ?? ??? ??? ??? ?if (!(request.getParameter(“pass”).equals(adminPswd))) {

    ? ? ? ? ? ? ? ? ? ? ? ? ? ?response.sendRedirect(“login.jsp”); ?}

    ? ? ? ? ? ? ? ? admin.critFunc();

    如果一个用户输入了错误的密码,web应用发送一个跳转到登入页面的重定向头。在此之后,web应用继续执行了一些重要的方法。因此EAR这种漏洞,就是web应用继续执行甚至当重定向发生以后。实际上,EAR漏洞出现的可能性取决于web应用所采用的框架或者平台的特点。在上述的那份白皮书中有一份关于不同的EAR漏洞的框架清单。

    同时 blind EAR是EAR 的一种子类型。就是当跳转发生以后web应用没有返回任何输出给用户,而且这种类型的EAR只可能发生在J2EE应用中。

    一些新东西?

    我将分享一些针对J2EE的EAR的微小的研究,因为这种问题普遍存在。通常我们用以下代码进行重定向:

    ? ? ? ? ? ? ? ? ? response.sendRedirect(“any.jsp”);

    一个WEB应用在这个跳转之后将继续往下执行。

    但是还有一种forward功能(当一个用户在web应用内部从一个servlet或者script 跳转到另一个servlet或者script)

    ?? ??? ??? ??? ?? ?request.getRequestDispatcher(“any.jsp”).forward(request, response);

    我们也会返回一个错误页面给用户:

    ?? ??? ??? ??? ??? ?? ?response.sendError(500, “Text of Error”);

    在以上的这三个例子中,web应用也继续往下执行了。因此,我们有Execution After Forward?和?Execution After Error这两种类型的漏洞。

    我很感兴趣检查JSP 和 JSTL在这方面的独有特点:

    1)JSP 让我们可以这样进行请求:

    ? ? ? ? ??<jsp:forward page=”any.jsp”></jsp:forward>

    2)JSTL 让我们可以这样重定向给用户:

    ? ? ? ? ? ?<c:redirect url=”any.jsp”/>

    但是在这两种情况中,web应用不能继续执行之后的代码。为什么呢?如果我们查看JSP文件转换成对应的java classes的时候,我们发现:

    1) For “forward”:

    if (true) {
    ??????? _jspx_page_context.forward(“any.jsp”);
    ??????? return;
    ????? }

    2) For “redirect”:

    ?if (_jspx_meth_c_005fredirect_005f0(_jspx_page_context))
    ??????? return;

    因此,web应用停止继续往下执行了。

    原文地址:http://agrrrdog.blogspot.ru/search/label/code%20review

    1

    这些评论亮了

    发表评论

    已有 1 条评论

    取消
    Loading...
    css.php