0%

Java的奇怪命令执行

最近在打工,做的java CVE复现,用ysoserialize产生一个Java.Runtime.exec的payload命令执行,发现出现了一定的问题

由于没有回显,因此需要想办法验证命令执行的情况,能执行一些简单的命令,比如touch文件,或者curl出来,确实能成功,但是想写shell的时候就遇到了奇怪的问题,没有回显也不知道哪报错,最后通过百度发现问题的根源在于Java.Runtime.exec的诡异实现

也当头一次试着跟进超级多的java类看Java实现,记录一下一切都是怎么回事

Runtime.getRuntime().exec(cmd)

阅读全文 »

CCPC被日调查

今天在群里看到说CCPC主页被日了,赶紧过来吃一波瓜,顺便看看是怎么实现的

简单测试之后发现,从搜索引擎过来就会跳转,而直接域名访问则不会,看一下主页的内容,发现了奇怪的代码
改的是HTML的header部分,顺便试了试登录注册什么的各种功能都没反应了,感觉是被打穿了把后台都改坏了?

代码

被日的部分估计就这段
菠菜站相关内容都给我用中文替换了,不给菠菜站引流哈。。。。

阅读全文 »

[XCTF]华为第三场

华为三连最后一场,web就两个题,一个题是nodejs模板注入,是一个完全不了解的领域
还有一个是PHP题,不知道出题人想表达什么
学了一天nodejs的hbs库的模板注入,不过还是没怎么懂,可能学的不够认真,也不知道怎么去调试,文档也没看几句,js的玄妙特性也不了解。。。

华为HCIE的第一课

登录,进去之后有一个没有用的功能,进admin路由,403,发现f参数任意文件读取,先回上层目录读了app.js,获得目录结构之后读admin.js,util.js等文件
admin.js需要验证用户是否本地登录,不行就403,但是存在一个使用__proto__覆盖的机会

            user = JSON.parse(`{"name" : "${req.session.name}", "time" : "${Math.ceil(new Date().getTime() / 1000)}", "ip" : "${req.ip}"}`)
阅读全文 »

[XCTF]华为第二场

这个星期好像华为三连。。。今天这场选星期三刚好完全满课,下午就没机会看了,中午花了一个小时做了一个web签到呜呜,估计下午肯定还有一堆新题

babyphp

给了一个莫名其妙的扫描扫描器界面,可选ip端口和超时时间,随便怎么输都是回显Port scan is deperacted and try to find the source code! // Google is your best friend让人不知道想表达什么,意思是要谷歌出源码?
我反正是没懂什么情况,然后无敌老国王直接从GitHub给我丢了一份源码
直接把HTML复制粘贴在GitHub上一搜就能搜到对应的代码
太牛逼了

<?php
set_time_limit(0);//设置程序执行时间
ob_implicit_flush(True);
ob_end_flush();
$url = isset($_REQUEST['url'])?$_REQUEST['url']:null;

/*端口扫描代码*/
.....这段就是被出题人魔改去掉的部分
/*内网代理代码*/

function getHtmlContext($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, TRUE);    //表示需要response header
    curl_setopt($ch, CURLOPT_NOBODY, FALSE); //表示需要response body
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    $result = curl_exec($ch);
    global $header;
    if($result){
        $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
        $header = explode("\r\n",substr($result, 0, $headerSize));
        $body = substr($result, $headerSize);
    }
    if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
        return $body;
    }
    if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '302') {
        $location = getHeader("Location");
        if(strpos(getHeader("Location"),'http://') == false){
            $location = getHost($url).$location;
        }
        return getHtmlContext($location);
    }
    return NULL;
}

function getHost($url){
    preg_match("/^(http:\/\/)?([^\/]+)/i",$url, $matches);
    return $matches[0];
}
function getCss($host,$html){
    preg_match_all("/<link[\s\S]*?href=['\"](.*?[.]css.*?)[\"'][\s\S]*?>/i",$html, $matches);
    foreach($matches[1] as $v){
        $cssurl = $v;
        if(strpos($v,'http://') == false){
            $cssurl = $host."/".$v;
        }
        $csshtml = "<style>".file_get_contents($cssurl)."</style>";
        $html .= $csshtml;
    }
    return $html;
}

if($url != null){

    $host = getHost($url);
    echo getCss($host,getHtmlContext($url));
}
?>
阅读全文 »

垃圾学校的奇怪网络规则

昨天做题要弹shell,然后打开我的mobaxterm开始连vps,卡住了没反应,十秒之后timeout
我第一反应是vps被日了,赶紧上阿里云控制台看了一眼,阿里云控制台的ssh还连得上去,简单检查一通好像屁事没有,去看了一眼端口放行规则,也没有ban22端口,就很玄幻

ping了一下vps,ping通了,在群里反应了一下问题,大哥们的机子都是腾讯云的,就我是阿里云,学校里的同学们都ssh不上我这个机子,然后大家腾讯云的机子都连的好好的,无奈之下去找阿里云售后
售后操作了一通感觉配置都没问题,售后能连上我的机子,找了不在我们学校的大哥试着连也连得上,最后问我是不是我们这网络配置的问题,我一个小朋友怎么知道学校的路由策略。。。。然后切手机热点也连不上,很困惑(但是后来又试了一次切热点又连上了,估计出了奇怪的问题)
学姐也有机子ssh连不上了,最后和我说换个ssh服务的端口就连得上了,所以,最后的最后的结论是,学校可能使用了奇怪的策略,导致流向部分ip的22端口的流量被阻断了
为此还专门跑去问网络中心的老师,得到的答复是最近什么更改都没有做,我是不信的

反正最后改了个端口通了,浪费我一个晚上

改端口记得改的配置文件是sshd_connfig,不是ssh_config,居然还有这种事
sshd_config是ssh服务的设置,ssh_config是客户端ssh的设置。。

阅读全文 »