Tag Archives: xss

利用上傳的檔案跳過 CSP 限制

用 CSP 可以做到一些簡單的保護機制,但在設計不良的情況下還是有辦法繞過。 這次是上傳合法的 JPEG 檔案,但當作 javascript 檔案繞過去:「Bypassing CSP using polyglot JPEGs」。 開頭的「FF D8 FF E0」可以在「List of file signatures」這邊看到是「JPEG raw or in the JFIF or Exif file format」,而這四個字元在 javascript 不會出問題。接下來的「2F 2A」表示 JPEG header 長度,剛好就是「/*」,把後面的東西給包起來,後面再用類似的方式一直組合就打穿了... 這種攻擊要跳過的是「用 CSP 的 self 限制不能引用外部網站 javascript」的限制,但還是有些前提: … Continue reading

Posted in Computer, Murmuring, Network, Security, WWW | Tagged , , , , , , , , , , | 1 Comment

Flash 的 crossdomain.xml 架構問題

在「"Lax" Crossdomain Policy Puts Yahoo Mail At Risk」這篇裡面看到不安全的 Flash 造成的問題:「Seizing Control of Yahoo! Mail Cross-Origin... Again」。 找有問題的 swf 檔案 (hosting 在 crossdomain.xml 允許的網段下),然後利用 injection 或是根本就沒檢查權限來打趴... 把 swf 當跳板用就是了 :p 文章後面那個 Disclosure Timeline 看起來頗心酸 :o

Posted in Computer, Network | Tagged , , , , , , , | Leave a comment

XSScrapy:自動化 XSS 攻擊

也是不知道在哪邊看到的,反正容易安裝就裝起來玩玩看:「XSScrapy: fast, thorough XSS vulnerability spider」。XSScrapy 是一套自動化攻擊軟體,是目前這類測試軟體裡用起來最簡單的版本。 直接 clone 下來就可以執行了,如果有遇到 dependency 的問題,可以透過 pip 安裝: pip install -r requirements.txt 執行的方法就這樣: ./xsscrapy.py -u http://example.com 上面這個方法是在訪客模式下慢慢跑,你也可以給他一組帳號密碼讓他填 form,他會試著登入後不斷打下去: ./xsscrapy.py -u http://example.com/login_page -l loginname -p pa$$word 也可以用 HTTP Basic Authentication: ./xsscrapy.py -u http://example.com/login_page -l loginname … Continue reading

Posted in Computer, Murmuring, Network, Security, Software, WWW | Tagged , , , , , | Leave a comment

在 HTML 內嵌 JSON object 時要注意的事情...

有時候我們會因為效能問題,在 HTML 內嵌入 JSON object,而不是再多一個 HTTP request 取得。 但「嵌入」的行為如果沒有處理好,就產生非常多 XSS attack vector 可以玩。 首先最常犯的錯誤是使用錯誤的 escape function: <!DOCTYPE HTML> <html> <body> <script> var a = "<?= addslashes($str) ?>"; </script> </body> </html> 這樣可以用 </script><script>alert(1);// 攻擊 $str。因為 addslashes() 並不會過濾到這個字串,而產生這樣的 HTML: <!DOCTYPE HTML> <html> … Continue reading

Posted in Computer, Murmuring, Network, Programming, Security, WWW | Tagged , , , , , , , | 3 Comments

Filter Input & Escape Output...

維基百科上有一篇「Secure input and output handling」說明要怎麼處理 input 與 output (對資安方面的說明)。標題的 Filter Input 與 Escape Output 是 Gasol 之前提到後才知道的名詞,以前只知道要 validate & escape,沒想過一個比較好記的念法... 這邊都以 PHP 為主,其他程式語言也應該會有對應的方式... Input 有很多管道,有可能是使用者或是 3rd party 廠商透過 Form 傳進來的資料 (在 PHP 裡可能是 $_GET 或是 $_POST),也有可能是 cookie 的資料 (因為使用者可以修改,所以視為不安全的資料)。從檔案讀資料進來 (可能是普通的文字檔,或是 … Continue reading

Posted in Computer, Murmuring, Network, Security, WWW | Tagged , , , , , , , | 3 Comments