Skip to content

Commit 55061a6

Browse files
authored
Merge pull request #55 from RocketMaDev/main
Fix some typos in offical wp
2 parents 2d73bd9 + f457439 commit 55061a6

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
lines changed

Official_Writeup/Crypto.md

+13-13
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ long_to_bytes(deblockize(decrypt_block_cbc(blocks, iv, key)))
144144

145145
## bad_e
146146

147-
经过计算很容易发现 $e$ 与 $\phi(p*q)$ 不互素,更进一步地 $gcd(q-1, e) = 1$ ,我们可以尝试先计算 $m\bmod q$ 的结果,计算 $e*d = 1 (mod \phi(q))$ 。由于此处 $m < q$ ,我们将模换成 $q$ 后解密便得到了明文
147+
经过计算很容易发现 $e$ 与 $\phi(p * q)$ 不互素,更进一步地 $gcd(q-1, e) = 1$ ,我们可以尝试先计算 $m\bmod q$ 的结果,计算 $e * d = 1 (mod \phi(q))$ 。由于此处 $m < q$ ,我们将模换成 $q$ 后解密便得到了明文
148148

149149
```python
150150
from Crypto.Util.number import *
@@ -398,20 +398,20 @@ b64encode(payload)
398398

399399
~~偷一部分校内选手Orac1e的分析(这水平直接薄纱我了qwq)~~
400400

401-
考察$RSA$中的解密指数$d$泄露问题。
401+
考察 $RSA$ 中的解密指数 $d$ 泄露问题。
402402

403-
这种问题非常严重,因为我们不仅可以直接解密密文,甚至可以根据$d,e,N$的值来做到有效分解$N$。
403+
这种问题非常严重,因为我们不仅可以直接解密密文,甚至可以根据 $d,e,N$ 的值来做到有效分解$N$。
404404

405-
在本题中我们知道$\phi(N)$的值,与之等效。
405+
在本题中我们知道 $\phi(N)$ 的值,与之等效。
406406

407-
当$N = pq$时,已知$d*e = 1 + k*\phi(N)$,而由欧拉定理知
408-
$$a^{d*e - 1} = 1 \bmod N \quad gcd(a, p*q) = 1$$
409-
注意到$d*e-1$为偶数,则我们可以将其表示为$2^{t}*g$的形式,其中$g$为奇数。
410-
我们计算一下$a^{d*e-1}-1$,得到如下分解:
411-
$$a^{d*e-1} - 1 = a^{2^{t}*g} - 1 = (a^{g} - 1)(a^{g} + 1)(a^{2*g}+1)\cdots (a^{2^{t-1}*g}+1)=0 \bmod N$$
412-
因为$N=P*Q$,$P,Q$均为素数。故我们可以计算上述分解式中各项与$N$的最大公约数,如果发现$GCD(a^{2^{i}*g} - 1, N) \neq 1,N$,我们便有效分解掉了$N$。
407+
$N = pq$ 时,已知 $d * e = 1 + k * \phi(N)$ ,而由欧拉定理知
408+
$$a^{d * e - 1} = 1 \bmod N \quad gcd(a, p * q) = 1$$
409+
注意到 $d * e-1$ 为偶数,则我们可以将其表示为 $2^{t} * g$ 的形式,其中 $g$ 为奇数。
410+
我们计算一下 $a^{d * e-1}-1$ ,得到如下分解:
411+
$$a^{d * e-1} - 1 = a^{2^{t} * g} - 1 = (a^{g} - 1)(a^{g} + 1)(a^{2 * g}+1)\cdots (a^{2^{t-1} * g}+1)=0 \bmod N$$
412+
因为 $N=P * Q$ , $P,Q$ 均为素数。故我们可以计算上述分解式中各项与 $N$ 的最大公约数,如果发现 $GCD(a^{2^{i} * g} - 1, N) \neq 1,N$ ,我们便有效分解掉了 $N$
413413

414-
但是需要注意的是这是一个概率算法,分解的成功与否取决于$a$的选取,根据实际求解的经验,笔者一般是选择用分解出来的因子逐个作为$a$,依次分解,这样的成功率比较高。
414+
但是需要注意的是这是一个概率算法,分解的成功与否取决于 $a$ 的选取,根据实际求解的经验,笔者一般是选择用分解出来的因子逐个作为 $a$ ,依次分解,这样的成功率比较高。
415415

416416
```python
417417
n_ = 363364907814244019888662301376841344262476227242899756862391470731421569394957444030214887114615748277199649349781524749919652160244484352285668794188836866602305788131186220057989320357344904731322223310531945208433910803617954798258382169132907508787682006064930747033681966462568715421005454243255297306718356766130469885581576362173340673516476386201173298433892314145854649884922769732583885904512624543994675379894718657682146178638074984373206937523380103438050549181568015985546172618830480078894445808092527561363650503540062128543705172678754195578429520889784813733491180748361345720247750720179608752244490362713103319685024237941527268458213442611663415417005556439749055222361212059968254748751273361732365487788593341859760309778894350385339764442343374673786357175846291309425081492959910254127778240522152676060766139057453197528944251599979227271074508795482632471242983094008619339488744362509349734218480932255216087706001484182136783834973304870508270118505737767002256270427907341952256516206663258530300791364944105025764611810001781971638030661367630116818647252727909489405550104641122269772492252464714694507693447974171377200402508765841829763548525530878309985480248379655169722567051495205792089930014228403456098065971372039443284193603395249634283366194562380309469628114581468645669390610963076340643757972439104287127375438663839421605531570285615180251
@@ -485,10 +485,10 @@ $$t_{i+1} = x_{i+2} - x_{i+1} = a * (x_{i+1} - x_{i}) \bmod m$$
485485
$$t_{i+2} * t_{i} - t_{i+1} ^ 2 = (a^2 * t_{i}) * t_{i} - (a * t_{i}) ^ 2 = 0 \bmod m$$
486486

487487
488-
$$ t_{i+2} * t_{i} - t_{i+1} ^ 2 = k * m ,\quad k \in \mathbb{Z} $$
488+
$$t_{i+2} * t_{i} - t_{i+1} ^ 2 = k * m ,\quad k \in \mathbb{Z}$$
489489

490490
491-
$$ m_{i} = t_{i+2} * t_{i} - t_{i+1} ^ 2 $$
491+
$$m_{i} = t_{i+2} * t_{i} - t_{i+1} ^ 2$$
492492

493493
则对 $m_{i}$ 序列求gcd,大概率为m
494494

Official_Writeup/Reverse.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ida反编译就能看到falg。或者按照指北里仔细数数,填入正确
1111

1212
> [pyc反编译](https://tool.lu/pyc/)`base_64.pyc`反编译得到python代码
1313
14-
```
14+
```python
1515
#!/usr/bin/env python
1616
# visit https://tool.lu/pyc/ for more information
1717
# Version: Python 3.7
@@ -60,7 +60,7 @@ upx -d upx!.exe脱壳
6060

6161
最后写个脚本出来
6262

63-
```
63+
```python
6464
from z3 import *
6565
s=Solver()
6666
flag = [Int("flag[%d]"%i) for i in range(31)]
@@ -98,7 +98,7 @@ cyberchef一把梭
9898

9999
所以我们要在xxxxx处分析汇编代码,找出花指令并nop掉
100100

101-
```
101+
```as
102102
.text:004605F5 33 C0 xor eax, eax
103103
.text:004605F7 89 45 E4 mov [ebp-1Ch], eax
104104
.text:004605FA 89 45 E8 mov [ebp-18h], eax
@@ -149,7 +149,7 @@ IDA打开之后可以看到是一个很标准的Windows程序
149149

150150
`WndClass.hpfnWnProc = sub_450CDF`这一句是注册回调函数,而`sub_450CDF`则是我们要找处理消息的回调函数
151151

152-
```
152+
```c
153153
LRESULT __stdcall sub_45BF90(HWND hWndParent, UINT Msg, WPARAM wParam, LPARAM lParam)
154154
{
155155
HWND DlgItem; // eax
@@ -258,7 +258,7 @@ GetWindowTextW(DlgItem, String, 1024);
258258
259259
再调后面的,会到这里
260260
261-
```
261+
```c
262262
int __cdecl sub_74E010(unsigned __int16 *a1, unsigned __int16 *a2, int a3)
263263
{
264264
__CheckForDebuggerJustMyCode(&unk_81801A);
@@ -285,7 +285,7 @@ int __cdecl sub_74E010(unsigned __int16 *a1, unsigned __int16 *a2, int a3)
285285

286286
最后,提取出比较的那个数组,再异或回去即可。
287287

288-
```
288+
```python
289289
enc=[0x0039, 0x003B, 0x0031, 0x000F, 0x003E, 0x0030, 0x0027, 0x0013, 0x0001, 0x007D, 0x0070, 0x0070, 0x0003, 0x007D, 0x0038, 0x000E, 0x007A, 0x0023, 0x007C, 0x000B, 0x001A, 0x003C, 0x007D, 0x0039, 0x007F, 0x003C, 0x004D, 0x004D, 0x004D, 0x0029]
290290
for i in range(len(enc)):
291291
print(chr((enc[i]^0x51)+5),end="")

Official_Writeup/Web.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ get(api_base+"flag",cookies={
144144
})();
145145
```
146146

147-
## moe图床
147+
## meo图床
148148

149149
访问uploads.php发现给了源码
150150

@@ -295,7 +295,7 @@ xml_content=%3C!DOCTYPE%20test%20%5B%20%3C!ENTITY%20xxe%20SYSTEM%20%22file%3A%2F
295295

296296
~~题目源码里可以看见彩蛋是怎么生成的~~
297297

298-
## meo图床
298+
## moe图床
299299

300300
此题并不是文件上传漏洞,而是简单的路径穿越和一些php代码审计
301301

0 commit comments

Comments
 (0)