> cat frozenme.htm

Offensive

整形溢出分类

0x1 强制宽度转换(Widthness)

从高级语言层面来看,如果数值超过 对应类型 可容纳的范围,会导致高位丢失:

char buffer[80];
char *src = argv[1];

int len = atoi(argv[2]);
unsigned short i = len; // mov WORD PTR [ebp + i], len

if (i < 80) {
    memcpy(buffer, src, len);
}

运行:

Drupal 7 CVE-2018-7600 Remote Code Execution

0x0 前言

3 月底 Drupal 官方放出一个 安全通告,其中描述了 Drupal 核心代码中的远程命令执行执行漏洞,但并未公布具体细节,同时在推送的 更新补丁 中,加入了对输入 HTTP 参数的过滤:

protected static function stripDangerousValues($input, array $whitelist, array &$sanitized_keys) {
    if (is_array($input)) {
        foreach ($input as $key => $value) {
            if ($key !== '' && $key[0] === '#' && !in_array($key, $whitelist, TRUE)) {
                unset($input[$key]);
                $sanitized_keys[] = $key;
            }
            else {
                $input[$key] = self::stripDangerousValues($input[$key], $whitelist, $sanitized_keys);
            }
        }
    }
    return $input;
}

根据补丁内容,如果传入的参数名为 # 开头,则对其进行移除。于是根据补丁中提供的线索,一场军备竞赛开始了 0v0。而在昨天的时候,CheckPoint 的安全研究员率先发布了漏洞的细节,同时 @a2u 发布了针对 8.x 的 PoC

Evading Anti-Virus by Using Dynamic Code Generation and Reflection

0x0 前言

文章的标题定了好久,但是一直没动笔,几天前完成了 Java 实现部分,后来由于时(划)间(水)关系,今天克服下懒癌完成 .NET 平台部分。文章可能会比较长,算是抛砖引玉吧蛤蛤。(・∀・)

0x1 化静为动

在日常渗透测试中,由于目标主机上存在反病毒软件,Webshell 后门被删是一件非常蛋疼的事情。对于功能较为完善的 Webshell ,都包含大量的静态特征,通过静态规则可以很容易进行匹配。

对于解释性的脚本语言,通常是由脚本引擎在运行时进行动态解析,因此可以比较灵活对指令进行控制,包括使用 eval 等函数完成动态执行。

Logrotate 下的持续化后门

TL;DR

logrotate 在日志轮询中,支持简单的生命周期事件 prerotate / postrotate 等,当日志轮询之前/之后,会尝试调用 sh 执行定义的语句块。

0x0 概述

日志对于应用调试、故障排查、攻击溯源等都有非常重要的作用。而随着时间的累加,日志的大小也随之增长,对单个庞大的日志文件进行分析,会消耗较多的时间和资源。

而 logrotate 可以很好的解决这些问题,logrotate 可以根据定义的规则,定期对日志进行归档重建、压缩等。