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的全部内容
PREVIOUSBuu摸鱼日记之14
NEXT摸鱼日记之十六