# 一天一CTF > 第一步是你必須說:「我辦得到」 — 威爾.史密斯 > > 二十年後,你會懊悔更多的是那些現在沒做,而不是真的做了的事。所以,拋開繩結,駛離安全的港灣。掌握好你的風向,勇敢的探險,夢想,發現吧。 -馬克.吐溫 ## Day1 2025/11/3-picoCTF Flag in Flame ![image](https://hackmd.io/_uploads/HyW0lM8ybx.png) 先解開base64 ![image](https://hackmd.io/_uploads/BkS7NMI1Wg.png) 得到這張圖片 ![image](https://hackmd.io/_uploads/H1HkXzIk-e.png) > 很重的ai味 然後~~辛苦的~~丟給ai解碼![image](https://hackmd.io/_uploads/H1bv7MUk-x.png) flag就有拉 ``` picoCTF{forensics_analysis_is_amazing_c75dd08e} ``` ![image](https://hackmd.io/_uploads/S14rVf8kbl.png) ## Day2 2025/11/4-picoCTF Inspect HTML ![image](https://hackmd.io/_uploads/SkqQLdDkbg.png) 首先打開網站 ![image](https://hackmd.io/_uploads/BkqIUdvJWx.png) 然後右鍵-"檢查" ![image](https://hackmd.io/_uploads/Hksv8OP1Wg.png) 把`<body>`展開 ![image](https://hackmd.io/_uploads/Hk9tUdwk-g.png) ![image](https://hackmd.io/_uploads/B1DhL_P1Zx.png) now we get flag! 右鍵flag-copy-Copy element ![image](https://hackmd.io/_uploads/S1CAL_D1Zg.png) (記得去掉!--和-->) `picoCTF{1n5p3t0r_0f_h7ml_1fd8425b}` ![image](https://hackmd.io/_uploads/HyvO_tD1bl.png) > 最近都先挑簡單的先做 > 我怕我做太難的會爆 ## Day3 2025/11/5-picoCTF DISKO 1 ![image](https://hackmd.io/_uploads/BJyTXau1be.png) 先點[here](https://artifacts.picoctf.net/c/537/disko-1.dd.gz)下載檔案 ![image](https://hackmd.io/_uploads/rk6pQaOJbe.png) 打開之後發現檔案是.dd檔 ![image](https://hackmd.io/_uploads/BkE_Np_J-g.png) 在這邊卡很久,直到看到了[這篇文章](https://0xodinx.medium.com/picoctf-disko-1-writeup-2730afc8f0be) ![image](https://hackmd.io/_uploads/HJv1JCOyZl.png) 行,我試試看 打開kali虛擬機,把檔案傳過去(或用wget下載,用gzip解壓縮 `wget https://artifacts.picoctf.net/c/537/disko-1.dd.gz` `gunzip disko-1.dd.gz `) 先切到放檔案的目錄下 ![image](https://hackmd.io/_uploads/ByDEy0Oy-l.png) 確認一下檔案類型 ![image](https://hackmd.io/_uploads/Hyq_10O1-l.png) 然後直接讀字串 ![image](https://hackmd.io/_uploads/BJTZg0ukWe.png) get the flag! `picoCTF{1t5_ju5t_4_5tr1n9_be6031da}` ![image](https://hackmd.io/_uploads/r1MZW0uybe.png) > 炫耀下桌布btw > ![image](https://hackmd.io/_uploads/HkQYxAd1bg.png) > ![image](https://hackmd.io/_uploads/BJQhxRdyZg.png) ## Day4 2025/11/6-picoCTF Log Hunt ![image](https://hackmd.io/_uploads/Bk4OX19Jbe.png) 先把log下載下來打開 第一行就發現有flag的一部份 ![image](https://hackmd.io/_uploads/HkZ3rk51Zx.png) 這就代表說有`INFO FLAGPART`就是flag會出現的地方 按下Ctrl+f把INFO FLAGPART貼進去找(或丟到linux用`cat server.log| grep "INFO FLAGPART"`) 我用linux抓出來了這些字串: ```bash ┌──(kali㉿kali)-[~/Desktop] └─$ cat server.log| grep "INFO FLAGPAR" [1990-08-09 10:00:10] INFO FLAGPART: picoCTF{us3_ [1990-08-09 10:02:55] INFO FLAGPART: y0urlinux_ [1990-08-09 10:05:54] INFO FLAGPART: sk1lls_ [1990-08-09 10:05:55] INFO FLAGPART: sk1lls_ [1990-08-09 10:10:54] INFO FLAGPART: cedfa5fb} [1990-08-09 10:10:58] INFO FLAGPART: cedfa5fb} [1990-08-09 10:11:06] INFO FLAGPART: cedfa5fb} [1990-08-09 11:04:27] INFO FLAGPART: picoCTF{us3_ [1990-08-09 11:04:29] INFO FLAGPART: picoCTF{us3_ [1990-08-09 11:04:37] INFO FLAGPART: picoCTF{us3_ [1990-08-09 11:09:16] INFO FLAGPART: y0urlinux_ [1990-08-09 11:09:19] INFO FLAGPART: y0urlinux_ [1990-08-09 11:12:40] INFO FLAGPART: sk1lls_ [1990-08-09 11:12:45] INFO FLAGPART: sk1lls_ [1990-08-09 11:16:58] INFO FLAGPART: cedfa5fb} [1990-08-09 11:16:59] INFO FLAGPART: cedfa5fb} [1990-08-09 11:17:00] INFO FLAGPART: cedfa5fb} [1990-08-09 12:19:23] INFO FLAGPART: picoCTF{us3_ [1990-08-09 12:19:29] INFO FLAGPART: picoCTF{us3_ [1990-08-09 12:19:32] INFO FLAGPART: picoCTF{us3_ [1990-08-09 12:23:43] INFO FLAGPART: y0urlinux_ [1990-08-09 12:23:45] INFO FLAGPART: y0urlinux_ [1990-08-09 12:23:53] INFO FLAGPART: y0urlinux_ [1990-08-09 12:25:32] INFO FLAGPART: sk1lls_ [1990-08-09 12:28:45] INFO FLAGPART: cedfa5fb} [1990-08-09 12:28:49] INFO FLAGPART: cedfa5fb} [1990-08-09 12:28:52] INFO FLAGPART: cedfa5fb} ``` 再把flag依照出現順序拼出來 Get The Flag! ``` picoCTF{us3_y0urlinux_sk1lls_cedfa5fb} ``` ![image](https://hackmd.io/_uploads/HyV29y9JZx.png) ## Day4 2025/11/6-picoCTF Vigenere > 忽然想多做一個 ![image](https://hackmd.io/_uploads/HJG4QWckWg.png) `cipher.txt`: ``` rgnoDVD{O0NU_WQ3_G1G3O3T3_A1AH3S_f85729e7} ``` 已知key為`CYLAB` 那就用線上工具解密! 我使用[ctf.bugku.com的解密工具](https://ctf.bugku.com/tool/vigenere)來解密 ![image](https://hackmd.io/_uploads/rJKkVWqyWx.png) 解密之後就有flag啦 ![image](https://hackmd.io/_uploads/rJvHV-51Zx.png) ``` picoCTF{D0NT_US3_V1G3N3R3_C1PH3R_d85729g7} ``` ![image](https://hackmd.io/_uploads/Hk084W91Wx.png) ## Day4 2025/11/6-picoCTF Vigenere > 忽然又想多做一個 ![image](https://hackmd.io/_uploads/BkxCF-cybx.png) `readmycert.csr`: ``` -----BEGIN CERTIFICATE REQUEST----- MIICpzCCAY8CAQAwPDEmMCQGA1UEAwwdcGljb0NURntyZWFkX215Y2VydF81YWVi MGQ0Zn0xEjAQBgNVBCkMCWN0ZlBsYXllcjCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBAMCkf11rmV8rgqPvC2ZiPA6W+5RfOTwU6u3WpGvLA+2YFzocBPut aATTxTPB+uaN2ZN3Z5J2CTFGmPzI4sUQfSqhZGuAqbfMyDDR8pRswmIYVJ6s0Apc Toi7H8m3IShSbeE0pZUSIJpbK1a7V6lJqgwFMDI1qrgNhGgZaMA/l+d2J0vC3EYd AijwSs8APcp6woWbFGYwdw5KaBsjn23oVz2G4h3/TmdB5g5e6Oq+kgi38NEpRDS0 ylXo9mUko3FqS4I6y9gOtDEI4uZaCJZuXHDmBpqZ04MfXbIVlHjF9NMOjDvXLonN 650oaANBm4bhBlgid0Fx48Z36tbtAVivZEcCAwEAAaAmMCQGCSqGSIb3DQEJDjEX MBUwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHZx6h9r G/SE7RCoX6ndk5BOJprRiHpxOqPLAWcDyKHfStln0/HcQZzIrRVRsmoHiOmch+md PBA1b+M5aj+3BWtPR9jOY4vht+ZmHAKa0WfQxwb2dBxsRPKTTDea0wN2u8BHLlSM PbWPNuz+TKySL41xfwFuM4VN/ywn58GTvdb7HXgwNZCGgo2N1WhRq/dBMiagXMah yb6gX4erugCu61T5tyD80hgsNBjaqyIdy/whRfC/Pmn3QHmdkqB5ZCPezwb2OLm4 5RDGv3WOB5q0BofoUGhVq757QE8qhL3oTvV2WlLoi3YWaZkJMCeR3vnH92cKC1Ov FxdQuLOH8GMvl7U= -----END CERTIFICATE REQUEST----- ``` 先讓我們知道[什麼是CSR?](https://www.ssl.com/zh-TW/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C/%E4%BB%80%E9%BA%BC%E6%98%AF%E4%BC%81%E6%A5%AD%E7%A4%BE%E6%9C%83%E8%B2%AC%E4%BB%BB/) 我在網路上找到了[這個工具](https://www.ssl.com/zh-TW/csr%E8%A7%A3%E7%A2%BC%E5%99%A8/) 直接把csr的內容貼上去按綠色的就行 ![image](https://hackmd.io/_uploads/B1srq-5yWe.png) flag就在`Common Name`這裡 ``` picoCTF{read_mycert_5aeb0d4f} ``` ![image](https://hackmd.io/_uploads/r1uC9-9kWe.png) ## Day5 2025/11/7-picoCTF morse-code ![image](https://hackmd.io/_uploads/B1akMMiyZl.png) [檔案](https://artifacts.picoctf.net/c/79/morse_chal.wav)是個音檔 我直接丟到https://morsecodegenerator.org/tw/morse-audio-translator 上去解 ![image](https://hackmd.io/_uploads/ryftNGjyZe.png) 再把所有字改成小寫加上_ `picoCTF{wh47_h47h_90d_w20u9h7}` ![image](https://hackmd.io/_uploads/rJCHHGsyZe.png) ## Day6 2025/11/8-picoCTF caesar ![image](https://hackmd.io/_uploads/Hy00HnnJZl.png) `data.enc`: ``` picoCTF{mbyccsxqdrobelsmyxigfknnoo} ``` 我使用[dcode](https://www.dcode.fr/caesar-cipher)解密 ![image](https://hackmd.io/_uploads/ryg-vn2J-x.png) 看到cross的有意義字源我就覺得這是flag ``` picoCTF{crossingtherubiconywvaddee} ``` ![image](https://hackmd.io/_uploads/B1OBw2hJ-e.png) ## Day7 2025/11/9-picoCTF rotation ![image](https://hackmd.io/_uploads/S1TdclAk-x.png) `encrypted.txt`: ``` xqkwKBN{z0bib1wv_l3kzgxb3l_949in1i1} ``` 使用[decode](https://www.dcode.fr/rot-cipher)的`Automatic Decryption`功能 ![image](https://hackmd.io/_uploads/Hk-bilA1bx.png) ![image](https://hackmd.io/_uploads/HyOZil0kWx.png) ``` picoCTF{r0tat1on_d3crypt3d_949af1a1} ``` ![image](https://hackmd.io/_uploads/SJfQjgRJZx.png) ## Day8(Day9補) 2025/11/10(2025/11/11)-picoCTF SSTI1 ![image](https://hackmd.io/_uploads/HkbY3jllZe.png) 這個網站要用到[SSTI惡意指令注入](https://www.cloudforce.gamania.com/tw/news_detail?type=technology&id=285) 然後根據網站上的每個指令依次測試 ![image](https://hackmd.io/_uploads/r1CLCjgx-e.png) 我在網頁上看到,我覺得可能是這個 試了半天沒出來,所以我查了一下 找到了[外國大佬](https://medium.com/@jojolucky221/picoctf-20250-web-ssti-1-56b85ac6b278)和另一個[佑仔](https://hackmd.io/@YuYutw123/picoCTF_Web?utm_source=preview-mode&utm_medium=rec#SSTI1)的解題筆記 ![image](https://hackmd.io/_uploads/rkOPJ3exbl.png) 他們都先使用ls來檢查內容 `{{ config.__class__.__init__.__globals__['os'].popen('ls').read() }} ` ![image](https://hackmd.io/_uploads/Bk15ZhgeZg.png) 然後使用 ``` {{ config.__class__.__init__.__globals__['os'].popen('cat flag').read() }} ``` ![image](https://hackmd.io/_uploads/Hk2oZ3xxbg.png) get flag! ``` picoCTF{s4rv3r_s1d3_t3mp14t3_1nj3ct10n5_4r3_c001_4675f3fa} ``` ![image](https://hackmd.io/_uploads/SJMkG3exZe.png) ## Day 9 2025/11/11-picoCTF Ph4nt0m 1ntrud3r ![image](https://hackmd.io/_uploads/ryXME2ll-g.png) 先下載安裝[wireshark](https://www.wireshark.org/download.html) 打開 file-open ![image](https://hackmd.io/_uploads/BkiJr2lg-g.png) 選擇檔案的路徑 打開會長這樣 ![image](https://hackmd.io/_uploads/ByeQIhxlWl.png) 然後呢就爬文 爬到了佬的[文章](https://hackmd.io/GXc9gzpARW6fNj1TtmUqvg?view) 他上面提到用時間排序 因為題目有一個hint是Time is essential 接下來逐個找出來(依據佬的筆記大概從 Time 0.002212 開始會出現 Flag 經過編碼之後的東東) 然後就轉碼 ~~flag:`picoCTF{1t_w4snt_th4t_34sy_tbh_4r_e5e8c78d}`~~ > 說實在我根本不會抓包解包 > 阿結果flag是錯的 > 有反轉 > 我找到了[外國人的筆記](https://medium.com/@tolentinojesusanthony/picoctf-forensic-ph4nt0m-1ntrud3r-1d79fed7cf0d) > 他寫的flag是這個picoCTF{1t_w4snt_th4t_34sy_tbh_4r_f318db22} > wc? > 還是錯的? > 真要我下手啊 >ok我解出來了 > 包從 ## Day10(打贏復活賽)2025/12/3-picoCTF repetitions ![image](https://hackmd.io/_uploads/ByEaXppbbg.png) ![image](https://hackmd.io/_uploads/SyCCXT6ZWx.png) 直接解碼 一直姐 姐到最後的flag ``` picoCTF{base64_n3st3d_dic0d!n8_d0wnl04d3d_dfe803c6} ``` ![image](https://hackmd.io/_uploads/SkeuHa6ZZx.png) ## Day 11 2025/12/18 picoCTF Scan Surprise 掃描驚喜 ![image](https://hackmd.io/_uploads/B1cVKUZX-l.png) `challenge.zip`: ``` C:. \---home \---ctf-player \---drop-in flag.png ``` `flag.png`: ![flag](https://hackmd.io/_uploads/By7AYU-Qbe.png) 用線上工具掃描 ![image](https://hackmd.io/_uploads/HyRy5IbmZx.png) ``` picoCTF{p33k_@_b00_0194a007} ``` ![image](https://hackmd.io/_uploads/BJCZ5UZXWl.png) > 這也能當CTF... ## Day 12 2025/12/19 picoCTF information 資訊 ![image](https://hackmd.io/_uploads/BJTVPPz7-g.png) ```cat.jpg```: ![cat](https://hackmd.io/_uploads/SJOiPDfQZl.jpg) 我一開始用Hex工具找(想說可能藏在hex)但沒有 後來用 [Online-Metadata](https://online-metadata.com/zh) 查看元數據發現怪怪的東西... ![image](https://hackmd.io/_uploads/H1c7_vMQbe.png) 這個看起來像Base64(按照picoCTF的~~習慣~~),但他沒有關鍵的== :cry: 那就試試看吧 ![image](https://hackmd.io/_uploads/Hy8O_wG7-x.png) 是耶 耶拿到flag了 ``` picoCTF{the_m3tadata_1s_modified} ``` ![image](https://hackmd.io/_uploads/B1TcOwMQ-e.png) ## Day 12 2025/12/19 picoCTF Corrupted file 檔案損壞 ![image](https://hackmd.io/_uploads/BkGuH_MQbl.png) 這題是看[medium上大佬的文章](https://medium.com/@cozyxss/corrupted-file-picoctf-writeup-1e25eb2bb182)解的 ![image](https://hackmd.io/_uploads/BkmVLOzXWl.png) 先使用[hexed](https://hexed.it/) 查看文件的Hex值 ![image](https://hackmd.io/_uploads/Sk4C8dzXWx.png) 有一個JFIF,那他頭會是什麼呢\? 會是這些 ![image](https://hackmd.io/_uploads/rkTID_f7-l.png) 把它改好![image](https://hackmd.io/_uploads/BkrYDdGmZx.png) 存成jpg `file (1).jpg`: ![file (1)](https://hackmd.io/_uploads/ByBnDOfXWe.jpg) ``` picoCTF{r3st0r1ng_th3_by73s_2326ca93} ``` ![image](https://hackmd.io/_uploads/SkmRPuMXZl.png) ## Day 13 2025/12/20 picoCTF Verify 驗證 ![image](https://hackmd.io/_uploads/BkypLQEQWg.png) 先連上伺服器: ![image](https://hackmd.io/_uploads/HJnxw74mWl.png) 然後先使用`ls`看有什麼檔案 ![image](https://hackmd.io/_uploads/ryP9vQ47bg.png) 然後 `cd files` And `ls` ![image](https://hackmd.io/_uploads/HyFxOm4mbx.png) 然後開始驗證sha256`sha256sum 02kLdPvr 3HWGffFE 6JGob933....` 你會得到這張表: :::spoiler ``` 87c3b0d3c1ed24251e37b0751349b306686f2a0251a3faafeb0e901bab96b26a 02kLdPvr 67ca9b396a77d563d66b9158da40f3e4e780e5b244cb65e77722ccc34165a804 3HWGffFE 9d41432c483dd058dcb3f5b3702946a27d5179aeb4fd97b9fb58397ad7b4ce21 6JGob933 e4ad546bc827ece358ef790eb2c4c1a55a08bbbc2cd6c78faa0d822f7c4da3cc AXwbPGqz 157221d44557474eb5c011f6e85d2b0d41b816483d85bc56d2b49b55582a75ed F7pJKgt3 a70750f90599268a714fd82a9a910b763db2ece22567b9c3dfde18726c6a58fc JZuYuOle 63bbed35df199e774e7861d14a5abad3d08f1c2209fc9f896bf97cd5a9a93aae OgbJmSsl 93d57ad55f4e2b269360de5778c0810778981dee6b17d9b13ccba84546ca9af2 SliwhkVP 1ef57dcac260991397252b5da02efa8f1504494baef9bcd7d23bbc7797f4f88c XmYppXhk fda3a83becb1507ae394d918f8d2727f4be3c4b54bf4c83e5bd04b37cb21aea7 bSkjXxrA 6edfd5bb980fee3a9e90219d5d87965d9de3166d6263b40c6ae6b558e378111e fM4Y8XlN 22d08fe3955ebc370f9019c2453409fbc550c98b20b3a9def85c33fa19f4d7b2 k3Je1oZv 5505c750729ed42de1a87f64b68dffe3d476f9c32aa1cc943e76690755c80009 pbXSC543 b874d11a9a1f8877450b87591deb1b1c4ff080dd2896ca6f7e72acbec9f6fe3c uVGzmmri 6219489551ec8831730fc42c70abdd04a16776183c44c62fba833943f3645ff0 yRSmctoR 1cceaf56a71d4e73576bef1e02a51263d5b8df747fa547c2d64c9ec6a5ef99dd 0AEMwSHP 38e8f08ab00599f91771494a3476c676463d7e686b2fd978dca699ba548885ad 3KQWpDpt 4fac90376a7d47bad4240067a8ae5eb6f7f00ad4cf02a00bd2e48540d69d66c4 7GdIoG6L 40d8639fcba4cb7e9ee47c9faea81e76f7d4ec6ddc6de8e2010632e8d8eee546 Ae01ONEX 8b8027a9eaae34d31f95ed70fafa9a7012fd5bb488708ed53a9f1b015ad45daf FA1DL0lH 53583b95b87644073b3f17b3e31846ae68d6f2ea5732f047afeeee452317399a K4w4LSpK 46039a97d82ed9b22c793a7908cf5f904a2252eb53116283d9c24a2ff8019f41 OvH6KubA c8b1bea17cc254c984047f98a6943df741ff2077d427587a6c65c9ddaf42e5d1 SuTmtwHT b4c9eacca6e5f68024521acb56caae4b289d44fd0d310d3d5ac353fa452d5cf7 Y9apvJeb e7c0a3ed6e9db9c3b3fa856ef0ab4bb4e0bf49b90ae8e3420ab600f992bb4d21 bXmTLFnK 48a4314e1d00be7eff63d4a2fbda29fb479e3698652aac68896ef5b9ce9b922c frJix6dy 823db2220a03c17f2b37a15b861f667a457e1e25403d9f2d01976aceb3493e84 l4aPZsIN f787bd5c22e33717f8d90da57e2158032a5df0c43853700ed33b1d94625bbd31 q2mcPs3c 2f71b22c3ac3d84081a92eaf7b59a46a221c3c9899fd252a58fe0699f69ef22d uiBoxr24 656376aa2c2e825866edc436b89e25ac5a21a8f2861702f3478dcb7691077903 ybQ7iIWc 6606c707cf5d145c738ccc7b5f6a404f40499ef2e3d21c81ce8671d701f06428 0QBK0M73 26b4f4f89ad41f7eb348084add3f9bf7a5baea2500ee47ee57aab7b471d2a233 3RwrWxAh 7ce150de6af51bbb4a19baeb501171ee3564784209bddb336ed29b3b12e3574e 7M36N0ZG 1c9666e507482e499e826d19dd2b7814d4f709325109a28f17196c52b16b252a AfqV5hAX f8a39b266528bd3e01ee4ed50d544f49ad819df7275621e6301282c3a293c2ac FaSiQOUR 641bec9bdb770bda0e92ba713ff5fe32b939ba16417286e95214ea6685325a20 KM1rOvYX 25e2d42de09bac8adb698638756c30412028bf2c4428c2a4dae4e95d10056d75 P0pMREh2 b3a745060d75161684bfe1cbf9bf4ab1a37d73af06867158320bd696241a89f2 TAh3haNF f7345e10efa04712bc9c097fbf23822eae117f0b037159d6a625bd12ddcebb43 YJZwL09m 4eff44752ec8f15bc425835870e5bd0981592f50e511ebd8911b9decb64977c7 byaxGEzl c83798cb55b52a3aff7900473a7a7433d0ae4cb42d72ff4173df4acaafdd2e37 fzjMwVlq 8bf76d372095d248547a60658a86e2930827cef380b240c7ca20a19818184ce0 lCWOa2m6 70d1cc2066e5c152412866874e9bac892533a2a89044793aef0969e3b5b791a2 qhTEo0LL d91b84b4b13b04cb11e2fb03a1a1a35be6e2b5ce10b0b34fc36ac4cc3611c397 urhbGMnd c2099aa04d7b40bb64227e4fcda991e2b75a71616deda55f7af562b3fbd5c55e z8QLAIjY 7c18ec256d95af21dbb8aa8b7d72ecaee7debf86892230d9c70c1e122c56d796 0ReLqo7l 497f6e49bb144e85fd61ea03203535e889f931eab00e791f18b5f2ed8039fa4b 3UI1Q3Im c6652fec5c49fbbf08d0dc26172f9f453941b54bb24fbed3e68726458ae13734 7S05biBB 5bcf0bec2d377659b6bc0293e9d3f708dcde86005418edfa830996fde5723a71 AuXnIN8I 185f93b8ae132b36852afede2d0585c0e202330d007e6d3eadee4a1bca494506 GBMBtUcG 8516450cd8a2c1ed26f15fcdd48ce78e5cf4fa7b10620600ab2bdcfbe6dd901c KRxkl4ki 3497fc8b0d4ed0570bb7bab0f435255d5822625bfacdf1c9f006e30ff939ae82 PK3nRKAh 8800bd39fbdb26f6e3bbf0bbf67ac5d5ca8527fe5f3c307cbd508ea054c9a031 TIC1KArZ e5878ad8affaa6cdfeee8c1970fcf6c356d50614eebe103e6ccf148566bc2574 YXeLAbOj 51588d7aef92d2e00a3ba0010bdedbb992984f1d198187d9111ce9733afa9afd c5K8wpvT cd14ad97398128bb3f3624b9d81d49ea514f12092eee0f532e5a8f8d8f1518c0 g33i1myO 31beeb9ce36db82f28a4b2f8702fb41e5a36d5399e5e30d236e782435634c532 lY9YUKSk b2864a8afbfed55f3244572a0940b3888c35d1afba85a19ab4e7f68bbf3e8560 qxtRkCQq 9d8ed791b142d700b470ef60eb19ddbeceae88b1eed9a71a12d7b71214ca79cf v7gF2ZIR 87ceec22eb23cd8dbe6b727807153c614e14710ee1b86ebf839837410db961bb zKjekGtU 243a3167ec727432c5c588487848805f88562a459f0f52d8fe5c809b4e3961f8 0pYtGDyN 2b2077661276508f47c2238573c9afba869b7d7afb01252727d8868475d3d0d8 3XFTF7vi f9684f3b3118811f5c85374b178594831716598e443cc6d477cb169a6a0f05ed 7SXF5dDA 41a5529a5f005c4900ea42581a15a8047969650dda0609b11c5b6586e359c68b Av9IEmci e92c298e69e07ca395f7e7871048be6a3e5a89bab1005454ed2dfca91a6de95e GGpU931s a6c1f6ccf857d0e503fd8b700292ede9e3988bdebb39288aafc49c0903e0f2d9 KaGA7sxA 27f5073db4545e8df8a3724152cee4cada016a613c8f0d4d328b54c42f16dc7b PVAhaXhI dfa5f44af72b450b88589f714b863c56b7e86bace2895f2156010e2ecfa2af69 TJect2dg 569d19491c54d272ffd4298497b5a9770896be6382101109bffd0b73b63eb91f YmQKA23p 87f32602546e3ee981db881b24135755f16c2dbf740c7a0d83bc3f33be3e7fea cAehfago 54b08976ea67826a68df7c16e7db1c3b6478351dd7cfac57a2d6bea4b8146cde gNe3d0tj 2f630fb284aaf5e4f6f52031834b590e71b734c782a82b8d72d88b83c4da2229 lpgH0BeK 7d199d5bd3fbdcc98dcd2ac2aa74b4cd8fd3d20edb85ccb92b130e2c45728125 r0zVMZkQ 22811aaef1d52d627f9d50e0b45cf9ca0f9c3ef119be63074c16ae51110f45ff vJ3qPWEu 9910658855ed1d8dc29473f860a3442df235593e96d80dda3a51776a4b9ee793 ze9Qihpg 8b17e0e68b9508240a82b7606a9ada765d101e3ccca24a401086a1110f10e936 13eD2Klj d63f877474df655f49b1d93806c18483f46b39f589135a7ccd623ed88bef296d 3azP1Vr5 455040106290ee3fe07446351d92a12ad684e0c2e6a06ab4cf822481e95bc5b7 7XpL7kA2 7a909ad52a38bde6c28501a6875df0fc38c8b82c8931559729fd36b361768b51 BVQMsUMN c44f5815aeed931fa385f02b292850b6daf770ad44858c27c55393224c715321 GTH1LeLw 0598c2535e1fc3d03f2c892ff83cd676db8b2dfabd4be6d52f276d4d9bb87f53 Kopd5uAS e178e47068133e1cc218b9606de9afa3abfbcb09374814f6172c7595b2f9e69c PbCHfm8l 1a88389eed7357d18148c477dc3565816b1d7449b2a1281d6b323c310e28a3eb TSGfXer8 dd9c5e8a0d47f17d0c00aa634c66f98eb7b879d12b46825ce6aa71d322c58857 YoOZ5qVn 60d1fb2e4aca2163d76ab396fda4adf23b79269c44dc991fc1c154be85937f2a cAgx0hQ8 623b335271448a2fac7a26d73a01493a44efc893be975b46b8585df36cec5d8f h6P0bHfg 91942183eb850b085e52e516399f7e713d805b8afd679934b6802ebe3f6a0afb lty8luMw 4b829119a9a6232baf41272a35cecde1f6caac339be427fce2789cd308bec36b raIgZC8T 644d583efc14fc807ebefdf33d64fa6b74991484f8dcae2cb26d560e7886610c vMdtOisa 6f8ca03d84f8db4348398d4c57736951c28b2872ef6f918cc4aa03bae67dca3d zfFqIJrW f60eeacf11219c38754b874863e3364d9a90c854f84972ea03e4bb125276b42c 15s8svF3 e33e177eef2c1a5dd0cae42ea2dbecfb66255c16340259186f055ba618b88418 3bwissRA 328cda47e2de47b32cc4f24f3b4f68172fab527d6d1e5face87fc2799dcf9d13 7ZEsnWZx 2e6bc7379a67c4263a0a7f4bd7dbdab97b4ea565d707807cb708084666032e04 BYWVMQ8G ae727780ea058767d44fa1fe53053015b2f3d335eb60baaa424e008b5822f5f7 Giagg0HI e5dc465374749038b2ba5aace9e3081ec6864751bc959d6efc29e535df911f1d Kqq1CiRK e6ddc0e9eb7ee9ba0dc207c451b86430d18539cb521296447e0318fa483b391a PisLwk6C ebb7493a347527408555b4bbb1993eef74f4b2b10eec578d16fb14d4b338f549 TdeDBXMf dc9e3ff877eabdc206dbe9f643dc40743ea6aa18f6140e060478a23d7584686b Yqx2G9d1 933a7b99a8fa56bbff31085ee3d8a460fd0d7c2c1395a14cedfde41560caf15e cBdFMzZa 0ceaebf53132bb9440f2fb92970ba9c3cec286798f7b7fa5076b172e6777f795 hIbQdK4d c344491b0eff8a63926953bb298b2ff433e994b171956b902481d15b8f2aade4 mAZwT81W 6b6ee3b30337f0a6b7520c1658c0ad09f3587081eb3d7724d0051bf5a1672b4e rse22gSC c029b4109b73350dbb76f7f24bb99ac5345cac5342498d1fc87fb5ae6fa40936 vT94qEUU c3366a02b371e9e36ef62ecffffafb99d5e6f380a8ff2c2ada684e3e528c5ec2 ziobqxT9 658581c1008cb4debd37045626d2f4533b926ebffbd47bd6debfa93205c2d918 1BX0cysv fe04a5bb4ebea571df8c206d44f1dfad2634eb0bb112b37afabe104dae8dc270 3llQZxg9 e8010cfb1b4e7823b43e67e66eaf8be3c9f2d72acae9523d35ee9fde81b8a71b 7dnW8EpS 29609f6874e6a0d90f060965236de5316b409e826746abb22a77a27b80875906 Bb0A4ZUF 68f7aa10b412bdc999fe044eda8739a87277c319d08fd329464ae2a7a56aa0f3 Gup9YNYb c18bffa33042d9fa4f602aae7c90d1b30a1bdb5b76e34edbe06c0ee0bbdf8e5a MCFq06DD 7044b1bd6f78ad3a0730a3781613f2c6e410637b24a1b5a5ed7f96d5c96c04b8 PucU9ljB aa1cadfcde7a71b00345bb9d3215deaeec79e00f158fc565cc5984c67c8cd913 Tz1xgD5A d35fd57e1130601d9c29856cd73b450010f6138f7198e5821b6f4acc39f83d89 YrKlF95C af7a53031091f89d38c3571060f1dd55617ee71cd6b1d03223845c9d0f24c860 caVHWehf b96cf609b328b88ab727628fc2b553b517b7f37bc70346977affa67fde226cdd hueXtQsv 8b69b43addce521765ddccfea37187495eeb84f5f5c8116dc6fe27b4211ff6e7 mL2zl8ME 0cd1e34d4adca3f90d94b2334ebde1e0bc2319b33c98b7556d9a38c7d8cd6e8e s1T1hXGi db57334082c1833368719fdda2a899bc8fd1e7a0f3b0d27096ab15e1c4ae4305 vZ9Qc5Cg 1bb3cd55deefe5255c3a9c864853d3ffc7d78fcfa1e80b882636d696129b3015 1QyIAyVK 844e0e8877420c40643077f8eb291bb5df39b0d50481078fec186021435cbdfa 3niXrkT4 ff897449e27281cb7ed245763fa8d73fd8ea0071095d4c250335206c1b43a76e 7e0ugnNi dc5dbe21ff011357c37f684459719d403602b8a4e86b024464d97618486fd583 BjOuTdvt c8072cd658d67fbc73e872f577c87c549fb04a25dd35f24d89c42e545d679a71 Gyn3Qful b1c70e2762730559e1568598f12d7f16c555b06dc86e582c394c52230333bd6c MRW8xKE7 c03b6a2fbe7c87a5fa9e287cb676a9790ed1e4ed3520e6e3f9cede72627d9f10 PyzlgxBl 74260726b5ab74b1c6102bfb1b0e7b29ef9518a7c5d67131bc59598c79bc2703 U6Za1XXb a2dba873a39a63ef8bfd29baed73ecb4133036625f9608cdb62615948a7b2d0c ZS6vNpit 2da7ab6ad6ab342cea8353a75674c2929a4345a80db4f01a93aa15a7db60036c cbKOHVgV 4f6df4fad9fa0304b32dad472c4c4b7a6ebe127ee4289c95d362d3d0daf3a0dd i9nzJ3r6 ac5990afaa7d3e7eab00af758c5c159543b49a50b32567954918870b7b177bb6 miUtTQRm f686a22552f01df89bef392a046ff02123612b26987df9b822f24427d7f26b8e sHWDCVFR 3a50a8f54cd1f0594458e5fbde64a21560c60b953f83ca1d2f82b809678059cf vZXXKL7g 7860e56e6f902c36c647e72a368d766ba83ebe61e197d08e2de42bd5b1aa9bb3 1WzFkIC5 a133863c44b8bc0e541cce1b6a5b4de9cabe1b839c5ef8fdceefc6a0697a35fc 4E42FQrx 7826f92b35f443fa95562c127341f5b3c216123c41a7ecf093e706c349cede6e 7enMn1rk 2eb7bee4a425fc3ebe305322319f53e8d677236c0943e0de5af673b00185b639 CDVB02i6 c6e9af17c752fec2492f39c6db1b9635d934c8175760ef775a954c22ced5ee06 HUGRY61E 71983ce7ae526a69631cff37cb6b19de5020184d48163d17887e9ec147903bce MkEdjeVZ 29f9c223a1d65045492c489d7af46d2b0a5b933094381a1f5ce912772c7f215d QU8jejZq 54d50b90efd6b0f691e34cbb69d49b48aea034381a8604748c12bf4dd19f3e36 W2hZvcID 0498558d284b804a9c2118343d6c4b303d51c91754a4dba104de8f462a62d6c5 ZS7jkTUt 5cf53330aba9cdd47e7e2f1f3108aac315ee3e45fabf7ba05a4f1af322c5af26 cxjAxbcB 0f55abfccfae087cc5ee957cb73d9cb8b8cb087d0f78984bd8d93bf8c15f8da7 iBekBdEx 8e29227a6dbdcf52e800abf249e97ca8ac4907060f55ecec3cd99f5a3b75faad nYMkLfqq c2d13ff8e04507c6276727003de701c035f8961c93cd437ba1eb226db369ddd8 sODASTm7 2a7472392fa03e83a8aaed7382501f298848540fb03e0d56ccd5e7cc9816761a vlXYHLR4 cf8f82e7e63fb26d6bc8680c4d5c7c46bcbdc3bdc12eec5d717c6062da228687 1fPO7Wz1 542a4fb2057febb1fd47b6737a8f6d238bdc8ce45e114a55e7eb4c7135905725 4RWg3C81 69ce6ee1d62f4ad48451cc6f485c6e0b9f2fa88dac92bfe410844cbac3ac988a 7iM83rpT b72e7c53024adf52255240e22f3caaad0d8f6c8f6fc2c09f59bfe6fc147371b8 CLcdCN8f c210b967f2252e448030953a8e49f9addfc7bd4aa2259b06b1e0964be41d714a HUqcWryv 051fee8919ce25c4af4f15d002890a28c1c02a0797ac83e9f4f5982337bb46b5 MoKJFjOi b3524a2fc95f1380a6ffb9fd77957a72107b266f52ce2b2e2542e1e40c3c8d00 QUesl6sJ 073f31f0fb7b393f372a1505e5a5735e3e84a18f708305a7fb4e1cec5fe3491e WJFLBATt 59bbfbdb82686d9f6fce7e47b60955182ba550fc9af841e273dc758f1bf800fc ZTxbKkJG 9365ad6ec42d57a783ac26f8b3b31caf8b8a3103301dbece418824f34d419b52 d5EQVHHc 5f27354f02e5147c4414cf03ccd428fa94019cfbcf3d22beabc3050bd4455bcf ia64o1VA 84220611edf0543f583626df269f0b2c561a096eca96567c0ae519123e9516e8 ngS5ThOq c5833172998cc03ea6e5ccfe6c7ff557f24946b974fca77dba421c6df3732519 sTNxbYIX b4c4693a6461f521d561a07d60861ce611680a92ae810f9266ef0847086cd35d vy3RDHxy ec510cb763998ebe017a5a30c5f89f11eece72a0fa245626a40727ff54d5ab78 1iUcIRwR 881a325685b96bcd76ffbaa48636e97e135199818cd6379a611c42659679f08a 4WsDciyV 9aadbc84cd8e8e5bb5f68ecfbeb873161027f342f15a7239b52b0083cf610d1b 7qVcsxIn ee4cd7abd9904fad8b12c5b00ab8fa68649df76395e375904a61c51812ef8f61 CfZp4f2N 867bb7ab42225150b6bdb7804536729f8ae0354f0f8ae7ef28fb5cab58c44cfd HVhGYkYw 1ea4eb8107331a47f0203e8b21815fe4b511a38c662b4ce96b5c5eb1017f6bbe Mrl2cMHD f7a715df3fb3bb452c4b8af29a21076bcf0b064198a31b38e5daa040db720588 QjfpcKtL 25affd8eb9271463e13f74cdd63003dce0470a63e6a31229ebdafdd4452cb68d WLCnFHkD 81a1304a5559dc90f3060350e3253b8ed7844119dcc637de555f80f8eee9b823 ZXWIGnQR aadda7398725512ac75dc5910a94163fbd29b8a50c4223a9d8c06fa300151265 dGbl67gA dac515417ac42536a6f2cc09432af3a84662ebd30b574248840ed43caef83814 inbE9V4Z 6319463e65d0a0a102b1582544be4f4504b2e40d4e75d0590cbef669084f7adf niAMHayw cbeb404501866928d3e682a583b2611b226976f4ba8b277ffeb229962758ba75 sbuTFkuC c2cfd10715e0618374fd906cb95ef6d6c21266db7aeb9b2213fe94920758d0f8 wH52POYK 4b970ba0b2be8546d30dc4ca2e77baf3b597cf1d573b4b66f681168572372d77 1kzeT7Bq dd81f88c10bea4d2602100f63df1608793ccf7261fd6abb8758a0fa3d62555a1 4YmX8P1z 00b971a42827648a63305ce92a18112b199d1043935f4180b155cf6176044563 7x5Qa3WK 52a1324ac1d035c964dc6e5460ed1ef5b5097977e07483df1bac579c3cfe2ad5 D3FjiyXm 8a21cae12874b809cf04540963572624dc2b30535c302e99499d21f1cc092a1a HkwhoPkp a33699c4c44f57fed1ffbf54b1bc012c01d0855b5bbb3db1ff138e6c44d0c072 Ms5Mvz12 a8fe7f35be118e6611a07b7f1c62317311dde1d00976783546460fe8100acd9a QkF8ZdDf 4c05e355e427358eb7ad0c3c3bb487ddbdd62ce4cf27332f5057cf7e8e44db47 WOHDiZ4q b35084176f9bbf055b5d18a474972b1498d40f87c4e3e94b9e4c21b576146892 a2OU257J 528ba4c7c5c54d43ceff8163fa2d6b57fa4879b4a0c2b94fca9c7e7f1a76cbd9 diVxZXPr 37616b4f4120b3c0b3a2028aab736a32c32a29a45c75a5b4e8c39b3eff48a636 iyKEK5tY f6c4393b9b4b1463b5426919644228acb53886f12a26a171caa4a0c3830bdc67 np9TOAIR c8b7aa1ab6096bc03fcb35e4362d9e160dab549efbe1fe2186b107d24d42c066 scPPxxi7 9a31be04105a29887bab62645b8e1e10690db77a606c74d394af5984ad10cf41 wR9DoLPS 8da597f2a97e225f9944e433b98fb7c41fc1004d6f8fa12245eebb94f7e4d65e 1s9fb01L 16f1f957b34292dbbe235f69bcb2930c5ef9cd97958a1b2ac82c74aa4cf8356a 4lpXJyrZ fba9f49bf22aa7188a155768ab0dfdc1f9b86c47976cd0f7c9003af2e20598f7 87590c24 ae5bc69ebe3d9fb3f478666123383a25471d570e1c1afe4186c1f18d54bc082d DQlu1oVQ 223542642db77dac29ee7fe5753ee5069730c2d51ec7ae7d0b6e9432e496bbf2 Hw4z4pGA c2f8faf5292931f4efb8a941ef4000c49d3ace7be47883794fc9df160552c3aa N36WmSck f73cd546118e8e5dbd289ebc329ed0ca76bea714a02f20de73b70e3066af28b3 RD85xyJi 774cda7254de090a966573d71bb55449c058dd8dcb484c5e023cc2679e8f09de WY59WpIg ce5563451758665b431ecf2a8b4544d1a3359d0cf3b7486f6cb95eb88ca256f4 a5BwxEPT bd121299ac6a5a5a873779f0c04084fb388ae55e4f31313f16b44f4150f13be1 dmc1Epts 8efc2a80f26e4845f49e6d872ef8b7484bd8b685533bdd85e3bb8149ab69c13f j21jebUD c314ddc739e02ab59ec2d01e98c1d9d7fdcd7ce5d99325284f1bdf7b71278a6a o4p7FB5l cc7bc1f65f086424d6091c052f7bfe74d738a2d42c9c770de74ccea4593d78a2 srli5tAs f83a052169e5e576b4a231ebff10638a2f23abe4d8aa12a002f64dcb4feb13e8 whsqK6Xi e2121b753185be8ca8bc6c04b01c708461946deb637632edcef57c3423116c3a 2EHy0UNu 95a809a1598143a50ba620e9387eff3a03fb378be49e9fd2d1209219cdce5cc5 5L6bCEOe 6600f46e718e227c666cdde6c51bce48a659320dae333a7eece342c4dea32a61 8pMqC98d df91b40a5085c2836f69bb1b96a6df3402658c256beea530bc983bac5830f2ca DUx15XmG 62083cbec204552c1d2c8c8c80d8078c49bc50c46e9ab267bb1ff47fc6eb56ce I7ySGmF3 9dfd2a780eeaf3303ae94e7b7d8ec2d787ac0f8fb381637545be0fa8aa8f6ffe NTsSRBdP 04dd8f21134d6b29d037172e279f88315104326e7690e1170a9b546725f7b7bc RGc1b7Dz 40a1d6c6a811809c86053fd74a3605f54fb7d0122c933b85d8d2454096f95ff3 WZcRSCOi dda2048d594389b16999a6718a6553dde4a327ab9eb27bebf12bda8eb95668c9 aAv6C6d8 f42d3abadec263c8f31c91007471357d318b16d74a01f8fe7d20c908fe17a4f1 dzxHhn9S fc850738aa461ec041eaa58d5ac7f649413eea4784340d140a72b51e5b675889 jFn9chPx 70f096e8b04163eff93f91c2b61d1e5cc10b4a3622b90f0ec9ef2eb0e81356dd oNQJCg54 5216c40b2c74beccdab7999a759968f869fd59b1930f280084215396796cc3b2 t1UlIMzc 423f0435ca5567e776ae7e47ca2405861f460f8f3ec348ec12527ac6c7ba9535 wp0CW0xc cf00202ce2298b01b3bca28c8412d4a0c65f0aa62b2676f495123bfbeaea4c03 2HLMOyNv cc6df4c1547d8fb811816b2ad327a9bb253e59d93c62aaeb98939017b6645870 5VDBcjMu 32f8e050dfb066f8078f94faae3cc03ed87fa077ebb67cf775c750f178d6b73e 9E2Ci7r7 b96228d54ad202fa43217b4c2954c8540591505ec3f126305bfc3e785bf45a27 Ds4StPpk 88bc411202ab8c7d4ebc10fac9268101730c9124681673b9988586876bea651e IihMQr2S 7cb005d4842b180bfa8c4daef705dff83c7138895425bab63d67a546e4dd1a9f NULNnaKd c914f8e7f55fe0dae00df7de2f563b94a35bca3d9681007a6bfd4aa5629b3841 RH4yp5nD 79f5d012bffbb470bc99eaf9611eb5ce8c7bd16db0860ede7b13061c67bc1ee9 WjjIvWrX 0a76cda0ad8b2f8708849ea745dc3ffd183f166045d71cb13b077863ed6424fc aCxWJytK adf13189231f1b754b55284fb88ba95ca6ce8b3c35243455f480b26775da5a3f ePMDz1YQ 45afcd76457a40c97f9659a05cd13d0337b0889f42a0ae4070df28d9a1ac153b jGGKUWQ9 a5850db06498c64254d80704ece0d78b2ff48c40654d87d2b51b5214fbff8aef oNq64S7j 7a5937e19c0a1cc4700c75e4cf61bb9750192dfa3a21f87a5efd7144aa560622 t3cJ6Gfp 9111a115589f859c5a6e40b4eb933b09413f03ef3b942826455704ede7929af1 x0ODxbKK 884ddbd229e1d6c068a52593d16482d095d13382bde76ee0d2c48297dcd823cb 2SLddvKm 309f7a2437d77f542d742b4c8433b9760ece3a28e0b06376df6367ddf93055bc 5aE4Zjfg 6398aa8391d0428b8e79ad4e8a1405bb270ac470ebed89c8f265eb0451181307 9LgFu97C fb5a9c8fd90a25c6ba235fe9a628b20d13ce83e4334d03aef3d8493f0b966a9d DxLqi3sV c67d10e1a117c9e19bf6ab0396f9f079440ab9da4472387705afd3dbe94c69b4 Ijh6n9yp 668d9e5e57046173395fb63acdfaa81ff1bf3b95c28ca33e5c775a25ca639e7a NbwekSHV 076208aac8a77aac84099cb194332245b28833d90572a194a34235546daec8b8 RHX0dhSU 143885cf956a038b2431e6a26467cdd1edba02262e34dae76b4f6c8cb15c2841 WpLyF4xC c5d0c0c77f7f587dbe4ff6815e1a9118adcbe883eedd26d211fc2fb4a8490000 aR087rW1 e8ef074570d9f9216d3b4307ad34a6318bfa7e09bdb99690a94e31c86e55842d eqMPkSW0 46d9aec14ab002ed547afd904c0ee870e89e80d0b75c5fde80a12975f86c3bae jQrw8bQO 2c15b651913537f4216378ff7c4a1918801106afb9c5b21dc165935b3866bb0e oX1HkX8C 87b3755499a7f9ec32b58f824497e0430b56caf1fc9a5277e040931d295bbe44 tYVdC1Z0 c3c23fd9f25161a0035e5da701217a503c07c2e319d4ad142582b7f2282c2d35 x0THPKVQ 95378cce58d7294397ea548531b741c930541ec263b1bd493b1a614d2bc5aca5 2y6eiPnY 42973faba65fb71a21f0be92df8ce8e1a125d4cb63040ff6f3c2940a33c91391 5guDO1cS dfd1c4c8ebb2a7182215628189d6d9e2f94442851587c67449bbbb35e59a6fe2 9hbn5BeA 403f37e76707172160f04ed6a9504577ae21a64566c6726513f34d50f822e691 DyULYdws c353941de39d0f499f8209894b87271c686f9ed24777d6e9b8597e2fcecca2c7 Iqbw9pQz 8e162fd2690eec9cf078f73e3d5b69dd5cadacc1445cda4200c58954ef50657d O5vpRSXk 95637288a9ab3da1ce9b8cfa0d94113130fc3a9aa6b4ad98997f564bc1d86850 S7zBjDOu 18ebedda8b2cb23c4654e46952279b1baa55044bcef4826605856c060d77ce89 WruPiHQS 4fd79cb8de09d7442630f056b2f53c96eb69697979e5c1da0b634c5fc56e4ae2 b9BDTW02 90df23c896109b9efe024c5db6a6e0d86baea53ac94c9b0dedbfbafa38b8249d eyrV73UR a0733685ed7b4ac960c93b436bfe0ed8d7951bc4e7c36e88bce9e11c440ff88e jS1LPICH 007a2a95c38ecbc60d4397ea23e78d80f66df0fdc1ab6da3bc40b946a220ec72 opYpNJ2C 37519abebb056c68fd80d906dd14156640b71699b908c76bdabb711daf646230 tqcK3Nrs d412711f9b1b3a52603441c833d6624e27f51a9b80e6cfc6379ab257dfb9a08d xPX9SADx c422793ffec6bb8b5602ec5a7ae05abd8761fd9479903ab863379607920ed104 2ypuxhr6 507bd8c2cf6263f43e12316ba1540541f4457a061c667397a24ab47447e6851e 5oxXh5Er e0d7b24c4d84891c1fc8f3968911e5932e80b55d709b221d480bd176ac7fbd98 9twFwHiq 4e6d2443841f31671acbb9e5b7c35a0c02a5075b9b325d79179b7e2b6b79c2e3 EI5Rua6h a4728e5d090507ee411759bbcf3073d7a305be0a4d856d1c07428b48bba06a9f JHLXVG98 454a72f9354c59571244685ba6835d3f752b58f7cc4372278107e88b39225da9 O8mpr58x 6cec547c3b92dd27fb74c0c27bd61e2c170923cf0c01a41a5cee8c473a11db62 SOpZbONn 52c9b94fc51de375d02bba6897354a7e97bd7573cb2e022067ce807ee42d214c XKypMMiJ ba7daabeff21c6465e8214b039ed49821bd8b4bf28aee5f107a98f0ddec7174c bJ8uPssG f23046a5e9f1964a9bb81d017bad80b827aab48527c3e7c7a0ad1bb3b6994177 fANUtdte c3aa5b21307d698126130bcef215ac9829a506ab7f9b1361da1e8c245eb005c4 jg2ztGlp 289248d1bb64efec318ef40fb10633a65c10af562bd2d25c84220051a15af050 p0yUpsYe ce222b6b65e012e7a0209bc9951690597779b042d556a6f2015b1c21b9901a09 uF2fheP1 dd7df9683d05b5eed8c280eedbafd2c2fa01868c649eb94cc79d753e0e254499 xa0pHpo3 585f5acca06e7c1d47cc3871654206fa70adeecc39cd8c584f77d52f8a4d3419 34asQJAj ddcfd164213fa595f38b103d0436c39ce383bad8303e0609d5d328356c7cde7a 5uH65mOX fb47580434abe1c8177cd757f32d08d74c3445776c8f487db0a987828026b92c AHwWjpbL 4c29d7fe7d4c1498418c49bb9c20df5eae2b6067f65b2eebf7ffea74eb81572b EtkxnTjE 74d7f30eb65b30657c517e1b4d70cf6e4d47103c9da773aa539bda1ea712a956 JKlfmBiL a8a95903fa5337abcac799769cee16ec354661351f89f7ad9b1dbb81a49dd032 OFSlnCKK 2880efaf431ff729cf2b7f8cc3d3e8934893dd336996081eea36a2260d424cc6 SXfbixMa 750b63262b65068258396891e77f7afa851394bde7a9c8c3098cbf8ae1ddb5e5 XZocCx02 77fd76cc340322ae8a41d8f87d5951b0c60949bf7a1d51d901e90f27e5141b83 bJquvh3E 5c9d5df75a524bdb064fc6c49d7d9abde624b1994dfc896a3a54e4d9e8ab1076 fFbQAlD7 70086a1d65272fcd55e417986c4684f9f86943de88ad93f5b7c6d69ca825a500 jpTG7wle dcc077e5d75839805b8cf90bcd85e0213e2a418d551f2229a99c75365397b32c p8McbjLN 6b22bc5d41ab8d43ee09c94756001d16aef5f9b04e51108543e35b80c79b1690 uFoxxMAD b2446a99ef12511def4327e9504d527cc7de79dc4eb84bab5b6397a5e8c10513 y2TwAQsl bbce48808c1a06ba47e9434e289b3b3e7e7cc8219d6853417c4bf135b42458d1 3FS3M7tr cc3c691e0a2a275d32a8053c12224af4e3fb999db15a72f1cc5325098a07deb8 6GarVCiO 5e44db07e934c2dd969458e30315968206b045c1fdc3547d34b35263f229bbb3 ANd9SGuS a0284a0b9ded5bccbf028caaf2fe3dde70cb48592235b7ded9abd95f11e3a48a EwczAgxU 5e283b6d019cccf1dce1e6e2e7019d02337f8835f430dfa8b7c48905f32af0cc JPzzPv2R d69c85eab19d904cd5b87221c1ba1603a5ea3e17fbc76cb1b7e6ad31b7c438fe OHWOluJj eb5d4024a654c9118dec859745745a864f544737dc359535b69928b35c6555ac SibjLvWM 2a5f932d98aac9a4ed47b34c52225286b793e5aaf4d722448e4bcdae5d07fe72 Xkrt40pJ 2fd9ca2343a1cb251e1cf91a173be3b49ed959f4f29a84b9afe9bf8726c9a4c0 bOxuzUXf f73af464819c557059ab54ff29f6829dd8192668135cb7a669ce151d64cc60b5 fG3pxqYw 55813904319e7c9140ff0a35e5dbf99ea63b4613a95c02adf1108bef200a25e8 k1uy8MT2 43b0bb9e34a853f07dc21a7a3ffb954c249acbe7ea5649bd773ef2c7b9051e7d pGy7EVYy 4eaf000af731b44485e16646f9ae132778d1bc99997a6104fddf44af765d6bf1 uHK0HPxg 00ae7e498b319b92bc56ae2562fa2c8535062260c77c3cf66f9fa0d6ae3c662e yCXEcn1e ``` ::: 用notepad/vscode/任何文本編輯器 按下`ctrl+f`查詢題目所給的校驗碼 ![image](https://hackmd.io/_uploads/ByNRYmNXZx.png) 會是`87590c24`這個檔案 `cd ..`回到上層資料夾 然後執行 `./decrypt.sh files/87590c24` ![image](https://hackmd.io/_uploads/SJY_YQNXbg.png) ``` picoCTF{trust_but_verify_87590c24} ``` ![image](https://hackmd.io/_uploads/S1F9FX4mWl.png) ## Day 14 2025/12/23-picoCTF strings it ![image](https://hackmd.io/_uploads/Hkcwce_QZg.png) 首先打開`strings` ![image](https://hackmd.io/_uploads/B1l0qg_7Wx.png) `ctrl+f`搜尋`picoCTF` ![image](https://hackmd.io/_uploads/ryHWjgd7Zl.png) ``` picoCTF{5tRIng5_1T_FB7D7Bb6} ``` ![image](https://hackmd.io/_uploads/HyqGiluXWl.png) ## Day 15 2025/12/24-picoCTF fixme2.py ![image](https://hackmd.io/_uploads/SJ-cYLFmZl.png) `fixme2.py`: ```python import random def str_xor(secret, key): #extend key to secret length new_key = key i = 0 while len(new_key) < len(secret): new_key = new_key + key[i] i = (i + 1) % len(key) return "".join([chr(ord(secret_c) ^ ord(new_key_c)) for (secret_c,new_key_c) in zip(secret,new_key)]) flag_enc = chr(0x15) + chr(0x07) + chr(0x08) + chr(0x06) + chr(0x27) + chr(0x21) + chr(0x23) + chr(0x15) + chr(0x58) + chr(0x18) + chr(0x11) + chr(0x41) + chr(0x09) + chr(0x5f) + chr(0x1f) + chr(0x10) + chr(0x3b) + chr(0x1b) + chr(0x55) + chr(0x1a) + chr(0x34) + chr(0x5d) + chr(0x51) + chr(0x40) + chr(0x54) + chr(0x09) + chr(0x05) + chr(0x04) + chr(0x57) + chr(0x1b) + chr(0x11) + chr(0x31) + chr(0x0e) + chr(0x51) + chr(0x5c) + chr(0x44) + chr(0x51) + chr(0x0a) + chr(0x5b) + chr(0x5a) + chr(0x19) flag = str_xor(flag_enc, 'enkidu') # Check that flag is not empty if flag = "": print('String XOR encountered a problem, quitting.') else: print('That is correct! Here\'s your flag: ' + flag) ``` 打開之後vscode就先報了錯 ![image](https://hackmd.io/_uploads/rJZjt8YXZe.png) 運行之後的報錯提示 ![image](https://hackmd.io/_uploads/HJGB98tmZl.png) 結果是少一個=所造成的問題 我們把它加上 ![image](https://hackmd.io/_uploads/rynwqUFmbe.png) 耶 ![image](https://hackmd.io/_uploads/H1FO9IFmWx.png) ``` picoCTF{3qu4l1ty_n0t_4551gnm3nt_e8814d03} ``` ![image](https://hackmd.io/_uploads/HkTt5UYX-l.png) ### 啊?為什麼 在程式語言裡,=是用來指定給變數一個值的 像是 ```python a=100 ``` 而這個程式碼是要判斷flag是不是"" 而判斷會使用== ```python if flag == "": ``` 所以把原本是指定意義的=再加上去一個就可以正常判斷了! 基本上所有程式都是這樣判斷的 ## Day 16 2025/12/25-picoCTF Unminify btw聖誕節快樂 ![image](https://hackmd.io/_uploads/Bypj9o5X-g.png) 網站打開來長這樣 ![image](https://hackmd.io/_uploads/Hyzp9jcQZg.png) 右鍵-檢視網頁原始碼 ![image](https://hackmd.io/_uploads/S1RR5iqXWx.png) 然後`CTRL+F`搜尋`picoCTF` 會在第十五項看到Flag ![image](https://hackmd.io/_uploads/BkGmsjcQZl.png) ``` picoCTF{pr3tty_c0d3_622b2c88} ``` ![image](https://hackmd.io/_uploads/HkuNsjqXbx.png) ## Day 17 2025/12/26-picoCTF First Find ![image](https://hackmd.io/_uploads/HJge5gn7We.png) `files.zip`:![image](https://hackmd.io/_uploads/r1bz9g3Xbg.png) ![image](https://hackmd.io/_uploads/BJWH9gnQbe.png) 直接搜尋`uber-secret.txt` ![image](https://hackmd.io/_uploads/H138ce2m-e.png) ``` picoCTF{f1nd_15_f457_ab443fd1} ``` ![image](https://hackmd.io/_uploads/BJX_qln7Wx.png) > 這麼簡單還要出?? ## Day 18 2025/12/27-picoCTF Includes ![image](https://hackmd.io/_uploads/rkHe6E6mWl.png) 會到這個網頁 ![image](https://hackmd.io/_uploads/H1bmpEpQbx.png) 右鍵-檢查-原始碼 ![image](https://hackmd.io/_uploads/S1ok0EaQ-g.png) `script.js`和`style.css`就能發現flag的頭和尾 ![image](https://hackmd.io/_uploads/SJeBC4pQWe.png) ![image](https://hackmd.io/_uploads/HJaHA4aQ-l.png) 並起來 ``` picoCTF{1nclu51v17y_1of2_f7w_2of2_b8f4b022} ``` ![image](https://hackmd.io/_uploads/ByYjxS6XZx.png) ## Day 19 2025/12/28-picoCTF HashingJobApp ![image](https://hackmd.io/_uploads/ByfnOt0XZg.png) 先連線到他給的伺服器`nc xxx.picoctf.net (port)` ![image](https://hackmd.io/_uploads/HJQlKt07Zl.png) 然後使用[站長工具](https://tool.chinaz.com/tools/md5.aspx)來加密 結果要看32位[小] ![image](https://hackmd.io/_uploads/H1xIYKRmWe.png) 然後像我一樣把所有的題目加密完 ![image](https://hackmd.io/_uploads/rJ5wYtR7be.png) 就會有flag了 ![image](https://hackmd.io/_uploads/Syi7iYRQ-e.png) ``` picoCTF{4ppl1c4710n_r3c31v3d_bf2ceb02} ``` ![image](https://hackmd.io/_uploads/r1XFYtCm-l.png) ## Day 20 2025/12/29-picoCTF Collaborative Development ![image](https://hackmd.io/_uploads/HyuYepJNWx.png) 先給電腦裝一下[git](https://git-scm.com/install/windows) ![image](https://hackmd.io/_uploads/B1hQ-61V-x.png) ![image](https://hackmd.io/_uploads/SJQHZ61V-l.png) 讓git添加到系統pach 一路next 然後等它裝完後在檔案的下面跑cmd ![image](https://hackmd.io/_uploads/SkEqZa1Vbg.png) `git branch -a ` ![image](https://hackmd.io/_uploads/SkxnWakNWe.png) 然後使用 `git diff feature/part-1..feature/part-2 && git diff feature/part-2..feature/part-3` 這裡參考了[這篇文章](https://medium.com/@vgqxjb/collaborative-development-9c1875e7dce2) ![image](https://hackmd.io/_uploads/rkSUMayN-g.png) ![image](https://hackmd.io/_uploads/r15Ifp1EZe.png) ``` picoCTF{t3@mw0rk_m@k3s_th3_dr3@m_w0rk_7ae8dd33} ``` ![image](https://hackmd.io/_uploads/B151QayNZx.png) > 文章要換地方了 hackmd->zackzheng's blog # 之後放在這 https://zack.siiway.org/posts/%E4%B8%80%E5%A4%A9%E4%B8%80ctf-1/