• [极客大挑战 2020]


    [极客大挑战 2020]Roamphp1-Welcome

     

     已进入页面,以为是这道题的环境不对,可是查看f12竟然有东西,然后查一下405

    请求方式有误,比如应该用GET请求方式的资源,用了POST

    改为post请求方式,出现源码,然后就是sha1函数漏洞,数组绕过即可 

    [极客大挑战 2020]Roamphp2-Myblog

    打开界面不允许注册,page传参的过程中page=login,因为我以前见过的都是login.php所以这感觉会有些问题,试一下伪协议读取源码

    应该能读取到的,上面的登录没有后缀.php所以我觉得可能是默认加上.php猜测

    require_once("secret.php");
    mt_srand($secret_seed);
    $_SESSION['password'] = mt_rand();
    ?>

    然后继续访问secret.php

    $secret_seed = mt_rand();
    ?>

     上面的文件代码的意思也就是password是从cookie中随机整数拼凑而成,肯定还有一个文件去使用他俩我们找一下,

     这里,因为是自动加上了.php所以,试一下admin/user是不是一个文件,解码获得

    1. error_reporting(0);
    2. session_start();
    3. $logined = false;
    4. if (isset($_POST['username']) and isset($_POST['password'])){
    5. if ($_POST['username'] === "Longlone" and $_POST['password'] == $_SESSION['password']){ // No one knows my password, including myself
    6. $logined = true;
    7. $_SESSION['status'] = $logined;
    8. }
    9. }
    10. if ($logined === false && !isset($_SESSION['status']) || $_SESSION['status'] !== true){
    11. echo "";
    12. die();
    13. }
    14. ?>

    从这里我们知道了username,password是cookie随机拼凑而成,所以我们可以删除掉cookie,这样我们密码为空,就可以相等

    删除掉cookie得值,可是限制了密码不能为空,看一下密码得文本框源码 

    这里有个require,删除掉就可以输入空白 

    这有上传照片得功能,源码就是下面

    1. if(isset($_FILES['Files']) and $_SESSION['status'] === true){
    2. $tmp_file = $_FILES['Files']['name'];
    3. $tmp_path = $_FILES['Files']['tmp_name'];
    4. if(($extension = pathinfo($tmp_file)['extension']) != ""){//文件的后缀不能为空
    5. $allows = array('gif','jpeg','jpg','png');//白名单
    6. if(in_array($extension,$allows,true) and in_array($_FILES['Files']['type'],array_map(function($ext){return 'image/'.$ext;},$allows),true)){
    7. $upload_name = sha1(md5(uniqid(microtime(true), true))).'.'.$extension;
    8. move_uploaded_file($tmp_path,"assets/img/upload/".$upload_name);//更改上传文件得位置
    9. echo "";
    10. } else {
    11. echo "";
    12. }
    13. }
    14. }
    15. ?>

    可以看到,他设置了白名单,但我想传一句话木马上去,而且上传成功的话他会告诉你上传的路径,然后再用之前可以传的page参数可以解析伪协议的,但是并不确定是否可以php文件也会被解析,先不想那么多,做来看。坚定了我传木马的决心,这里想到了将php文件打包成zip,改后缀名为jpg,再利用zip伪协议进行读取。zip协议是可以解压缩jpg后缀的压缩包的。

    构造

      的php然后压缩,把zip改为白名单中的png

    上传成功, 获得路径,然后访问一下路径看文件是否真的上传成功 

    上传成功,然后使用zip这个伪协议

    zip:// + zip路径 + %23 + php文件名 (由于#在get请求中会将后面的参数忽略所以使用get请求时候应进行url编码为%23)
    http://82165fb2-5d53-4a86-a386-04058d68f23c.node4.buuoj.cn:81/?page=zip://./assets/img/upload/901edcb2cb7e73704f556f4c50d8b1ee3e7f428d.jpg%231
    这里不加.php后缀是因为在index.php包含的时候默认加上了,还要注意zip协议后面跟的是./因为没有去看绝对路径。

    然后通过post传参shell=system('ls');获取目录,最后获得flag 

    [红明谷CTF 2021]write_shell

     打开界面,发现了源码,进行审计

    1. error_reporting(0);
    2. highlight_file(__FILE__);
    3. function check($input){
    4. if(preg_match("/'| |_|php|;|~|\\^|\\+|eval|{|}/i",$input)){
    5. // if(preg_match("/'| |_|=|php/",$input)){
    6. die('hacker!!!');
    7. }else{
    8. return $input; //这个实现的主要就是正则过滤
    9. }
    10. }
    11. function waf($input){
    12. if(is_array($input)){
    13. foreach($input as $key=>$output){
    14. $input[$key] = waf($output);
    15. }
    16. }else{
    17. $input = check($input);
    18. }
    19. }
    20. $dir = 'sandbox/' . md5($_SERVER['REMOTE_ADDR']) . '/'; //沙箱,和ip的md加密链接在一起
    21. if(!file_exists($dir)){ //如果文件不存在就创建一个
    22. mkdir($dir);
    23. }
    24. switch($_GET["action"] ?? "") {
    25. case 'pwd':
    26. echo $dir; //从这可以获得dir目录
    27. break;
    28. case 'upload':
    29. $data = $_GET["data"] ?? "";
    30. waf($data);
    31. file_put_contents("$dir" . "index.php", $data);
    32. //这把命令写入前面的文件中,如果我们写入一个一句话木马应该可以ak
    33. }
    34. ?>

    整体看下来,要执行check过滤函数,我们就需要执行,waf的else部分,然后过滤掉了php、eval可以用PHP短标签进行绕过,比如

    然后传参就可以获得flag

    第一步,获得dir

    sandbox/c47b21fcf8f0bc8b3920541abd8024fd/ 

    第二步get 传参

    然后我们可以访问刚才获得沙箱界面查看回显

     这里注意过滤掉了空格可以用 %09或\t代替

  • 相关阅读:
    (译)TDD(测试驱动开发)的5个步骤
    【c语言基础题】— —第六版,可当作日常练习和期末复习,有奇效哟!
    DTD——XML介绍和基本语法
    管理系统权限篇
    sqlite sql 异常 near “with“: syntax error
    智能台灯语音控制丨解放双手
    axios入门之 API
    react基础
    炒现货黄金怎么做?挖掘黄金的投资机会
    flex布局之美,以后就靠它来布局了
  • 原文地址:https://blog.csdn.net/qq_62046696/article/details/126907828