Buu摸鱼日记之十五

 

buu摸鱼日记之十五

[MRCTF2020]你传你🐎呢

记录一下,.htaccess用法

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

这样子,apache就会用php的方法去解析这个马,然后就可以用png马来getshell

<FilesMatch "ma.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

[安洵杯 2019]easy_serialize_php

仔细思考了挺久的

主要是利用waf来进行反序列化的逃匿

首先是这个$_SESSEION的理解

就把它理解成普通的对象就行

 <?php

$function = @$_GET['f'];

function filter($img){
    $filter_arr = array('php','flag','php5','php4','fl1g');
    $filter = '/'.implode('|',$filter_arr).'/i';
    return preg_replace($filter,'',$img);
}


if($_SESSION){
    unset($_SESSION);
}

$_SESSION["user"] = 'guest';
$_SESSION['function'] = $function;

extract($_POST);//直接将 $_POST 和 $_GET 中的变量解析出来,不需要手工赋值处理。也是因为这样,我们可以post $_SESSION,赋值出空值然后进行反序列化

if(!$function){
    echo '<a href="index.php?f=highlight_file">source_code</a>';
}

if(!$_GET['img_path']){
    $_SESSION['img'] = base64_encode('guest_img.png');
}else{
    $_SESSION['img'] = sha1(base64_encode($_GET['img_path']));
    //不能在这个if加密,不然后面decode就decode个寂寞
}

$serialize_info = filter(serialize($_SESSION));

if($function == 'highlight_file'){
    highlight_file('index.php');
}else if($function == 'phpinfo'){
    eval('phpinfo();'); //maybe you can find something in here!
}else if($function == 'show_image'){
    $userinfo = unserialize($serialize_info);
    echo file_get_contents(base64_decode($userinfo['img']));
} 

phpinfo可以查到d0ge_flag.php

具体就是https://my.oschina.net/u/4330242/blog/3312588 感觉自己说的不如别人好,算了,还是白嫖来的方便

[CISCN2019 华北赛区 Day1 Web1]Dropbox

一看CISCN就知道并不简单

tag里有phar,就去看了下这是啥

https://xz.aliyun.com/t/2715#toc-8

理解了一下,里面居然还有反序列化(学到了学到了)

任意文件下载,点../../index.php就可能拿到除了flag的全部内容