<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

    JAVA出了漏洞,CVE-2010-4476,會(huì)導(dǎo)致拒絕服務(wù)攻擊。大家能從公告上,看到這樣一段代碼,挺長(zhǎng)的。意思是只有開(kāi)發(fā)人員寫(xiě)出這樣的代碼,才會(huì)對(duì)服務(wù)器造成影響。 人人

    我們肯定會(huì)首先考慮,這么長(zhǎng)的代碼,究竟有多少開(kāi)發(fā)會(huì)傻乎乎的寫(xiě)出來(lái)?而我們究竟打不打補(bǔ)丁呢?其實(shí)作者知道,目前還有很多公司沒(méi)有打補(bǔ)丁,不過(guò)沒(méi)關(guān)系,等會(huì)兒你就要打了。

    先看看官方給出的代碼。


    Send a Java Program Into An Infinite Loop
    Compile this program and run it; the program will hang (at least it does on a 32-bit system with the latest JRE/JDK):
    class runhang {
    public static void main(String[] args) {
    System.out.println(“Test:”);
    double d = Double.parseDouble(“2.2250738585072012e-308″);
    System.out.println(“Value: ” + d);
    }
    }
    —————————————————————————————————————-
    Send the Java Compiler Into An Infinite Loop
    Try to compile this program; the compiler will hang:
    class compilehang {
    public static void main(String[] args) {
    double d = 2.2250738585072012e-308;
    System.out.println(“Value: ” + d);
    }
    }

    以上代碼,其實(shí)舉了兩個(gè)例子,首先簡(jiǎn)化一下代碼:


    這段代碼會(huì)在編譯時(shí)掛掉:
    double d = 2.2250738585072012e-308;
    這段代碼會(huì)在運(yùn)行時(shí)掛掉:
    double d = Double.parseDouble(“2.2250738585072012e-308″);

    作者很奇怪后面的System.out是啥意思,按照實(shí)際測(cè)試以及官方原理,這句壓根不會(huì)執(zhí)行,樓上都已經(jīng)“無(wú)限循環(huán)”了,怎么可能走下來(lái)呢?不過(guò)這個(gè)不重要。債務(wù)追討
    下文所說(shuō)的漏洞,是指假設(shè)我們的開(kāi)發(fā)人員寫(xiě)了“XXX”的代碼,攻擊者就可能攻擊我們服務(wù)器。
    我們來(lái)逆推攻擊過(guò)程,從漏洞的角度上說(shuō),只有程序傳入的值,由用戶(hù)控制,才會(huì)導(dǎo)致漏洞觸發(fā),畢竟開(kāi)發(fā)不會(huì)直接寫(xiě)這個(gè)值。而編譯中掛掉,幾乎不可能存在,很難有正常的業(yè)務(wù)需要用戶(hù)提交代碼,讓服務(wù)器編譯執(zhí)行。所以,漏洞的產(chǎn)生只會(huì)出在這一句上:

    這段代碼會(huì)在運(yùn)行時(shí)掛掉:
    double d = Double.parseDouble(“2.2250738585072012e-308″);

    那么再次逆推,要求這個(gè)值有用戶(hù)控制,如果環(huán)境是java web application,開(kāi)發(fā)想寫(xiě)出有漏洞的代碼,必須這樣搞:

    這段代碼會(huì)在運(yùn)行時(shí)掛掉:
    double d = Double.parseDouble(request.getParameter(“double”));

    于是,程序就”hang!”(其實(shí)我不知道這個(gè)詞的意思),掛了,從表面上看不出來(lái),但是實(shí)際上你的CPU會(huì)立刻100%,當(dāng)前線程走不下去,頁(yè)面 卡死,不給你任何響應(yīng)。當(dāng)然,其他頁(yè)面也許會(huì)好,因?yàn)閣eb容器是多線程的,可惜已經(jīng)有人100%CPU了,頁(yè)面速度可想而知。
    很多人,就考慮到了這段,除非開(kāi)發(fā)人員真的寫(xiě)了這樣的代碼,否則很難出現(xiàn)漏洞,所以沒(méi)有打補(bǔ)丁。
    Java web在很多年前,都已經(jīng)開(kāi)始走框架路線了,我們熟知的spring mvc、struts2、webwork等等,甚至還有一些公司自己實(shí)現(xiàn)框架,比如阿里巴巴公司的開(kāi)源框架webx(宣傳一下 http://code.taobao.org/project/view/401/)。在這樣的框架中,開(kāi)發(fā)人員更不可能自己去做轉(zhuǎn)義,這都是框架自己 負(fù)責(zé)的。是不是意味著,漏洞不可能存在呢?
    這恰恰是最可怕的地方,這些框架沒(méi)有讓開(kāi)發(fā)人員參與類(lèi)型轉(zhuǎn)義,用戶(hù)本來(lái)提交的是一個(gè)String的2.2250738585072012e-308,框架會(huì)自動(dòng)轉(zhuǎn)義類(lèi)型為Double,經(jīng)測(cè)試,所有的框架都有自動(dòng)類(lèi)型轉(zhuǎn)義(否則框架意義何在啊)。
    開(kāi)發(fā)什么都不需要做,只要在action中有一個(gè)對(duì)象,對(duì)象中有一個(gè)字段類(lèi)型為double,或許他都不需要定義對(duì)象,其他開(kāi)發(fā)早定義好了,他只需要寫(xiě)一個(gè)action。比如:

    //訂單處理action
    public class OrderAction extends ActionSupport{
    //訂單對(duì)象
    public Order order;
    public String execute(){
    return SUCCESS;
    }
    }
    //Order對(duì)象的內(nèi)容
    Public class Order{
    //前面還有其他字段,這里只說(shuō)Double類(lèi)型的。
    Double money;
    }

    這就“hang”了。我們可以寫(xiě)個(gè)掃描器,那么會(huì)有哪些字段通常被定義為double呢?掃描器自己去抓頁(yè)面,抓回來(lái)的input,如果為user.name,我們就猜測(cè) user對(duì)象中可能存在money,可能存在score、point等,然后讓它們等于那個(gè)值,自動(dòng)提交。這等于掛字典,猜測(cè)對(duì)象中可能存在的 double類(lèi)型字段。

    有沒(méi)有線上的例子呢?
    posted on 2011-04-26 09:35 墻頭草 閱讀(278) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開(kāi)發(fā)網(wǎng) 貨運(yùn)專(zhuān)家
    主站蜘蛛池模板: 国产午夜成人免费看片无遮挡 | www国产亚洲精品久久久日本| 一个人看的www免费视频在线观看| 亚洲熟妇AV一区二区三区浪潮 | 日本免费A级毛一片| 国产精品成人亚洲| 亚洲人精品亚洲人成在线| 亚洲区小说区激情区图片区| mm1313亚洲精品国产| 精品久久久久久久免费加勒比| 波多野结衣免费在线| 永久在线观看www免费视频| 免费国产午夜高清在线视频| 中文字幕不卡免费高清视频| 一级毛片正片免费视频手机看 | 卡一卡二卡三在线入口免费| 日韩在线免费视频| 久久精品国产免费观看三人同眠 | 亚洲色av性色在线观无码| 亚洲AV日韩AV鸥美在线观看| 亚洲精品成人网站在线观看 | 国产福利在线观看永久免费| 污视频网站在线观看免费| 美女尿口扒开图片免费| 亚洲AV无码片一区二区三区| 亚洲s码欧洲m码吹潮| 亚洲国产精品自在自线观看| 亚洲暴爽av人人爽日日碰| 亚洲αⅴ无码乱码在线观看性色| 亚洲av成人中文无码专区| 小说专区亚洲春色校园| 色屁屁在线观看视频免费| 天堂亚洲免费视频| 国产免费AV片在线观看播放| 色播在线永久免费视频网站| a毛片免费观看完整| 免费国产黄网站在线观看视频| 99久热只有精品视频免费观看17| 每天更新的免费av片在线观看| 综合在线免费视频| 免费鲁丝片一级在线观看|