首页 > 其他分享 >Bugku-web41

Bugku-web41

时间:2023-08-30 09:12:58浏览次数:49  
标签:username tmp web41 Bugku hint function password data

images
该题目涉及到了序列化;Base64解码;cgi;ssrf;php中的file协议;

代码审计,我只知道涉及到了序列化,还有我提交的方法是POST的,其他的我都不是很懂了,所以看了别人的wp;;

https://blog.csdn.net/qq_53460654/article/details/116329685

<?php
// php版本:5.4.44
header("Content-type: text/html; charset=utf-8");
highlight_file(__FILE__);

class evil{
    public $hint;

    public function __construct($hint){
        $this->hint = $hint;
    }

    public function __destruct(){
    if($this->hint==="hint.php")
            @$this->hint = base64_encode(file_get_contents($this->hint)); 
        var_dump($this->hint);
    }

    function __wakeup() { 
        if ($this->hint != "╭(●`∀´●)╯") { 
            //There's a hint in ./hint.php
            $this->hint = "╰(●’◡’●)╮"; 
        } 
    }
}

class User
{
    public $username;
    public $password;

    public function __construct($username, $password){
        $this->username = $username;
        $this->password = $password;
    }

}

function write($data){
    global $tmp;
    $data = str_replace(chr(0).'*'.chr(0), '\0\0\0', $data);
    $tmp = $data;
}

function read(){
    global $tmp;
    $data = $tmp;
    $r = str_replace('\0\0\0', chr(0).'*'.chr(0), $data);
    return $r;
}

$tmp = "test";
$username = $_POST['username'];
$password = $_POST['password'];

$a = serialize(new User($username, $password));
if(preg_match('/flag/is',$a))
    die("NoNoNo!");

unserialize(read(write($a)));

images

标签:username,tmp,web41,Bugku,hint,function,password,data
From: https://www.cnblogs.com/KAKSKY/p/17666338.html

相关文章

  • Bugku-web安慰奖(序列化)
    php序列化的一个题目;;参考博客:https://blog.csdn.net/weixin_44190459/article/details/116648636目前还没有搞明白怎么一回事:<?phpclassctf{protected$username='admin';protected$cmd='tacflag.php';}$ctf=newctf();echoserialize($ctf);;?>......
  • Bugku-xxx二手交易市场
    注入点在上传图片处,图片上传后会被base64编码,就从这里入手,上传一句话木马;image=data%3Aimage%2Fphp%3Bbase64%2CPD9waHAgZXZhbCgkX1BPU1RbJ2ZsYWcnXSk7Pz4=......
  • Bugku-聪明的php
    smarty模板注入常用的payload常用payload常用payload{ifphpinfo()}{/if}{ifsystem('ls')}{/if}{ifreadfile('/flag')}{/if}{ifshow_source('/flag')}{/if}{ifsystem('cat../../../flag')}{/if}smarty中的{if}标签中可以执行php语句随便传参可......
  • Bugku-misc-telnet
    刚结束的ciscn,里面的要是有这么简单就好了。下载附件,是个pcap文件,打开wireshark分析一节一节看过去就找到了flag没难度的~~~......
  • Bugku-Web13
    根据题意进行unescape解码,得到js脚本,将js脚本中的代码填入输入框中点击提交就得到了flag......
  • Bugku-Web12
    没啥思路,感觉自己在刷题,,,这个考虑的是本地管理员查看源码可以知道密码是base64加密的,使用工具解码就可以了!账号是admin,从评论里知道的...打开burp抓包,修改X-Forwarded-For:127.0.0.1即可......
  • Bugku-Web11
    没啥思路,在这个网站上不能右键弹出属性框,F12查看也没啥可看的,所以就去看了看评论,大概的套路有了,就只有实践了先安装dirsearch:https://github.com/maurosoria/dirsearch进入GitHub下载zip包,我拖到了kali里面安装,因为在wndows中解压输入命令就弹出dirsearch.py的文本文件,做完......
  • Bugku-Web10
    这个很简单!!!看了查看器,里面啥也没有,就看看网络,点开发现了flag......
  • Bugku-Web7
    打开页面之后一直在刷新(也可以说是窗口重新加载?)最近刚学了js脚本,浏览器右键检查源代码,发现有一个script一直在重载,在firefox浏览器中禁用js后,去网络里看加载页面源代码,然后就找到了flagfirefox禁用js的方式:先在地址栏输入about:config然后在搜索框中输入Javascript看到javas......
  • Bugku-Web14
    php://filter/read=convert.base64-encode/resource=index.php......