0%

[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的设置。。

阅读全文 »

[XCTF]华为第一场

等我下午吃完饭去看题的时候,web差不多已经被师傅ak了,开始开心看题划水

webshell_1

文件上传功能,传上去之后会发现后缀自动变jsp,需要传一个jsp的shell上去,但是好像有一定的过滤,完全不会jsp,网上搜的两个马都不能用,等会再说
一开始好像队友直接传了个网上的马就打通了,但是后来写wp复现的时候又打不通了
最后先上传了个读文件看了看waf,结果来了这么一句 URLConnection connection = new URL("http://hids.normalbe.com:8765/upload/jsp").openConnection();意思是waf还是在线找的接口?
然后重新构造打过去了(但是我还是不会)

mine1_1

阅读全文 »

Python特殊属性

Python垃圾来学习一下python的各种奇怪方法,以后打SSTI或者pickle的时候不至于这么惨

__dict__

对类对象使用时,以字典形式返回类对象的全部属性,使用__dict__.update可以更新对象属性,任意更新,可以增加对象原本不存在的属性
对函数使用意义不大

__globals__

阅读全文 »

[C1CTF2020]wp

合工大的萌新赛,我是超级垃圾呜呜呜,萌新赛都打的这么吃力
也学到不少东西

php_tricks

就是个基础反序列化入门,反序列化一个POST的data,然后还需要file_get_contents反序列化类里的一个成员的值符合条件
我是垃圾这都不会。。。一开始想的是php://input,但是这样显然和POST的数据冲突,查了很多奇怪的知识发现都不行,但是学到了一点,PHP只会在content-type为urlencode和一个什么的时候才把httpbody的数据放进POST里面,所以有时候忘加content-type打不通,最后发现file_get_content甚至可以用http协议读远程文件。。。。学习了

php_tricks’ revenge

阅读全文 »