Hi there 👋

Welcome to my blog.

在 Debian 安裝 Neovim 並設定 AstroNvim 自訂設定檔

安裝 Neovim 請先確保你的 Terminal 有 Nerd Fonts sudo apt-get update sudo apt-get -y install fuse git python3-venv unzip ripgrep fzf clangd # install nvm https://github.com/nvm-sh/nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash # install npm nvm install node npm i -g eslint # install cargo curl https://sh.rustup.rs -sSf | sh # install nvim wget https://github.com/neovim/neovim/releases/download/stable/nvim.appimage chmod u+x nvim.appimage && sudo mv ./nvim.appimage /usr/bin/nvim 設定 AstroNvim 安裝 AstroNvim git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/....

July 8, 2023 · 1 min · Vincent55

CDDC CTF 2023 紀錄

前言 這篇紀錄參加 CDDC CTF 2023 初賽及新加坡決賽,以及過程中發生的趣事。 感謝 Zeze 的邀約,以及企業 TeamT5 與 ST Engineering 的贊助。 某天 Zeze 問我要不要來打 CDDC,看了一下發現決賽可以去新加坡耶,當然好,後續知道另外兩位隊友是 nella17 跟 ETT。 初賽 這次初賽是 Jeopardy 的形式共 36 小時的競賽,題目系統是使用的是主辦方自行開發的系統,題目上除了有題 QRcode restore 要猜 flag 跟某題 Reverse 外,都相對正常。 競賽開始,首先我去看 Web 的題目,題目網址的 https 憑證怪怪的,都無法用瀏覽器正常存取到,然後又有設 HSTS,但最後直接用 ip 去存取 http 就解決了,解題的過程中看到了一題有關 CVE-2023-29017 的 web 題,跑了 poc 下去後就有 flag 了(?,搶到一題 web 的首殺><。 另外有一題 db 用 Edgedb 的 web 題,卡了好久,把各種文檔跟原碼看過一遍了還是沒看到突破口,最後發現可以開 Hint 後,是 CVE-2023-24329 的題目(主辦方好喜歡出 CVE 的題),大概 10 分鐘左右就把這題收掉了 w,浪費好多時間 qq...

June 25, 2023 · 3 min · Vincent55

AIS3 pre-exam 2023 Writeup

前言 這次打了個第 8 名,但這次暑假有事情了,不能去 qq。 Web Login Panel app.post("/login", recaptcha.middleware.verify, (req, res) => { const { username, password } = req.body; db.get( `SELECT * FROM Users WHERE username = '${username}' AND password = '${password}'`, async (err, row) => { if (err) return res.redirect(`https://www.youtube.com/watch?v=dQw4w9WgXcQ`); if (!row) return res.redirect(`/login?msg=invalid_credentials`); if (row.username !== username) { // special case return res.redirect(`https://www.youtube.com/watch?v=E6jbBLrxY1U`); } if (req.recaptcha.error) { console.log(req.recaptcha.error); return res.redirect(`/login?msg=invalid_captcha`); } req.session.username = username; return res....

June 24, 2023 · 4 min · Vincent55

透過 Python 達成一般文書動作(word excel pdf printer)

前言 因為有案子的需求要使用自動化的文書動作,因此這篇 blog 來記錄一下我用了哪些工具來達到這些功能,內容蠻雜的。 Pdf 判斷 pdf 是否可被開啟(是否沒損毀) https://pypi.org/project/PyPDF2/ from PyPDF2 import PdfWriter, PdfReader def check_pdf_vaild(self): try: PdfReader(self.filename) return True except: return False pdf 轉 png https://pypi.org/project/pdf2image/ 此套件為 poppler 的封裝,請安裝 poppler。 from pdf2image import convert_from_path images = convert_from_path(f'{file_path}.pdf') images[0].save(f"{file_path}.png") 此 images 為 pillow 物件,因此如果同時要剪裁,可以有以下操作 from pdf2image import convert_from_path images = convert_from_path(f'{file_path}.pdf') images[0].crop((300, 50, images[0].size[0]/2, images[0].size[1]/2.55)).save(f"{file_path}.png") pdf 剪裁 https://pypi.org/project/PyPDF2/ from PyPDF2 import PdfWriter, PdfReader reader = PdfReader(f'{file_path}.pdf') writer = PdfWriter() page = reader....

July 20, 2022 · 2 min · Vincent55

如何在 Windows 設定開機自動啟動(含 Powershell 腳本、不須設定服務)

前言 Linux 的開機自動啟動是非常常見且易用的,只需要將服務設定 systemd 之後設定 enable 即可。相對比較少人在用的是 Windows 的開機自動啟動,但其實 Windows 的開機自動啟動也是屬於容易設定的。 正文 開啟 Startup 資料夾 按下 win+R 並輸入 shell:startup 則會開啟 Startup 資料夾。 設定開機自動啟動 將想要開機自動啟動的應用程式的 捷徑 放入 Startup 資料夾中。 ⚠️注意,請確保你放的是捷徑⚠️ 檢查是否成功設定 開啟工作管理員後,切到開機分頁,如果剛才放入的應用程式捷徑出現在這,並且狀態為已啟用,代表已經設定完成。 同場加映(如何設定開機自動啟動 Powershell 腳本) 安全政策 微軟為了控制 Powershell 載入設定檔和執行腳本時所使用的條件,限制了 powershell 腳本,也就是 *.ps1 的執行場景,詳細可看官方文件。 例如說我有一隻含以下內容的 powershell 腳本。 owo.ps1 echo "owo"; 之後我在 cmd 嘗試執行它,會發現有以下錯誤。 並且,各位可以嘗試直接將該腳本的捷徑放至上述的 Startup 資料夾,會發現開機後並不會成功執行,而是會將該腳本以 notepad 開啟(這是因為 *.ps1 預設為 “notepad 開啟”)。 這時,或許你會想到用一個 *.bat 腳本來跑 *.ps1 但這就會遇到上述安全政策的問題。 設定 Powershell 執行 policies 使用以下腳本即可成功在 *....

June 27, 2022 · 1 min · Vincent55