Try   HackMD

SCAICT winter camp 2024

出題小組

  • 林逸凡 (dkri3c1)

IMG_0817

睡覺錯過ㄌ女鬼橋環節

  • 王昭立 (Chao)

IMG_2711

凌晨六點睡的正香被抱起來出題

  • 黃宥睿 (OsGa)

IMG_0816

我出的題都超水。 用腳都做得出來ㄅ
btw我在衣櫃睡得很香,那是我僅剩能補充睡眠的地方QQ

  • 毛哥

IMG_8723

正在準備晚餐賢慧ㄉ毛哥


HOW 2 install Linux

image


Welcome

歡迎來到CTF的世界

Welcome

  • 出題者:OsGa

    所有FLAG format 皆為 THUHC{*}

    THUHC{SCAICT_wintercamp_2024}

  • 解題:
    恩都在題目敘述ㄌ 我不用多解釋了8

Welcome Revenge

  • 出題者:dkri3c1

    Flag就藏在discord裡面喔!,快去找找他吧!

    https://discord.gg/wPz6Y9a5

  • 解題:
    好像很多人沒找到 然後一大堆人來複製我(osga)當時Discord的狀態哈哈哈
    其實就藏在貼圖寒訓群組的貼圖裡面
    image

    原本其實是在表情符號 但太小了我就移到貼圖
    你們看到的話可以在頻道發一下這個貼圖 讓大家知道你終於找到ㄌ(沒

Linux Command

Linuxㄉ簡單操作

meow meow

  • 出題者:OsGa

    喵喵喵 貓咪都會

  • 解題:
    載下來貓咪他就看到ㄌ
    image

4pp3ti2er

  • 出題者:OsGa

  • 解題:
    跟上面一樣 超水的題 貓咪他就有ㄌ

    image
    不是同張圖片


SECRET file

  • 出題者:OsGa

    非常安全 請執行以下檔案

  • 解題:
    下載完後執行檔案

    image

    記得要chmod +x <file> 給檔案執行權限!!!

    執行完後它會跟你說
    WAHAHA I have implanted a secret file on your computer CAN U FIND IT?!
    使用 ls -a 會發現目錄底下多出一個隱藏檔案

    image


0nion

  • 出題者:OsGa
    • 下載檔案後 使用 tar xvf {file} 進行解包
    • 小題醒 : 最後半段FLAG在檔案內 該檔案名稱不是FLAG的一部分
  • 解題:
    下載完後 使用 tar xvf {file} 將檔案解包
    其實你就能看到部分FLAGㄌ
    image

    進入到T目錄 之後一直按TAB可以自動補全 或者你可以直接複製下面的目錄w
    之後你會看到在最後的目錄裡有一個檔案叫做cat_me 顧名思義要我們cat它
    image

    前面的目錄為第一段FLAG 後面cat_me裡的內容為第二段FLAG
    image

    可以使用pwd看第一段FLAG
    image

    將它兩個就是完整的FLAGㄌ
    image

    記得將 / 給刪除掉 另外cat_me不是FLAG的一部分


F1rsT F1nD

  • 出題者dkri3c1

    flag就藏在名為S3cr3t.txt的檔案中,聰明的你利用find找找看吧!
    解壓縮檔案: unzip filename

  • 解題:
    有解過pico的應該會覺得很熟悉w
    一樣先下載檔案
    之後用題目給的指令 使用unzip <filename>將檔案解壓縮!
    image

    ok 看起來這ㄍ目錄底下有很多東西 題目希望我們在這個目錄找到S3cr3t.txt這個檔案
    我們可以使用find指令來快速搜查找!
    find <目錄名稱> -name 要查找的檔案
    image

    查完後它列出ㄌ一個目錄給你 代表它查到ㄌ在這個目錄底下叫做S3cr3t.txt的檔案
    可以直接複製下來然後cat這個檔案
    image

    FLAG 閃亮登場!

P0w3r_c4t

  • 出題者:OsGa

    喵喵 喵喵喵喵喵喵喵 (翻譯:兄弟 兄弟()@))(#@$**)

    使用強大的網路貓咪去看看是誰在跟你對話!

    nc ctfd.scaict.org 10000

  • 解題:
    這題也是史詩及超級無敵水題
    基本上複製上面的指令貼上去就好
    image

    吉伊卡哇😍

3xpe11iarmus

  • 出題者:OsGa

    我最喜歡齁哩跛ㄉㄜˋ了!

    但我的齁哩跛ㄉㄜˋ被可惡的網路貓咪帶走了

    並且在裡面藏了奇怪的東西 可以幫我找找它對我的齁哩跛ㄉㄜˋ做了什麼事嗎QQ

    nc ctfd.scaict.org 10001

    image

  • 解題:
    這題也是先nc ctfd.scaict.org 10001進去看看

    image
    恭喜你可以透過netcat看哈利波特小說
    如果你解不出來可以考慮把這篇讀完 還可以順便找到FLAG

    上課時說到grep不只是可以用在cat上面 所有指令都可以
    我們可以 nc ctfd.scaict.org 10001 | grep THUHC

    image
    然後你現在找完了 可以來看哈利波特了


Tab_taB_Attack

  • 出題者:dkri3c1

    Tabbbbbbbbbbbbbbbbb
    解壓縮檔案: unzip filename

  • 解題:
    一樣wget好朋友下載一下檔案
    然後跟上面一樣 unzip <files> 解壓縮
    image

    解壓縮完其實你就會發現flag在最後一個目錄ㄌ 你可以直接複製cat它
    或按照題目名稱 Tab_taB_Attack !!
    cd 進解壓完的目錄 然後瘋狂按你的tab
    image

    cat flag.txt就出現ㄌ
    image

H1de 4nD s33k

  • 出題者:OsGa

    FLAG: 嘿嘿嘿嘿我躲起來了你找不到我哇哈哈哈哈

  • 解題:
    下載完檔案後 可以先用files查看一下它的類型
    image

    看起來是個非常多行的ASCII TEXT檔案
    cat它看看
    image

    爆出一堆文字 多到截不下
    我們可以使用grep來快速查找我們要的關鍵字
    今天我們已經知道FLAG是THUHC開頭 所以我們就grep這個關鍵字
    cat <files name> | grep 關鍵字
    image

    而且kali很好心會幫你標出關鍵字<3 暈船

    這題還有一個解法 可以直接下載然後用notepad開 然後crtl+F 直接查w


f1nd th3 p4ssw0rD

  • 出題者:OsGa

    我忘記我的密碼了 但是我是機器人逼逼啵啵 一直通過不了驗證 可以幫我想辦法找到這個檔案的密碼嗎

    image

  • 解題:
    這題偏通靈
    下載完檔案後 使用file發現它是個ELF執行檔 給它權限後執行它!

    image
    會發現它要我們輸入password 但我甚麼都不知道題目也沒講R!!!怎麼輸都錯
    但我們可以用strings 看一下這個執行檔可列出的ASCII文字 說不定可以找到線索
    strings <files name>
    image

    這邊strings完發現在password底下有超級電神 dkri3c1 的名字
    我們推測這就是密碼
    再次執行輸入密碼後就看到FLAGㄌ
    image


Locksmith

  • 出題者:OsGa
    1. 創建一個檔案名為 key
    2. 並注入密鑰
    3. 執行檔案

    密鑰為:此題作者的名字(全都小寫)

  • 解題:
    這題也篇通靈
    下載完檔案後也會發現它是執行檔
    給它權限執行看看
    image

    執行完後你會看到它說沒找到鑰匙
    叫我們創建檔案然後注入鑰匙
    我們就按照題目敘述來做 叫我們創建一個檔案取名為key 並且在裡面輸入密鑰
    然後密鑰名稱是這題出題者的名字
    誰啊 那麼機掰出這題通靈題 喔..等等..是我自己哈哈
    那就vi key
    image

    進來之後 切換到輸入模式 輸入osga 然後退回指令模式:wq儲存退出
    保存退出後再次執行檔案
    image

    FLAG 乒乒乓乓蹦出來了!

Linux題目就到這邊 其實出的都滿偏簡單的 希望大家都有充分練習、了解到LINUX指令ㄉ部分( •̀ ω •́ )✧ by OsGa


Web Security

網頁安全不安全

Cat-Shop

  • 來自 splitline

    meow meow meow
    http://ctfd.scaict.org:8100

  • 解題:
    image

    進去後會發現FLAG的按鈕點不進去 但其它是可以進去的
    如果觀察仔細一點的話會發現 它每個分頁其實是有按照順序的
    剛剛好從 A Ranibow Cat 跳到 A Evil Cat 中間跳過了5430
    image

    image

    image

    直接修改URL到5430看會不會跳到FLAG那頁
    image

    當啷 跟我們想的一樣
    但會發現購買金額跟我們的錢包差很多
    所以我們可以右鍵->檢查 來修改網頁原始碼
    image

    到按鈕那區 我們可以更改購買金額 把它修成0元然後再購買
    image

    image

    液 我買到FLAGㄌ!!

F1nD_M3th0D

  • 來自 dkri3c1

    想想還有哪些http method可以用owo

  • 解題:
    image

    直接連上去會發現是這個樣子,那就來改http的請求方式
    開 burpsuite改就好ㄌ
    image

    image

    image

    最後就會拿到flag惹@@

    THUHC{HtTp_M3th0D-_-_P0St}

C00kIe_MasT3r

  • 來自 dkri3c1

    好吃ㄉ餅乾:D

  • 解題:
    用set cookie 拿到cookie , 然後把admin 的False改成True再按check cookie就有Flag惹!
    image

    image

Dragon_dance

  • 來自 dkri3c1

    愛跳舞的龍oUo

  • 解題:
    點進去發現被redirect到 Toothless Dancing to Driftveil City的影片
    那一樣可以用burpsuite攔攔看為啥會 redirect
    image

    image

    結果按下send就發現flagㄌ xD
    image

F**king Javascript

  • 來自 dkri3c1

    被*過的javascript

  • 解題:
    點進去發現有這麼一個網站
    image

    這題的題目名稱叫做F**cking javascript,那麼我們可以通靈看看這些單字
    image

    就會發現我們找到一個叫做JSFuck的東西,我們可以把它想像成一種編碼,於是我們就去找線上的解碼工具然後解碼他。
    image

    THUHC{JaVaScrript_TK888}

Login site

  • 來自 dkri3c1

    login with user1/password1

  • 解題:
    題目給了一個登入頁面,那我們試用題目給的那一組帳號登進去看看

    image
    image

    登入之後發現裡面啥都沒,於是就退回去一開始的登入頁面
    image

    回到一開始的登入頁面之後按F12右鍵->檢查看一下網頁原始碼,發現疑似一組帳號密碼的東西被註解ㄌ,
    image

    那我們登入看看
    image

    登入之後就會發現Flagㄌ:D

    THUHC{U_G0t_j0ke_bY_dkri3c1_:D}

SQL INJECTION 0x01

  • 來自 splitline的How-To-Hackwebsite開源課程

    Ez SQL INJECTION

  • 解題:
    解法1 :
    因知道資料庫內有位使用者叫"admin",所以我們直接在帳號欄輸入admin,後面加個單引號和括號結束這段字串,後面的’ ‘是資料庫註解語法(後面的東西資料庫都不會讀取)
    密碼區隨便打
    image

    解法2 :
    在不知道資料庫有哪筆使用者資料的情況下,在後面新增恆正的條件式,這樣一來即使前面輸入的帳號是錯誤的還是會被視為正確執行,後面的’ '是資料庫註解語法(後面的東西資料庫都不會讀取)
    密碼區隨便打
    image

    THUHC{SQLLLLLLL_IIINNNNjection_bruh}

Ping 0x01

  • 來自 splitline的How-To-Hackwebsite開源課程

    command injection

  • 解題:
    連上去發現是一個有command injection問題的網頁,我們試試看一般的payload123 | ls並開啟magic

    image
    發現她會報錯,於是我們就讓它變成字串執行,執行就變拿到一個shellㄌ,於是我們就可以輸入像是find的指令找flagㄌ。
    ps: 如果不知道為什麼的可以用終端機自己模擬一次:D

    demo 圖片:

    image
    image

    THUHC{PhP__Mak3_th3_pr0bl3m}


這邊是webㄉ題目,出的很奇怪抱歉T_T,希望這次課程之後大家對web security的部分有更多的了解@@ by dkri3c1


Python

大蟒蛇! 雖然沒有教太多但題目除了炸機 其實只要會看就解得出來ㄌw

Re5t0r3r

  • 出題者:OsGa

    下面的檔案好像執行不了 可以幫我修復並執行嗎

  • 解題:
    下載完後用vscode打開或其他編譯器打開都可以

    ​​​​flag = "WKXKF~g6ex<bp7vw6U€"
    ​​​​result = str()
    ​​​​for i in range(len(flag)){
    ​​​​    result += chr(ord(flag[i]) - 3)
    ​​​​}
    
    ​​​​print(result)
    

    其實這題只是要你們簡單ㄉdebug而已
    很簡單8!!很明顯8!!!編譯器都告訴你哪裡怪怪的ㄌ(如果你用VIM的話它不會告訴你w)
    這題只是簡單把文字位移而已 只是我很懶所以我隨便寫:D
    {}換掉執行就好

    ​​​​flag = "WKXKF~g6ex<bp7vw6U€"
    ​​​​result = str()
    ​​​​for i in range(len(flag)):
    ​​​​    result += chr(ord(flag[i]) - 3)
    
    
    ​​​​print(result)
    

    噹啷☆*: .。. o(≧▽≦)o .。.:*☆

    image

    btw你可以直接執行它友會告訴你哪裡有問題

    image


床的世界

  • 出題者:OsGa

    nc ctfd.scaict.org 10002

  • 解題:
    這題有提供server.py載下來後會發現其實就是server在跑的code

    image

    你可以輸入代號選你要買ㄉ床
    但如果你有看server.py的話你就會發現你可以輸入FL4G獲取FLAG

    ​​​​import sys
    ​​​​from secret import FLAG
    ​​​​def main():
    ​​​​    coins = 10
    ​​​​    print("welcome 2 Bed W0r1d.W4at do u need?")
    ​​​​    print("======================")
    ​​​​    print("A: a good bed - 10")
    ​​​​    print("B: EPCI bed - 1000000")
    ​​​​    print("C: Chao's bed - 0 ")
    ​​​​    print("D: Red bed - 100")
    ​​​​    print("E: hospital bed - 900")
    ​​​​    print("exit: Exit")
    ​​​​    print("======================")
    ​​​​    print(f"Wallet: {coins}")
    ​​​​    user_input = input('plz enter code: ')
    ​​​​    if user_input == "A":
    ​​​​        if coins >= 10:
    ​​​​            coins -= 10
    ​​​​            print("Purchase successful , but u cant do anything QQ")
    ​​​​        else:
    ​​​​            print("Insufficient balance")
    ​​​​    elif user_input == "B":
    ​​​​        if coins >= 1000000:
    ​​​​            coins -= 1000000
    ​​​​            print("Purchase successful , but u cant do anything QQ")
    ​​​​        else:
    ​​​​            print("Insufficient balance")
    ​​​​    elif user_input == "C":
    ​​​​        print("You got a hospital bed and got beaten by chao")
    ​​​​    elif user_input == "D":
    ​​​​        if coins >= 100:
    ​​​​            coins -= 100
    ​​​​            print("Purchase successful , but u cant do anything QQ")
    ​​​​        else:
    ​​​​            print("Insufficient balance")
    ​​​​    elif user_input == "E":
    ​​​​        if coins >= 900:
    ​​​​            coins -= 900
    ​​​​            print("Purchase successful , but u cant do anything QQ")
    ​​​​        else:
    ​​​​            print("Insufficient balance")
    ​​​​    elif user_input == "exit":
    ​​​​        sys.exit()
    ​​​​    elif user_input == "FL4G":
    ​​​​        print(FLAG)
    
    
    ​​​​try:
    ​​​​    main()
    ​​​​except:
    ​​​​    sys.exit()    
    

    image

    霹靂卡霹靂拉拉 FLAG出現吧!

    image

    喔對我EPIC打成EPCI 這題我是你們在聽課我在後面趕得 打太快了沒發現
    但我好懶得改 就這樣吧 不影響解題ㄉ各位放心 然後不用再提醒我了 我知道我打錯字我就懶!!!


東海炸雞

  • 出題者:Chao

    請你試著運用這些腳本得到Flag

    http://ctfd.scaict.org:8600/

  • 解題:
    查看app.py

    ​​​​from flask import * ​​​​app = Flask(__name__) ​​​​@app.route("/") ​​​​def index(): ​​​​ return 'Let`s guess flagggg!!' ​​​​@app.route("/<num>") ​​​​def round1(num): ​​​​ if int(num) == ???: ​​​​ flag1 = '1/2 of flag: THUHC{*' ​​​​ return flag1 ​​​​ return 'you are guess {}, but it is not the flag!'.format(num) ​​​​@app.route("/???/<num>") ​​​​def round2(num): ​​​​ if int(num) == ????: ​​​​ flag1 = '2/2 of flag: *}' ​​​​ return flag1 ​​​​ return 'you are guess {}, but it is not the flag!'.format(num) ​​​​if __name__ == "__main__": ​​​​ app.run(host="0.0.0.0", port=8600, debug=False)

    這題其實是要你們透過給題目給的腳本玩目錄爆破
    而且還要玩兩輪

    script.py

    ​​​​import requests ​​​​times = int(input("Enter a number to try guess flag ==>")) ​​​​for i in range(1, times): ​​​​ url = 'http://ctfd.scaict.org:8600/{}'.format(i) ​​​​ response = requests.get(url).text ​​​​ print(response)

    運行腳本後隨機輸入一個>=864的數字
    到864後他會給出第一個片段

    要獲得第二片段要將腳本修改成

    ​​​​import requests ​​​​times = int(input("Enter a number to try guess flag ==>")) ​​​​for i in range(1, times): ​​​​ url = 'http://ctfd.scaict.org:8600/864/{}'.format(i) ​​​​ response = requests.get(url).text ​​​​ print(response)

    再運行腳本輸入一個>=1001的數字


Web

毛哥ㄉWeb小學堂

蹦啾

  • 出題者:毛哥EM

    下列何者 CSS 漸層能畫出法國國旗?
    (選項去看LAB)

  • 解題:
    E,漸層開始與結束位置需要重疊,才會變實心顏色。

FLEX

  • 出題者:毛哥EM

    何者屬性能夠控制 flex box 水平對齊方向? 是 flex-wrap 嗎?還是 flex-flow ? 還是

  • 解題:
    何者屬性能夠控制 flex box 水平對齊方向?答案是 justify-content。
    不過嚴格說來是稱為主軸對齊,主軸的設定是上方的 flex-direction;所以實際是水平或垂直,要依主軸的方向而定喔。

皮卡丘

  • 出題者:毛哥EM

    皮卡丘的臉為什麼會跑版? 因為他的五官是 display: inline, block, 還是 inline-block?? 還是

    image

  • 解題:
    因為他的五官是 display: block每個元素會佔滿整排。inline, block, inline-block 三選一,一開始還沒限制回答次數,也太佛了


青蛙

  • 出題者:毛哥EM

    何者屬性能夠控制 flex box 水平對齊方向? 是 flex-wrap 嗎?還是 flex-flow ? 還是

    image

  • 解題:
    Flexbox Froggy
    Flexbox Froggy 總共有 24 關。


社交距離

  • 出題者:毛哥EM

    控制元素外距的屬性是什麼?
    display? color? background? letter-spacing?
    只可嘗試兩次喔? 還是

  • 解題:
    控制元素外距的屬性是什麼?答案是 margin,padding 是內距。還給兩次回答機會,講師人真好。


你有多粗?

  • 出題者:毛哥EM

    請問 CSS 屬性 font-weight 最高能設定多粗? 請回答數字,限回答 2 次喔

  • 解題:
    課程中有提到,CSS 屬性 font-weight 最高能設定到 1000。有一些網站寫 900 其實是錯 誤的,但一般人通常不會設到那麼粗。


MISC

基本上題目都是來亂ㄉ 送你們分

猜猜名字-1

  • 題目:

    這個字的中文是啥

    直接回答注音就好ㄌ

  • 解題:

    第六組隊輔 - 孫驊(ㄏㄨㄚˊ)辰

    自己小隊錯的很不應該喔!!

猜猜名字-2

  • 題目:

    這個字的注音是啥

    直接回答注音就好ㄌ

  • 解題:

    第五組隊輔 - 黃粲(ㄘㄢˋ)閎

    自己小隊錯的很不應該喔!!

猜猜名字-3

  • 題目:

    這個字的注音是啥

    直接回答注音就好ㄌ

  • 解題:

    講師 - 馮(ㄈㄥˊ)聖元

    馮教授🛐

猜猜名字4

  • 題目:

    這個字的注音是啥

    **直接回答注音就好ㄌ **

  • 解題:

    活動召集 - 王朝(ㄔㄠˊ)立

    沒錯!!居然是念朝立 不是念朝立 是念朝立
    反正我都念朝立 管你朝立念朝立還是朝立

猜猜名字-5

  • 題目:

    這個字的注音是啥

    **直接回答注音就好ㄌ **

  • 解題:

    第三組隊輔 - 涂(ㄊㄨˊ)紫婷

    這題回答錯的要哭了啦
    image

誰在幫猴子洗澡

  • 出題者:OsGa

    請問是誰在幫猴子洗澡 回答選項即可(大寫)
    A: 飛哥和小佛

    image

    B:朝立和子賢

    image

    C:逸凡和志豪

  • 解題:
    明顯答案是B吧 超猴 根本頂級cosplay
    反正沒有限制回答次數 你可以把三個答案都猜一遍w


我沒睡到覺!!!!!

  • 題目:

    本次LAB出題者們的IG <3

    黃宥睿 os324_

    林逸凡 dkri3c1

    王朝立 chao28661

  • 解題:
    當天開不起連結好像是因為東海那邊有擋起來

    Part 1

    dkri3c1的IG自介

    image

    Part 2

    chao28661的IG限動

    image

    還有我的手手 真害羞 王朝立一定是偷偷暗戀我(/▽\)

    Part 3

    os324_的IG精選

    image

    拚再一起就是了哈哈


給破台玩ㄉ

RSA-0

  • 出題者: dkri3c1

    主委加碼,謝謝:D
    hint https://zh.wikipedia.org/zh-tw/貝祖等式
    cipher.txt

  • 解題
    這題是給有RSA基礎知識的人解的(因為我想說都破台了,應該很強)
    我們觀察到這題有同樣的m然後有同樣的n但不同的c跟e,我們要先確認e1跟e2是否互質,若e1,e2沒有互質就要另尋他解,如果是的話就是貝祖定理(雖然我hint已經給ㄌ)

    image

    圖上的說明-> c=密文 , n=公鑰 , e=公鑰 , m=明文

    solve.py

    ​​​​from Crypto.Util.number import * ​​​​n = 96111387820326098318655760259195844126853257436654749115455672801418833632367447802179296719863046486119441724884509301246015067741738603881924991173878583617148996363081836370381862669379601265408966956162574764795097506179928831098746625425587550745807608851479781270909557529408305939971796828618992046873 ​​​​c1 = 85638280401610458473540097013406240165966274681551361054758175228039442711757933917202614497455103312449227084848038652266829921543236179383886246240092390349901100808280076655141149660293034457469166703027986583531059472570205765209050570249425198990148285555594624254805247245216996491775855144264544526119 ​​​​c2 = 19987656163088075635977496827778635032797748122647673760540957781697539590251122615002032644484858413837406435384220495115750142740045250339081486017013042344617428545976992376637451213610277876225587989738458370051581806892354076780301206568091994213391223940047723657824198039056080997858802659270846599824 ​​​​e1 = 257 ​​​​e2 = 65537 ​​​​from gmpy2 import gcdext ​​​​import math ​​​​check=math.gcd(e1,e2) ​​​​if check ==1: ​​​​ print('互質') ​​​​_,s1,s2=gcdext(e1,e2) ​​​​m=(pow(c1,s1,n)*pow(c2,s2,n))%n ​​​​print(long_to_bytes(m))
    ​​​​n = 96111387820326098318655760259195844126853257436654749115455672801418833632367447802179296719863046486119441724884509301246015067741738603881924991173878583617148996363081836370381862669379601265408966956162574764795097506179928831098746625425587550745807608851479781270909557529408305939971796828618992046873
    ​​​​c1 = 85638280401610458473540097013406240165966274681551361054758175228039442711757933917202614497455103312449227084848038652266829921543236179383886246240092390349901100808280076655141149660293034457469166703027986583531059472570205765209050570249425198990148285555594624254805247245216996491775855144264544526119
    ​​​​c2 = 19987656163088075635977496827778635032797748122647673760540957781697539590251122615002032644484858413837406435384220495115750142740045250339081486017013042344617428545976992376637451213610277876225587989738458370051581806892354076780301206568091994213391223940047723657824198039056080997858802659270846599824
    
    ​​​​e1 = 257
    ​​​​e2 = 65537