Home » Computer » Archive by category "Network" (Page 362)

無名小站的 XSS 安全漏洞

前言

Year.new(2006) 這篇幹剿無名小站的 XSS 安全漏洞,沒有講的很明白,加上我這陣子沒在實驗室遇到 (是的,我跟他是同一個指導教授),所以一直沒有跟他說這個在國外已經「開發」好一陣子的安全漏洞。

Javascript 是在使用者端 (Browser) 跑的程式,理論上來說,讓使用者輸入自己的 Javascript 並不會有什麼問題,但實際上自從 XMLHttpRequest() 被大量應用後 (一開始發展 所使用的核心技術之一),有些人就發現 XMLHttpRequest() 是可以拿來當作攻擊的工具。

舉例說明

舉個例子說明會比較清楚。以目前最大的 為例,「修改個人資料」的頁面是在 http://www.wretch.cc/user/modify.php?admin_user=1 這個位置,會以 POST 的方式送給 http://upload.wretch.cc/user/do_modify.php,那麼我就可以在文章裡面嵌入一段 Javascript:(修改自 Use the XMLHttpRequest Object to Post Data)

var objHTTP, strResult;
objHTTP = new ActiveXObject('Microsoft.XMLHTTP');
objHTTP.Open('POST',
  "http://upload.wretch.cc/user/do_modify.php",false);
objHTTP.setRequestHeader('Content-Type',
  'application/x-www-form-urlencoded');
objHTTP.send("依照 form 的內容填入一些東西");
strResult=objHTTP.responseText;

上面的程式碼是 IE Only 的程式碼,但是要弄 IE & 並存的程式碼其實只是加個 if 判斷句後改用 new XMLHttpRequest 而已...

原因

問題來了:為什麼這樣做有效?那我隨便用 丟個東西進去 server 不就炸了?

答案是:使用 XMLHttpRequest() 連線時,會送出使用者的 Cookie,於是 server 端會以這個 Cookie 的擁有人去做 Javascript 要做的事情!接下來就 !@#$%^...

再一個例子

你會說我只是隨便講講?其實這件事情在兩個月前已經在 MySpace.com 上發生過了,而且還寫成 worm 自動感染:Cross-Site Scripting Worm Floods MySpace ()。

Google 應對的方法

回過頭來提 Google 對 XSS 的應對 這篇所提到的例子。

假設有個人在他自己的網站上 (假設是 www.example.com) 放個 Javascript,用 XMLHttpRequest() 連 mail.google.com (Gmail) 的某些 function,幫使用者刪除所有的 mail。在平常的時候,會因為 example.com != google.com 而無法產生 XMLHttpRequest Object,但是在「頁庫存檔」的時候就會在同一個 Domain 下!於是 必須避免這種情況:硬把 www.google.com 換成 IP address,這樣就沒問題了。

你可以測試 http://www.google.com/search?q=cache:http://www.google.com/ 這個頁面,會發現 會故意換到 IP address。

的另外一個服務是 。你會發現 可以讓你隨便修改 Template 填入各種 code,於是你就可以對 *.blogspot.com 下面的 site 進行 XSS 攻擊:但實際上 的 Control panel 放在 blogger.com,於是根本不怕你利用 Template 惡搞。

結語

最後,Javascript 是邪惡的,平常逛網站請不要打開 Javascript:請安裝 以避免被 ox 掉 :p

非官方的 WMF vulnerability Patch

已經有一堆網站在利用 WMF vulnerability (0 day!) 攻擊使用者了,而 居然說:我們將在 1/10 的例行性安全更新。換句話說,大約有一個星期的時間你的電腦將暴露在外?

Windows漏洞攻擊已出現 修補程式還不來

剛剛在 看到這份非官方版本的 patch (WMFHotfix-1.4.msi):

Unofficial temporary fix for the critical Windows WMF vulnerability which Microsoft will patch on 1/10/06. Tested on Windows 2000, Windows XP, and Windows XP Professional 64 Bit. The author recommends switching to the official MS patch when it becomes available. Includes c++ source.

FreeBSD 6.0 與 jail

因為要惡搞一些東西,不方便在現有的系統上跑,於是就跑去弄個 jail 出來用。比起 FreeBSD 4.x 需要自己寫一些 shell script 丟到 /usr/local/etc/rc.d/ 下,6.0 下的 jail 已經整合到系統內了,所以不太需要在自己寫 shell script。

而且 6.x 的 jail 也修掉不少 bug,像是 dmesg 偶而會出不來 (喂喂),reboot 不會理你 (喂喂)... 另外 df 也只會看到 /,不會看到其他的 slice 了。

要生出 jail 的環境,先是:

make buildworld
make installworld DESTDIR=/da1/jail0
make distribution DESTDIR=/da1/jail0

然後改 /da1/jail0/etc/master.passwd,把自己加進去,用 pwd_mkdb -d /da1/jail0/etc /da1/jail0/etc/master.passwd 重新編過一次,記得把家目錄開好 :p

然後是 /etc/rc.conf

ifconfig_fxp1_alias0="inet 192.168.113.10/24"
jail_enable="YES"
jail_list="testbase"
jail_testbase_devfs_enable="YES"
jail_testbase_devfs_ruleset="devfsrules_jail"
jail_testbase_exec="/bin/sh /etc/rc"
jail_testbase_hostname="testbase"
jail_testbase_ip="192.168.113.10"
jail_testbase_rootdir="/da1/jail0"
pf_enable="YES"

接下來弄 pf 的設定,所以去改 /etc/pf.conf

nat on fxp0 from 192.168.113.0/24 to any -> (fxp0)
nat on fxp1 from 192.168.113.0/24 to any -> (fxp0)

接下來把 jail 裡面的東西設一設,像是 resolv.conf

最後用系統給的 jail 就可以啟動了:

/etc/rc.d/jail start

第一次跑起來應該會卡在 ssh 產生金鑰的地方,所以就去喝個飲料之類的 :p (也可以自己先在 host 產生好,不過我這邊懶得講了,請自己去 /etc/rc.d/sshd 翻,需要三組金鑰)

弄完以後就可以 ssh 進去玩了,如果要跟 host 共用 ports directory,可以用 mount_nullfs 以 read-only 掛上來 (security issue),然後修改 /etc/make.conf,把本來會寫入的部分都改到 /tmp 下:

DISTDIR=        /tmp/distfiles
WRKDIRPREFIX=   /tmp/WRKDIR

這樣應該就沒什麼大問題了 :D

K2

改用

在 Template 裡面包一個 Template,這讓我想到 被幹剿很慢的文章 XD (Templating, the correct way)

對了, 的討論區放在 上 (應該是為了貼圖方便),以後如果發展這類軟體,好像也是個不錯的主意?:p

反監控 E-mail

前陣子美國的新聞媒體報導了 Bush 政府要求 NSA 大規模監控了所有的通訊資料。

剛剛在 Is the NSA Reading Your E-Mail? 這篇裡面看到了 Richard M Smith 提供反監控的想法:在信裡面提到一個別人不會 access 到的網頁,看 server log 是不是有被存取到。

(然後我又想到 了...)

Archives