2007/06/24

WordPress 的 themes 有 Path Disclosure 漏洞

在查 Path Disclosure 相關資料時,無意間發現有網友指出 WordPress 的 themes 存在著 Path Disclosure 的漏洞,原文請見:
http://cnc.sablog.net/blog/show-243-1.html

該文是 2007.03.25. 發佈的,當時 WordPress 的版本是 2.1.2,
而今我以 2.2 版測試,還是存在同樣的問題,因此先以原文提出的方式修正。
但是將所有 wp-content/themes/default/ 目錄下的所有 php 檔,
都加上原文提供的修正碼之後,編輯文章按下儲存之後,
畫面卻出現 Access Denied 的錯誤訊息!

明顯是剛剛修改的某個檔案有問題,仔細一個一個查,
發現問題是出在 functions.php 這個程式。
因此對於functions.php,在檔案最上方加上以下程式碼修正之:


由於 error_reporting(0) 會抑制錯誤訊息的輸出,
而我又不確定將 error_reporting 關掉是否會對後面的程式造成影響,
因此其餘檔案就照原文提供的方式修正。

2007/06/14

升級 PEAR: ->1.3.6->1.4.11->1.6

幫一台 server 裝新版的 Log 套件,輸入
pear install Log
之後卻顯示
No handlers for package.xml version 2.0
到 pear.php.net 瞧瞧,果然有說明(http://pear.php.net/manual/en/faq.php)
原來是這台 server 的 PEAR 版本太舊了,所以不能裝。
要先把 PEAR 升級之後,再來裝套件。

裝 PEAR 之後衍生 include path 的問題

今天幫一台 server 裝 PEAR,裝好之後本來的程式卻出現以下的錯誤訊息:

Fatal error: Call to undefined method: log_file->_format() in /usr/local/share/pear/Log/file.php on line 293

追蹤之後發現,原來這程式有用 PEAR 的 Log 套件(Log.php),並且使用 Log 套件的 file.php。
由於本來沒有裝 PEAR,因而將 Log 套件裝到該程式自己的目錄下自行引入。
安裝 PEAR 之後,原本的程式還是引入自己目錄的 Log.php,
但是 Log.php 去呼叫 file.php 時,
因為裝了 PEAR 之後 include path 多了 /usr/local/share/pear,
就變成引入 /usr/local/share/pear/Log/file.php。

沒有裝 PEAR 之前:
程式引入 /home/user/Log.php -> Log.php 引入 /home/usr/Log/file.php

裝 PEAR 之後:(include path 多了 /usr/local/share/pear)
程式引入 /home/user/Log.php -> Log.php 引入 /usr/local/share/pear/Log/file.php

/home/user/Log.php 是 1.9.3 版、/home/usr/Log/file.php 是 1.44 版,
而今天裝的 PEAR 的 Log 套件是 1.9.11 版、file.php 是 1.45 版。
在 1.45 版的 file.php 裡用到 Log 物件的 _format 方法,而這個方法 1.9.3 版的 Log.php 沒有,因此產生了錯誤訊息。
後續處理就把自行安裝的 Log 套件升級到 1.9.11 版(不用改程式)。

2007/06/13

HiNet 廣告信處理公告

記錄一下,方便日後查詢: 

HiNet 廣告信處理系統公告 http://spam.web.hinet.net/
固定制停話處理中名單 http://spam.web.hinet.net/black_list_fixed.html
非固定制停話處理中名單 http://spam.web.hinet.net/black_list_dynamic.html

2007/06/11

重設 D-Link DES-3225G 的密碼

有機會接觸到兩台 D-Link DES-3225G,想要進 console 設定一些參數,但是沒有登入的帳號、密碼。很幸運地,其中一台的密碼被我猜出來了,可是另外一台卻猜不出來,而 DES-3225G 沒有 reset 的按鈕,手冊上也查不到任何 reset 的方法,最後打去 D-Link 問,只能送原廠處理。

但是去問負責送修的聯強國際,卻說這台 DES-3225G 已經沒有料件,不能送修?再回頭去問 D-Link,客服卻跟我說抱歉?這台已經沒有零件,無法維修。
奇怪?不過 reset 個密碼,要什麼零件?懶得跟客服囉唆,上網找其他辦法。

果然在 http://forums.windrivers.com/showthread.php?t=69487 找到解決方法!
(google://D-Link DES-3225G  reset password)
原來 D-Link 的這台 swtich 有個萬用密碼,這個萬用密碼依據 MAC address 而設定,每台 DES-3225G 的萬用密碼都不同。後來直接抄下 MAC address 跟 D-Link 要萬用密碼,果然不管用什麼帳號都可以登入。

DES-3225G login log from backdoor
如果用萬用密碼登入,switch 的 log 裡會加上 backdoor 字樣的註記:
Successful login through console(backdoor).

讓 joe 顯示中文

要讓 joe 可以顯示中文,就要將 joe 的 asis 打開。
預設時關閉的,只要將設定檔的 -asis 前面的空白刪掉就可以開啟。

joe 設定檔在
FreeBSD: /usr/local/lib/joerc
Ubuntu: /etc/joe/joerc

如果使用者家目錄有 .joerc 檔,那麼就要改家目錄下的 .joerc。

2007/06/08

換 Blog 系統

WordPress 用了幾個月,還滿順手的,沒遇到什麼大問題。
就趁今天把 http://weblog.gilbert.tw/ 換成 WordPress 版,
原本的 Nucleus 先移到 http://www.gilbert.tw/OldBlog/
等文章都移到 WordPress 之後再封存起來。

datapipe - 轉 port 的小套件

好幾年前用過的小套件,這幾天又找出來用。
使用語法:
datapipe localport remoteport remotehost
上面的語法是舊版的語法,1.0 版的語法是:
datapipe localhost localport remotehost remoteport

比方說我要將 10.0.0.2 的 9999 埠轉到內部 10.0.0.1 的 80 埠,語法就是:
datapipe 9999 80 10.0.0.1
1.0 版的語法是:
datapipe 10.0.0.2 9999 10.0.0.1 80

執行後會自動 fork 到背景去跑,就算 logout 轉 port 的效果一樣會在。
如果要取消,就把 PID 找出來 kill 掉即可。

這套件是在 ports 的 net 目錄下( /usr/ports/net/datapipe )

FreeBSD ports 說明:
http://www.freebsdsoftware.org/net/datapipe.html

2007/06/06

PUD Linux 製作 iso 檔的指令

今天重新做 iso 竟然想不起來之前下的指令
還好 history 沒有清掉,沒花多少功夫就找到了。
不過為了避免日後忘記,還是記錄一下好了。

在 build-livecd.pl 目錄下輸入以下指令:

perl build-livecd.pl 2>&1 | tee -a /var/log/livecd.log

主要是 2>&1 | tee -a 這段常記不住 *^_^*

PUD Linux 的 ADSL 撥接設定

備註一下 PUD Linux 上 ADSL 撥接的帳號密碼放在哪裡
免得日後要改時漏掉

  • config/etc/ppp/chap-secrets

  • config/etc/ppp/pap-secrets

  • config/etc/ppp/peers/dsl-provider


就這三個檔案要改,前兩個要 ADSL 的帳號跟密碼,最後一個只要帳號就可以了。

2007/06/05

要裝 Lightscribe System Software 才能做光雕片

今天要做光雕片時發現 SureThing 和 Nero 都不能燒
Lightscribe.com 上一查,原來還要裝 Lightscribe System Software 才行(連結
應該之前電腦重灌時忘了裝

Lightscribe.com 上有提供最新版 1.6.45.1 下載:
http://www.lightscribe.com/downloadsection/windows/index.aspx?id=1370
但是點選之後,卻是出現錯誤訊息:
HTTP 500 內部伺服器發生錯誤
真不曉得 lightscribe.com 在搞什麼東東 :S

還好在 Nero 找到 1.6.43.1 的版本:
http://www.nero.com/nero7/enu/System_Requirement_Updates.html
(點畫面最下方的 DOWNLOAD 即可)

2007/06/03

MRTG 設定檔 Target 區塊常用設定

詳細的設定參數請見官方網站:http://mrtg.hdl.com/doc/mrtg-reference.en.html

以下是 MRTG 設定檔的 Target 區塊常用的設定:
MaxBytes[label]: 數字
MIB 可以達到的最大值(不要懷疑,既使不是以 Byte 為單位的 MIB 也是用這個參數)。
被測量的兩個 MIB 會共用 MaxBytes,如果要分別設定,要用 MaxBytes1 和 MaxBytes2。

Net-SNMP 指令語法

詳細的說明可參考 Net-SNMP 官方網站的教學:
http://net-snmp.sourceforge.net/wiki/index.php/Tutorials

此處列出幾個常用的語法:

2007/06/02

MRTG 設定 - CPU 的使用者與系統使用量

比較使用者與系統的 CPU 使用量
MIB 1: ssCpuRawUser - user CPU time. - .1.3.6.1.4.1.2021.11.50
MIB 2: ssCpuRawSystem - system CPU time. - .1.3.6.1.4.1.2021.11.52