如何追蹤係內部問題定外部問題?

server上其中一個virtual host的php website
發現執行大量query, 我mysql log一晚就比佢整爆
佢不斷執行這種query
select * from xxx where id=-1
select * from xxx where id=-2
select * from xxx where id=-3
select * from xxx where id=-4
.
.
.
.
如此類推, 去到咁上下又會由 -1開始

我search 晒所有source code, 搵唔到有類似query

我唔知係內部coding問題, 定係外部攻擊問題
我先假設係外部問題先, 咁有乜方法可以證明到, 依D query係咪由外面黎?

你將 xxx rename yyy 睇下那個 page 有 error ( /var/log/httpd/error.log)

TOP

9成page都有error, 因為果個係主要table

TOP

disable outside connection to the website, see if still have error.

TOP

我試過restart server, delete log, 但如果disable outside connection會試唔到
因為要個website有run過, 先會出問題
不過, 其實我都唔肯定係code入面有某個位無限loop, 定係出面有攻擊
因為我試過restart server, delete log, 之後唔見佢有出log, 幾分鐘之後再睇又出log

以上程序重覆過好幾次, 有時我無主動run佢, 過一陣會出log
有時會明明主動run左佢, 但佢又唔出log, 要再等等先出log
所以我都唔sure係點樣trigger到佢出log

TOP

對照 httpd 同 mysql 的 log 的 timestamp, 可以估到邊個 page 出事

TOP

亂諗,可唔可以disable所有outside connection除咗一個ip。
由個度駁去website周圍click吓。記錄click邊版的時間。

TOP

之前的測試, 我只run過index, 當然, 關唔關includ入黎的php事就唔知了
其實有無tool可以log底晒外面經某domain入黎的所有request, 同埋睇到所有request的內容?

TOP

會唔會係 cron job?

睇下 syslog 同時間有無 log 到 d 特別野

TOP

apache 有個 server-status enable 佢

http://www.apache.org/server-status

TOP