上集裡面,我們知道了基本的 CSS 偷資料原理,並且以 HackMD 作為實際案例示範,成功偷到了 CSRF token,而這篇則是要深入去看 CSS injection 的一些細節,解決以下問題:

  1. HackMD 因為可以即時同步內容,所以不需要重新整理就可以載入新的 style,那其他網站呢?該怎麼偷到第二個以後的字元?
  2. 一次只能偷一個字元的話,是不是要偷很久呢?這在實際上可行嗎?
  3. 有沒有辦法偷到屬性以外的東西?例如說頁面上的文字內容,或甚至是 JavaScript 的程式碼?
  4. 針對這個攻擊手法的防禦方式有哪些?

閱讀更多

在講到針對網頁前端的攻擊時,你我的心中浮現的八成會是 XSS,但如果你沒辦法在網頁上執行 JavaScript,有沒有其他的攻擊手法呢?例如說,假設可以插入 style 標籤,你能夠做些什麼?

在 2018 年的時候,我有寫過一篇 CSS keylogger:攻擊與防禦,那時剛好在 Hacker News 上面看到相關的討論,於是就花了點時間研究了一下。

而 4 年後的現在,我從資安的角度重新認識了這個攻擊手法,因此打算寫一兩篇文章來好好講解 CSS injection。

這篇的文章內容包含:

  1. 什麼是 CSS injection?
  2. CSS 偷資料的原理
  3. 如何偷 hidden input 的資料
  4. 如何偷 meta 的資料
  5. 承上,並以 HackMD 為例

閱讀更多

在我之前的文章:從 cdnjs 的漏洞來看前端的供應鏈攻擊與防禦裡面有提過可以藉由 cdnjs 來繞過 CSP,而有其中一種繞過手法必須搭配 prototype.js 才能成功。

在理解原理之後,我開始好奇在 cdnjs 上面是否還有其他 library 可以做到類似的事情,因此就開始著手研究。

這篇會從 cdnjs 的 CSP 繞過開始講,講到為什麼需要 prototype.js,接著再提到我怎麼從 cdnjs 上找到它的替代品。

閱讀更多

第一次參加 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

閱讀更多

這個假日有 justCTF 跟全部都是 web 的 WeCTF,我本來想說兩個都打,一邊卡住的話可以跳到另一邊,殊不知兩邊都卡住XD

這次 justCTF 滿多不錯的 web 題,依照慣例寫一下筆記並且記一下關鍵字:

  1. zip/tar symlink
  2. Velocity SSTI
  3. Golang path
  4. git 原理
  5. scp 原理
  6. xsleak, STTF + :target selector

底下的順序以解開的數量排序,越前面越多人解開。

閱讀更多

今年的 DEF CON CTF 資格賽跟去年差不多,都是 binary 相關的題目居多,而且今年的需要一堆 reverse 知識,像我這種基本上不會 reverse 的只能在一旁發呆外加幫隊友加油。

不過今年唯一的 web 題(叫做 Discoteq)我倒是覺得滿有趣的,難度不高但滿考驗 debug 跟觀察力以及迅速上手一個新東西的能力,我覺得考的是基本功,而不是對某個語言或是框架的知識,這點還滿棒的。

因為今年就只有這一題好寫,換個方式寫寫看好了,我來照著時間軸寫一下當時解題的想法,時間後面代表從題目釋出過了多久。

閱讀更多

這陣子在 Front-End Developers Taiwan 臉書社團上有一系列關於 Tailwind CSS 的討論,起因是另一篇已經刪除的貼文,那篇貼文我有看過,因為怕原文內容跟記憶內容有落差,因此這邊就不講我記憶中的原文大概是在寫什麼了,畢竟這也不是這篇所關注的重點。

總之呢,那篇貼文引起了臉書上前端社團的熱烈討論,在短短兩三天內迅速多出許多討論相關技術的文章。

而有許多人在討論的議題,其實比起 Tailwind CSS 這個工具,更多的是在討論 Atomic CSS 這個概念本身。

閱讀更多

原本想要寫得詳細一點再 po 的,但我發現如果要這樣的話,可能要過很久才會 po,所以還是趕快先寫一篇簡短版的。

這次寫的是以下四題,都是 web:

  1. Fancy Notes
  2. Dumb Forum
  3. LESN
  4. ptMD

先記幾個 keyword 以後比較容易找:

  1. 長度擴充攻擊(Length extension attack)
  2. SSTI
  3. mutation XSS <svg><style>
  4. <meta name="referrer" content="unsafe-url" />
  5. <meta http-equiv="refresh" content="3;url">
  6. Puppeteer 的 click 行為是抓取元素位置再點擊座標

閱讀更多

這次的比賽我第一天有事沒辦法參加,第二天參與時發現 web 的題目被隊友解的差不多了,所以有滿多題目沒去看的。

因為我滿愛 JavaScript 跟 XS-leak,所以這篇只會記兩題我最有興趣的:

  1. web/Sustenance
  2. misc/CaaSio PSE

(之後有機會再補另一題 DOMPurify + marked bypass 的 XSS)

閱讀更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×