翼度科技»论坛 编程开发 mysql 查看内容

Newstar_week1-2_wp

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
week1 wp

crypto

一眼秒了

n费马分解再rsa
flag:
  1. import libnum
  2. import gmpy2
  3. from Crypto.Util.number import *
  4. p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
  5. q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
  6. e =  65537
  7. c =  48757373363225981717076130816529380470563968650367175499612268073517990636849798038662283440350470812898424299904371831068541394247432423751879457624606194334196130444478878533092854342610288522236409554286954091860638388043037601371807379269588474814290382239910358697485110591812060488786552463208464541069
  8. n = 52147017298260357180329101776864095134806848020663558064141648200366079331962132411967917697877875277103045755972006084078559453777291403087575061382674872573336431876500128247133861957730154418461680506403680189755399752882558438393107151815794295272358955300914752523377417192504702798450787430403387076153
  9. p = gmpy2.iroot(n,2)[0]-10000
  10. while not isPrime(p) : p += 1
  11. q = p + 2
  12. while not isPrime(q) : q += 2
  13. while p*q - n != 0 :
  14.     p = q
  15.     q += 2
  16.     while not isPrime(q) : q += 2
  17. phi_n = (p - 1) * (q - 1)
  18. d = gmpy2.invert(e, phi_n)
  19. m = pow(c, d, n)
  20. print(m)
  21. flag = libnum.n2s(int(m))
  22. print(flag)
复制代码
b'flag{9cd4b35a-affc-422a-9862-58e1cc3ff8d2}'
Base

4C4A575851324332474E324547554B494A5A4446513653434E564D444154545A4B354D45454D434E4959345536544B474D5134513D3D3D3D
base16
base32
base64
flag{B@sE_0f_CrYpt0_N0W}
xor
  1. from Crypto.Util.number import bytes_to_long, long_to_bytes
  2. # 已知的密钥和加密后的数据
  3. key = b'New_Star_CTF'
  4. c1 = 8091799978721254458294926060841
  5. c2 = b';:\x1c1<\x03>*\x10\x11u;'
  6. # 恢复 m1
  7. m1 = c1 ^ bytes_to_long(key)
  8. m1_bytes = long_to_bytes(m1)
  9. # 恢复 m2
  10. def xor_bytes(a, b):
  11.     return bytes([x ^ y for x, y in zip(a, b)])
  12. m2 = xor_bytes(c2, key)
  13. # 拼接 m1 和 m2 得到完整的 flag
  14. flag = 'flag{' + m1_bytes.decode('utf-8') + m2.decode('utf-8') + '}'
  15. print(flag)
复制代码
flag
  1. {flag{0ops!_you_know_XOR!}}
复制代码
misc

Labyrinth

LSB隐写
SilentEye打开发现里面有二维码,直接扫
web

会赢吗

part1

F12

藏在源代码里,还给了下一关的目录
  1. [/code][size=3]part2[/size]
  2. [align=center][/align]
  3. 稍微看一下代码,await等待接受一个参数className,这个参数跟在/api/flag/,就是我们第一关源码泄露出来的目录名,这段代码接收后就将POST请求头补充完整,否则post请求就不会传递任何信息,导致后一个if里的response.ok的bool值为0,所以只需要我们在控制台里将className的正确值给他
  4. [align=center][/align]
  5. 只需要调用revealFlag函数,将目录名传给他,一开始传的格式不太对,后来发现不需要加/因为他的代码里已经有/了,所以只需要给名字就ok
  6. [code]恭喜你!你获得了第二部分的 flag: IV95NF9yM2Fs
  7. ……
  8. 时光荏苒,你成长了很多,也发生了一些事情。去看看吧:/s34l
复制代码
part3
  1. document.addEventListener('DOMContentLoaded', function () {
  2.             const form = document.getElementById('seal_him');
  3.             const stateElement = document.getElementById('state');
  4.             const messageElement = document.getElementById('message');
  5.             form.addEventListener('submit', async function (event) {
  6.                 event.preventDefault();
  7.   
  8.                 if (stateElement.textContent.trim() !== '解封') {
  9.                     messageElement.textContent = '如何是好?';
  10.                     return;
  11.                 }
  12.                 try {
  13.                     const response = await fetch('/api/flag/s34l', {
  14.                         method: 'POST',
  15.                         headers: {
  16.                             'Content-Type': 'application/json'
  17.                         },
  18.                         body: JSON.stringify({ csrf_token: document.getElementById('csrf_token').value })
  19.                     });
  20.                     if (response.ok) {
  21.                         const data = await response.json();
  22.                         messageElement.textContent = `第三部分Flag: ${data.flag}, 你解救了五条悟!下一关: /${data.nextLevel || '无'}`;
  23.                     } else {
  24.                         messageElement.textContent = '请求失败,请重试。';
  25.                     }
  26.                 } catch (error) {
  27.                     messageElement.textContent = '请求过程中出现错误,请重试。';
  28.                 }
  29.             });
  30.         });
复制代码
在控制台输入
  1. document.getElementById('state').textContent = '解封';
复制代码
然后点解封
  1. 第三部分Flag: MXlfR3I0c1B, 你解救了五条悟!下一关: /Ap3x
复制代码
part4

禁用js
  1. {
  2.     "flag": "fSkpKcyF9",
  3.     "nextLevel": null
  4. }
复制代码
ZmxhZ3tXQTB3IV95NF9yM2FsMXlfR3I0c1BfSkpKcyF9
一眼base64
flag{WA0w!_y4_r3al1y_Gr4sP_JJJs!}
智械危机

进robots.txt会给一个目录,进去看到是一段php脚本
题目分析
[code][/code]访问index.php自动重定向到index.html
pizwww.php:
[code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具