Huli

Results 220 issues of Huli

第一次參加 GoogleCTF,這次解了一題 web(HORKOS),然後另外一題偏接近但沒解出來(POSTVIEWER),依照慣例簡單寫一下每一題的 web 的解法,以解出人數來排序。 附上關鍵字如下: 1. log4j 2. ReDoS 3. hop by hop 4. JavaScript magic function(?) 5. async/await and Promise 6. race condition ### LOG4J(105 solves) 這題迅速就被隊友解掉了,沒什麼仔細看。 簡單來說大概就是有個...

Security

在[上集](/2022/09/29/css-injection-1)裡面,我們知道了基本的 CSS 偷資料原理,並且以 HackMD 作為實際案例示範,成功偷到了 CSRF token,而這篇則是要深入去看 CSS injection 的一些細節,解決以下問題: 1. HackMD 因為可以即時同步內容,所以不需要重新整理就可以載入新的 style,那其他網站呢?該怎麼偷到第二個以後的字元? 2. 一次只能偷一個字元的話,是不是要偷很久呢?這在實際上可行嗎? 3. 有沒有辦法偷到屬性以外的東西?例如說頁面上的文字內容,或甚至是 JavaScript 的程式碼? 4. 針對這個攻擊手法的防禦方式有哪些? ## 偷到所有字元 在上集裡面我們有提到,我們想偷的資料有可能只要重新整理以後就會改變(如 CSRF token),所以我們必須在不重新整理的狀況之下載入新的 style。 上一篇裡面之所以做得到,是因為 HackMD...

Front-End
Security

在講到針對網頁前端的攻擊時,你我的心中浮現的八成會是 XSS,但如果你沒辦法在網頁上執行 JavaScript,有沒有其他的攻擊手法呢?例如說,假設可以插入 style 標籤,你能夠做些什麼? 在 2018 年的時候,我有寫過一篇 [CSS keylogger:攻擊與防禦](https://blog.huli.tw/2018/03/12/css-keylogger/),那時剛好在 Hacker News 上面看到相關的討論,於是就花了點時間研究了一下。 而 4 年後的現在,我從資安的角度重新認識了這個攻擊手法,因此打算寫一兩篇文章來好好講解 CSS injection。 這篇的文章內容包含: 1. 什麼是 CSS injection? 2. CSS 偷資料的原理 3. 如何偷 hidden input...

Front-End
Security

在我之前的文章:[從 cdnjs 的漏洞來看前端的供應鏈攻擊與防禦](https://blog.huli.tw/2021/08/22/cdnjs-and-supply-chain-attack/)裡面有提過可以藉由 cdnjs 來繞過 CSP,而有其中一種繞過手法必須搭配 prototype.js 才能成功。 在理解原理之後,我開始好奇在 cdnjs 上面是否還有其他 library 可以做到類似的事情,因此就開始著手研究。 這篇會從 cdnjs 的 CSP 繞過開始講,講到為什麼需要 prototype.js,接著再提到我怎麼從 cdnjs 上找到它的替代品。 ## cdnjs + AngularJS CSP bypass 在 CSP 裡面放上...

Security

其實沒有參加這一次的 CTF,但有稍微看到兩題跟 content type 有關的題目覺得有趣,來記一下解法。 ## modernism(21 solves) 程式碼超簡單: ``` py from flask import Flask, Response, request app = Flask(__name__) @app.route('/') def index(): prefix = bytes.fromhex(request.args.get("p", default="", type=str)) flag =...

Security

Update: 經過朋友指出文章中缺漏的地方,於 2/26 早上新增一段講 SameSite Cookie 的段落。感謝 shik 的提點。 ## 前言 最近剛好碰到一些 CSRF 的案例,趁著這次機會好好研究了一下。深入研究之後才發現這個攻擊其實滿可怕的,因為很容易忽略它。但幸好現在有些 Framework 都有內建防禦 CSRF 的功能,可以很簡單的開啟。 但儘管如此,我認為還是有必要瞭解一下 CSRF 到底在幹嘛,是透過怎樣的手段攻擊,以及該如何防禦。就讓我們先來簡單的介紹一下它吧! CSRF 是一種 Web 上的攻擊手法,全稱是 Cross Site Request Forgery,跨站請求偽造。不要跟 XSS...

Front-End

這個假日有 justCTF 跟全部都是 web 的 WeCTF,我本來想說兩個都打,一邊卡住的話可以跳到另一邊,殊不知兩邊都卡住XD 這次 justCTF 滿多不錯的 web 題,依照慣例寫一下筆記並且記一下關鍵字: 1. zip/tar symlink 2. Velocity SSTI 3. Golang path 4. git 原理 5. scp 原理 6. xsleak, STTF +...

Security

今年的 DEF CON CTF 資格賽跟去年差不多,都是 binary 相關的題目居多,而且今年的需要一堆 reverse 知識,像我這種基本上不會 reverse 的只能在一旁發呆外加幫隊友加油。 不過今年唯一的 web 題(叫做 Discoteq)我倒是覺得滿有趣的,難度不高但滿考驗 debug 跟觀察力以及迅速上手一個新東西的能力,我覺得考的是基本功,而不是對某個語言或是框架的知識,這點還滿棒的。 因為今年就只有這一題好寫,換個方式寫寫看好了,我來照著時間軸寫一下當時解題的想法,時間後面代表從題目釋出過了多久。 ### 17:40 題目釋出 ### 17:44(4m) 開始看題 開始號招隊友一起來看題目,我自己也開始觀察了一下。 這題 Discoteq 基本上就是一個聊天的網站,註冊登入之後可以發送訊息,在接收跟發送訊息的部分都是透過 websocket 來溝通。...

Security

這陣子在 [Front-End Developers Taiwan](https://www.facebook.com/groups/f2e.tw) 臉書社團上有一系列關於 Tailwind CSS 的討論,起因是另一篇已經刪除的貼文,那篇貼文我有看過,因為怕原文內容跟記憶內容有落差,因此這邊就不講我記憶中的原文大概是在寫什麼了,畢竟這也不是這篇所關注的重點。 總之呢,那篇貼文引起了臉書上前端社團的熱烈討論,在短短兩三天內迅速多出許多討論相關技術的文章。 而有許多人在討論的議題,其實比起 Tailwind CSS 這個工具,更多的是在討論 Atomic CSS 這個概念本身。 Atomic CSS 這個詞由 Thierry Koblentz 所提出,最早出自於這篇 2013 年發表的必讀的經典:[Challenging CSS Best Practices](https://www.smashingmagazine.com/2013/10/challenging-css-best-practices-atomic-approach/)。 那什麼是 Atomic CSS?這邊直接取用...

Front-End

原本想要寫得詳細一點再 po 的,但我發現如果要這樣的話,可能要過很久才會 po,所以還是趕快先寫一篇簡短版的。 這次寫的是以下四題,都是 web: 1. Fancy Notes 2. Dumb Forum 3. LESN 4. ptMD 先記幾個 keyword 以後比較容易找: 1. 長度擴充攻擊(Length extension attack) 2. SSTI 3. mutation XSS `` 4....

Security