百度杯_Code

Code

题目内容:

考脑洞,你能过么?

加载进页面只有一个图片,检查url发现大概率是个文件包含。

img

直接把index.php放到参数后,访问发现存在一个加载错误的图片,查看源代码会发现是Base64编码的链接。

img

解码过后会发现是index.php的代码,然后进行代码审计。

img

其中的正则是将file中的非a-zA-Z0-9都变成空,然后将config匹配为_,然后包含file赋值给txt,最后输出。
这时候我们不知道flag文件在哪,再加上Can you find the flag file?这句话,说明flag可能就藏在哪里。刚才扫目录发现的./idea(.idea文件夹 .idea存放项目的配置信息,包括历史记录,版本控制信息等)等一系列的配置文件,结合代码中的Created by PhpStorm那么flag可能就在idea中,访问/.idea/workspace.xml果然发现了flag文件的名字。

img

那么结合刚才的代码审计我们可以构造payload:?jpg= ,因为_会被直接过滤掉,而config又会被替换成_。访问过后发现还是一个img标签,src里面包含这个base64编码,解码过后发现还是一个代码审计。

img

<?php
/**
 * Created by PhpStorm.
 * Date: 2015/11/16
 * Time: 1:31
 */
error_reporting(E_ALL || ~E_NOTICE);
include('config.php');
function random($length, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz') {
    $hash = '';
    $max = strlen($chars) - 1;
    for($i = 0; $i < $length; $i++)	{
        $hash .= $chars[mt_rand(0, $max)];
    }
    return $hash;
}

function encrypt($txt,$key){
    for($i=0;$i<strlen($txt);$i++){
        $tmp .= chr(ord($txt[$i])+10);
    }
    $txt = $tmp;
    $rnd=random(4);
    $key=md5($rnd.$key);
    $s=0;
    for($i=0;$i<strlen($txt);$i++){
        if($s == 32) $s = 0;
        $ttmp .= $txt[$i] ^ $key[++$s];
    }
    return base64_encode($rnd.$ttmp);
}
function decrypt($txt,$key){
    $txt=base64_decode($txt);
    $rnd = substr($txt,0,4);
    $txt = substr($txt,4);
    $key=md5($rnd.$key);

    $s=0;
    for($i=0;$i<strlen($txt);$i++){
        if($s == 32) $s = 0;
        $tmp .= $txt[$i]^$key[++$s];
    }
    for($i=0;$i<strlen($tmp);$i++){
        $tmp1 .= chr(ord($tmp[$i])-10);
    }
    return $tmp1;
}
$username = decrypt($_COOKIE['user'],$key);
if ($username == 'system'){
    echo $flag;
}else{
    setcookie('user',encrypt('guest',$key));
    echo "╮(╯▽╰)╭";
}
?>

这里是有关加解密的代码,就是当我们访问http://eci-2ze76po4leyst90klq4m.cloudeci1.ichunqiu.com/fl3g_ichuqiu.php``是会在cookie中加上一个user,这里的user参数是加密过得,就是上面的decrypt函数,如果看不懂可以参考https://blog.csdn.net/rfrder/article/details/108542365`或者是其他的解题。

作者:qianyuzz

出处:https://www.cnblogs.com/qianyuzz/p/17397544.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   qianyuzz  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示