重工网猫 战队WriteUp

〇、前言

第一次和G3rling还有Annms_师傅们参加线下赛,有点激动 \(≧▽≦)/ ,最后也算得到了个不错的结果了

1714211014774_d

一、 战队信息

战队名称:重工网猫 战队

战队成员:G3rling、Annms_、Lwrzgo

战队得分:960

二、 解题情况

# 提交 flag 用户 赛题 类型 提交时间
1 G3rling 我拿到flag啦 Misc 2024-04-24 15:47:01
2 Lwrzgo Reverse2 Reverse 2024-04-24 14:33:46
3 G3rling 加密了的银行账号 Crypto 2024-04-24 13:20:21
4 G3rling Get the ciphertext Crypto 2024-04-24 13:12:18
5 G3rling 20201118_zip Misc 2024-04-24 13:06:30
6 Lwrzgo Check Web 2024-04-24 13:03:35

三、 解题过程

Web

Check

按照所示信息进行注入

image-20240424162302499

得到flag

flag{d2fe114028e5e6e8085425deacfd3fe6}

Misc

20201118_zip

第一层为伪加密,解压得到tips1和wo.zip

根据提示我们可以知道密码是11位哦,开头是186。首先想到手机号,就先掩码爆破

得到压缩包密码

image-20240424140614221

18601444669

下一层压缩包因为是有相同文件所有优先考虑是明文爆破,虽然我是7.06的但是无伤大雅,得到压缩包密码

image-20240424140911113

ar10ana0

解压得到flag

flag{4c98272a34da811c934fad0531dd5861}

我拿到flag啦

流量分析打开后导出对象

image-20240424161648953

发现有很多shell文件,需要base64解码。在shell(3).php种解码得到以下信息:

kVOxSw< G}6/Fw C VP5D>mC;SP1jG)!#
 >m5DPrAP:EJG D4F4-1A7A
 C:\phpstudy_pro\WWW 5DD?B<
2022/05/23  01:41    <DIR>          .

2022/05/23  01:41    <DIR>          ..

2022/02/21  15:27    <DIR>          css

2022/02/21  15:50    <DIR>          error

2022/05/23  01:42                38 flag.txt

2022/05/23  01:31    <DIR>          flag{60e1c056279a

2022/02/21  15:27    <DIR>          images

2022/01/28  23:14             1,323 index.html

2022/02/21  15:27    <DIR>          js

2022/05/23  01:14                29 shell.php

               3 8vND<~          1,390 WV=Z

               7 8vD?B< 47,298,482,176 ?ISCWV=Z

779a3236cd

C:\phpstudy_pro\WWW

dec1e71d4 

得到部分flag,而且说明flag应该是在shell指令中。在wireshark中按时间分析shell,php。

image-20240424162031760

base64解码得到flag

image-20240424162109659

flag{d2e1071c538eef5c6392d0ab0e887947}

Crypto

Get the ciphertext

Brainfuckde的两种形式

image-20240424141025881

image-20240424141003880

得到flag

flag{fd62371a16e34b4236af4c815c70d2c2}

加密了的银行账号

共模攻击

import gmpy2
from Crypto.Util.number import long_to_bytes

n = 839123934774248293554478900304805652005840721338630070412976096583047842775036231818774021937639649434688167897414096334116238084902194754637764024750792816721392354301739479608067847343792597904131386883826936202738091643779024125141255264223247609242732797223111375906539968766539699070553220024835237726906103489324159983224252110158455246369757060858217509822937163152185972444899932745256697748371372158650749600653559864702036394611754651413137001635037310384486835415211127040685857231115447354804277699698486014015179198727374388217592948103504783273235502069953842424278640309430812418432009515965525235385145845104436993038590088545931577484359861647891101843425163557830467877799969686630827090586068831286572090214049241078519089880483666226861834918996928339953135949773709823413539900554860599681940844430108740145857463465317542463460369739470382431178811713605099730666854586750420573809975950891432736357055207659867908960389714343184134892741009452909757459817636609433427812924456782545899375540553326445169985403837463499577711582154287873330657825693756960147166773280203881994461147955853897180714973259859345569061880741001595805100970589056125774856383495601030032566633812017502429733745385901436096392471289
e1 =806324329
c1 =163820585866464748037603720038892832306554988255206332863466690031251112393421587550794518466136449805972150046258007843678810670858951387865544768705860991912961811815403716953592063388227590617471347829805148489681889353092402164643007648065816490395610440358210631794473074518280532005297323838015000696012544093096729757248560313800119985077628515064121290046849842744649645290768993658687322260767120966685347950282971463554789285475522426817366147609763855420569516751283073981560233583052224238576709207099742418240326781531079937393665507293492304460161648982800074101163393514977619796309524278704876480025742024160221890561273557038260189577859945055862584556222614337893856036135407528568963925417637444291244325443939058848883360791328763182036736991538226734334763710031379376903812920870564906505631446736446351432678455275793428547686664667539262939321057216659646680245853118886811477642137593470574356360886586517623917262716025748350280034971229225621439570870095238910932174538777011907435005615951965481796660744335386804670981037480723346003591779345801230978946027215192726050182071464556997361600570176261668330138026540849862934790571484498436157306820319598552136374283506981655462848489790309701474742231765
e2 =981665371
c2 =273242589426480927826167181440879042261352093903608434884600905569452427185873771727772405404505268635334400366319247889103997045566310053661596019565754930974302295439331258267831862178643151110272578792132366938072461672903904131261872916290092535496394107067073669859724326918200655564533782970003007228779265786965898584930920671749110403164178828194786698903692367972071819235589738473333448909143263601696287295696594333362374640947177450581133679785322780121777626014738094838546764265270540875237752587231957198655334919482389040609616499842407581630400649266699612327355801522626608567074516199161612041393966746535463537504182396463306145605244107129067775658018376118992392243654356151728789607874911337696728619623272935933692059586381093273314357325686727609120412886454183336002684696756892485413467576457476017669378668920561188578039728356555469910921968008598794341024437414411415025750797861498237313315133504763627579092827456484850672726497492397166505646338025210493939717283132813965892266364677296542793933736272452657509115949431627829562871153172728793514100920642454624860024655189013182334029353933043493447139401983635409889928162529397033633451464690205097492717456395000561496206701612814279836034509030
r,s1,s2 = gmpy2.gcdext(e1, e2)   
m = (pow(c1,s1,n)*pow(c2,s2,n)) % n   
print(long_to_bytes(m))

b'\xe6\x88\x91\xe7\x9a\x84\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe5\x8f\xb7\xe6\x98\xaf\xef\xbc\x9aflag{0215c0f79ff3037b73fb13075aa6016c}'

得到flag

flag{0215c0f79ff3037b73fb13075aa6016c}

Reverse

异或

exp:

#include <stdio.h>

void convert(char* input, int length) {
    int i;
    for (i = 0; i < length; ++i) {
        input[i] ^= i;
    }
}
int main() {
    char p[] = { 102, 109, 99, 100, 127, 100, 117, 99, 110, 86, 110, 106, 96, 126, 101, 101, 79, 112, 126, 119, 103, 126, 124, 113, 116, 100 };
    int length = sizeof(p) / sizeof(p[0]);
    convert(p, length);
    puts(p);
    return 0;
}

//flag{asdf_dalskj_aldskjfl}
flag{asdf_dalskj_aldskjfl}

网站的管理员,似乎是个萌新🤔,CTBUer