首页 > 其他分享 >ACTF 2023 部分WP

ACTF 2023 部分WP

时间:2023-11-01 13:13:36浏览次数:48  
标签:shared url WP alice 2023 pk bob data ACTF

来自密码手的哀嚎:

玩不了一点,太难了。

CRYPTO

MDH

Description

Malin’s Diffile-Hellman Key Exchange.

task.sage

from hashlib import sha256
from secret import flag

r = 128
c = 96
p = 308955606868885551120230861462612873078105583047156930179459717798715109629
Fp = GF(p)

def gen():
    a1 = random_matrix(Fp, r, c)
    a2 = random_matrix(Fp, r, c)
    A = a1 * a2.T
    return (a1, a2), A

sk_alice, pk_alice = gen()
sk_bob, pk_bob = gen()
shared = (sk_alice[0].T * pk_bob * sk_alice[1]).trace()
ct = int(sha256(str(int(shared)).encode()).hexdigest(), 16) ^^ int.from_bytes(flag, 'big')

with open('output.txt', 'wb') as f:
    f.write(str(ct).encode() + b'\n')
    f.write(str(list(pk_alice)).encode() + b'\n')
    f.write(str(list(pk_bob)).encode() + b'\n')

output.txt

8308943029741424587523612386337754255889681699670071706719724435165094611096603769021839263
[(248911473252706126701034292146541373251616513930062195044617795903221826522, 2006663512374471656012713476848952481708164609054161957903243961884729327, 34477445744870695124522330116853976140397756578144976256418933561356297270, 134510431748375978099734325290614896206741166021565864231628975299374894934, 263052897010932566643732419798564392599203662525075356313352360336696893126, 141993015830421728697942660480086149608207938704594224742919997457007731362, 2884941569385999952542152446419918040970038754772386008722345958209977361, 251929132317823958330447233877195880589103297101688031807949769646459583779, 202402171486986340762120037260332866100215659317408872569460852300216859639, 299869910419680584431600458234987314403629236129755735947187138970557973965, 32123365781587714822724172153965985134547746672138349976513502380627017939,........

分析一下:

shared = (sk_alice[0].T * pk_bob * sk_alice[1]).trace()

也就是说shared = ((a1) * b1 * (b2)T * a2 ).trace()

已知Pk_alice = a1 * (a2)T Pk_bob = b1 * (b2)T

线性代数学的好的我们可以根据矩阵的迹的性质:Tr(A) = Tr(AT) ,Tr(AB) = Tr(BA)

因此我们可以把shared 内容交换下顺序得到 shared = ((a1) * a2 * (b2)T * b1 ).trace()

shared = (Pk_alice.T * Pk_bob).trace()

exp:

from hashlib import sha256

p = 308955606868885551120230861462612873078105583047156930179459717798715109629
Fq = GF(p)

f = open("output.txt",'r')
data = f.readlines()

ct = eval(data[0])
pk_alice = eval(data[1])
pk_bob = eval(data[2])

pk_alice = Matrix(Fp,pk_alice)
pk_bob = Matrix(Fq,pk_bob)

shared = (pk_alice.T * pk_bob).trace()

m = int(sha256(str(int(shared)).encode()).hexdigest(), 16) ^^ ct
flag = bytes.fromhex(hex(m)[2:])
print(flag)
# ACTF{do_you_know_f0rm2l1n_1s_4w3s0m3!}

MISC

SIGNIN: 东方原神大学

Description

1944 年,英国剑桥大学著名生物化学家李约瑟来到浙江大学,并盛赞浙江大学是“东方剑桥”,浙大也通过矢志不渝的发展和进步,证明了自己的含金量。

2020 年,开放冒险游戏原神横空出世,世界各地的游戏玩家都被这个具有宏大世界观并蕴含丰富中华传统文化的佳作所吸引,就连 AAA 战队的指导老师 BlackWhite 都赞其颇有塞尔达之神韵。

在接下来的几年间,各大高校间兴起了一阵原神大学之风,中国石油大学轻添寥寥数笔,便将自己的校名改为了中国原神大学,而哈尔滨工业大学也接下了建设提瓦特工业大学的光荣使命,众多学校也进入了原神大学称号的抢夺战之中。然而,作为全国排名第三的大学,浙江大学还没有自己的原神大学称号。这时浙江大学 AAA 的队员们想起了李约瑟对浙大“东方剑桥”的盛赞,恍然大悟,浙江大学不就是东方原神大学吗!

所以,欢迎来到东方提瓦特大陆

刚开始做这个就知道点进官网翻翻,一脸懵逼不知道干啥,源代码啥也没有,看着他们一个个做出来。。。呜呜难受

后来才知道用curl发送一个请求从而获取该网站的内容,哎

curl http://www.东方原神大学.com/

得到:

WEB

MyGO's Live!!!!!

Chosen websites for new-type fans of the band MyGO!!!!! .
The newest and the hottest (最新最热)!
「 迷子でもいい、前へ進め───。」
Link: http://124.70.33.170:24000/
Author: yyy
Auto restarting: every 10 mins.

不难发现是nodejs 类型题 Webstorm打开看一下源码,找到关键js代码部分如下:

app.get('/checker', (req, res) => {
  let url = req.query.url;
  
  if (url) {
    if (url.length > 60) {
      res.send("我喜欢你");
      return;
    }
    url = [...url].map(escaped).join("");
    console.log(url);

    let host;
    let port;
    if (url.includes(":")) {
      const parts = url.split(":");
      host = parts[0];
      port = parts.slice(1).join(":");
    } else {
      host = url;
    }
    let command = "";
    // console.log(host);
    // console.log(port);

    if (port) {
      if (isNaN(parseInt(port))) {
        res.send("我喜欢你");
        return;
      }
      command = ["nmap", "-p", port, host].join(" "); // Construct the shell command
    } else {
      command = ["nmap", "-p", "80", host].join(" ");
    }

    var fdout = fs.openSync('stdout.log', 'a');
    var fderr = fs.openSync('stderr.log', 'a');
    nmap = spawn("bash", ["-c", command], {stdio: [0,fdout,fderr] } );

    nmap.on('exit', function (code) {
      console.log('child process exited with code ' + code.toString());
      if (code !== 0) {
        let data = fs.readFileSync('stderr.log');
        console.error(`Error executing command: ${data}`);
        res.send(`Error executing command!!! ${data}`);
      } else {
        let data = fs.readFileSync('stdout.log');
        console.error(`Ok: ${data}`);
        res.send(`${data}`);
      }
    });
  }

发现路由是 checker

/checker?url=-iL%09/flag-????????????????

使用 -iL 去读一下文件,然后我们再构造一个可以报错的命令

便于触发

fs.readFileSync('stderr.log');

 然后

/checker?url=-iL

即可得到flag

 

 

 

标签:shared,url,WP,alice,2023,pk,bob,data,ACTF
From: https://www.cnblogs.com/mumuhhh/p/17802858.html

相关文章

  • Java后台微信点餐小程序2023年最新版笔记Springboot+Mysql+Freemarker+Bootstrap
    由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下第一章,技术选型(重要)在开始学习之前,要记得安装jdk8和mysql8,后面的笔记里也会具体讲解怎么安装,但是jdk8和mysql8必须和石头哥保持一致。1,后台技术选型:JDK8(必须保持一致)Mysql8(必......
  • The 2023 CCPC Guilin 游记
    Preface纯在偷懒,比赛结束过了这么多天才把这篇游记摸出来这场CCPC桂林算是我们全队第一次线下打区域赛,虽然赛前VP往年CCPC时偶尔也能打进金牌区(一般都是徐神切出字符串或是祁神切掉计算几何时)但鉴于没啥经验而且这场桂林强队如云,因此心理预期能守银就算成功最后的结果也算是中......
  • July 2023 (version 1.81)
    July2023(version1.81)更新后显示发行说明Update1.81.1:Theupdateaddressesthese issues.WelcometotheJuly2023releaseofVisualStudioCode.Therearemanyupdatesinthisversionthatwehopeyou'lllike,someofthekeyhighlightsinclude:Accessibili......
  • 【2023-10-20】连岳摘抄
    23:59生活是蜿蜒在山中的小径,坎坷不平,沟崖在侧。摔倒了,要哭就哭吧,怕什么,不必装模作样!这是直率,不是软弱,因为哭一场并不影响赶路,反而能增添一份小心。                                        ......
  • 【一句日历】2023年11月
    【2023年11月1日·星期三】 我自己在乎我自己。越孤单,越无亲无友,越无人依靠,我越是要尊重自己。                                                 ——夏洛蒂·勃朗特E......
  • 【2023-11-01】一款基于 pdf.js 的 PDF 批注注释插件库(纯JS、高亮、画笔、多边形、历
    基于纯JavaScript和PDF.js做的一款PDF批注拓展插件-PDFMaster,一款仍能兼容支持IE11的PDF批注插件,界面美观功能强大,有无开发经验都可以快速简单快速使用。Demo及源码Demo和源码地址:https://demos.libertynlp.com功能演示视频:https://www.bilibili.com/video/BV12C4y1n7TL......
  • CSP2023游寄
    上午J组进考场一个半小时切完的题T1手推一下T2简单贪心T3直接模拟T4直接bfs,每个点维护多种状态然后无聊地吃了两个小时,我的评价是明年绝对不打J了下午S组T1想了一下,感觉有坑,但是直接爆搜,想着先写了再说,然后过了T2想了2个小时都没想到栈,最后只有35ptsT3时间不多了,糊了65p......
  • 「2023·最新盘点」十大热门WebStorm主题
    WebStorm 是jetbrains公司旗下一款JavaScript开发工具。被广大中国JS开发者誉为"Web前端开发神器""最强大的HTML5编辑器""最智能的JavaSscriptIDE"等。与IntelliJIDEA同源,继承了IntelliJIDEA强大的JS部分的功能。在IDE中,开发者的感觉舒服很重要。WebStorm定制程度高,您可以按照......
  • [CSP-J2023]旅游巴士
    P9751[CSP-J2023]旅游巴士本题主要的难点在于到达和离开景区的时间都必须是\(k\)的非负整数倍以及每条道路均设置了一个“开放时间”\(a_i\)。对于第一个限制,只需要拆点,将每个点拆成距离\(\bmodk=0\simk-1\)。对于第二个限制,发现求的是最小值,答案具有二段性,可二分。......
  • [17章+电子书]C#速成指南-从入门到进阶,实战WPF与Unity3D开发
    点击下载:[17章+电子书]C#速成指南-从入门到进阶,实战WPF与Unity3D开发  提取码:a3s5 《C#速成指南--从入门到进阶,实战WPF与Unity3D开发》完整讲解了C#语言的核心知识和高阶编程技巧,并结合WPF客户管理系统和Unity3D切水果游戏两大实战项目,帮你实现技术的精通,完成从Zero到Hero的蜕变......