panda 发布的文章

在本地搭建 discourse 社区

写在前面

有时候需要测试修改一些插件,如果直接在生产环境上面测试,会影响社区的正常运行,因此有必要在本地搭建一个 discourse 社区以供测试使用。

环境参数

  • 操作系统:Ubuntu 18.04.2 LTS x64
  • 内存:最低 1GB 推荐 2GB 以上

1.png

安装 Docker

2.png

wget -qO- https://get.docker.com/ | sh

- 阅读剩余部分 -

SUCTF web 赛后复现总结

0x01 CheckIn

这题docker 报错不能复现(估计主办方提供的不是运行后的 docker 文件),因此简单整理下思路。
这题是应该是仿Insomnihack 2019思路出的题。在这题里,符合以下情况均 failed:

  • <?是否包含在文件内容中
  • 如果文件只有扩展名(像 .htaccess, .txt)
  • 文件不允许的扩展名
  • 无法经过exif_imagetype的检验
  • getimagesize不返回1337 * 1337

具体如何绕过就不在本文赘述,具体可以见:https://thibaudrobin.github.io/articles/bypass-filter-upload/

回到本题,本题没有那么多限制,但是与Insomnihack 2019不同的是,他使用的是 Apache 的.htaccess特性,而本题使用的 NGINX 的 .user.ini
如果看了上文那个链接的朋友,应该明白
如何去做这一题了,就是通过.user.ini来构造后门,通过.user.ini中配置的“特殊文件”,来执行自己的想要的命令,流程如下:




- 阅读剩余部分 -

AWVS Linux 破解版在 Centos7 下安装过程中存在问题记录

AWVS Linux 破解版在 Centos7 下安装过程中存在问题记录

问题 1

运行 AWVS 安装程序时出现以下问题:

图片 1.png

Acunetix Installer Version: v_190703137, Copyright (c) Acunetix
------------------------------------------------------------
Checking os...
Checking for dependencies...
    - dependency libXrender.so.1 not found on the system
    - dependency libXext.so.6 not found on the system
    - dependency libcairo.so.2 not found on the system
    - dependency libXss.so.1 not found on the system
    - dependency libXcursor.so.1 not found on the system
    - dependency libXfixes.so.3 not found on the system
    - dependency libXcomposite.so.1 not found on the system
    - dependency libXrandr.so.2 not found on the system
    - dependency libpangocairo-1.0.so.0 not found on the system
    - dependency libXdamage.so.1 not found on the system
    - dependency libgdk-3.so.0 not found on the system
    - dependency libatspi.so.0 not found on the system
    - dependency libXtst.so.6 not found on the system
    - dependency libgtk-3.so.0 not found on the system
    - dependency libatk-bridge-2.0.so.0 not found on the system
    - dependency libgdk_pixbuf-2.0.so.0 not found on the system
    - dependency libatk-1.0.so.0 not found on the system
    - dependency libXi.so.6 not found on the system
    - dependency libpango-1.0.so.0 not found on the system
    - dependency libcups.so.2 not found on the system
Some dependencies are not found on the system. Aborting installation.
Aborting installation

- 阅读剩余部分 -

一道MMS工控协议CTF题的WriteUp

0x01 赛题说明

图片 1.png

赛题说明:
只能变电站通过 61850 规约进行监控层到间隔层的数据采集,请分析网络数据包,了解 MMS 规约,进一步发现数据中隐藏的 flag。

题目:question_1531222544_JYvFGmLP49PFC0R2.pcap.zip(下载见最下方的百度云传送门)

0x02 背景知识

MMS即制造报文规范,是ISO/IEC9506标准所定义的一套用于工业控制系统的通信协议。

此处不介绍关于 MMS 协议的具体内容,只做报文简单讲解。

如果有兴趣,可以阅读此文:MMS(见最下方的百度云传送门)


- 阅读剩余部分 -

由filter_var()函数引起的技术探讨

0x01 起因

最近在看PHP SECURITY CALENDAR 2017的题目,这是第二题

Day 2 - Twig

Can you spot the vulnerability?

// composer require "twig/twig"
require 'vendor/autoload.php';

class Template {
  private $twig;

  public function __construct() {
    $indexTemplate = '<img ' .
      'src="https://loremflickr.com/320/240">' .
      '<a href="{{link|escape}}">Next slide »</a>';

    // Default twig setup, simulate loading
    // index.html file from disk
    $loader = new Twig\Loader\ArrayLoader([
      'index.html' => $indexTemplate
    ]);
    $this->twig = new Twig\Environment($loader);
  }

  public function getNexSlideUrl() {
    $nextSlide = $_GET['nextSlide'];
    return filter_var($nextSlide, FILTER_VALIDATE_URL);
  }

  public function render() {
    echo $this->twig->render(
      'index.html',
      ['link' => $this->getNexSlideUrl()]
    );
  }
}

(new Template())->render();

这里考察的是XSS漏洞。对于XSS漏洞,大部分出现的地方在输出环节,如 echo $var; $var可控且无过滤,或者过滤不严格,导致了XSS漏洞的产生。

- 阅读剩余部分 -

由PHP SECURITY CALENDAR 2017引发的思考总结

0x01 起因

Day 1 - Wish List

Can you spot the vulnerability?

class Challenge {
  const UPLOAD_DIRECTORY = './solutions/';
  private $file;
  private $whitelist;

  public function __construct($file) {
    $this->file = $file;
    $this->whitelist = range(1, 24);
  }

  public function __destruct() {
    if (in_array($this->file['name'], $this->whitelist)) {
      move_uploaded_file(
        $this->file['tmp_name'],
        self::UPLOAD_DIRECTORY . $this->file['name']
      );
    }
  }
}

$challenge = new Challenge($_FILES['solution']);

这里的关键问题在in_array()函数,可以先看看In_array()的函数定义:

- 阅读剩余部分 -