Showing posts with label php. Show all posts
Showing posts with label php. Show all posts

2008/02/25

phpMyAdmin: Multiple vulnerabilities

今天發現幾台server的phpmyadmin有安全上的漏洞...orz..
隨便輸入個帳號,不用密碼居然也能登錄!!!
雖然沒有database可以操作,但可以改mysql的設定!!

原因是舊版的phpmyadmin在安裝時會加入下面這樣的user..

User -------Host -----Password --- Global privileges --- Grant
Any ----------- % ---------- No ---------------- USAGE ------------- No

把它砍掉後,就安全一點了~
後來我手賤把pma這個帳號也給砍了,結果造成無法登入phpmyadmin... orz..
原來舊版的phpmyadmin(很舊很舊的版本),預設是透過pma這個user來存取mysql的..
可以在/etc/phpmyadmin/config.inc.php 找到相關設定。
後來從mysql加回pma這個user才又正常...
不過最好的方法應該是更新phpmyadmin版本才對...不過gentoo我還不會用...>,<

reference:
phpMyAdmin: Multiple vulnerabilities
http://www.apachefriends.org/f/viewtopic.php?t=8829

2007/07/14

MySQL小筆記


啟動、關閉、重開mysql
/etc/init.d/mysql start
/etc/init.d/mysql stop
/etc/init.d/mysql restart



設定root密碼


mysqladmin -u root password 'xxxxx'



使用mysql

mysql -u root -p



更改密碼

mysql> SET PASSWORD FOR 'user'@'host' = OLD_PASSWORD('password');



安裝phpmyadmin

apt-get install phpmyadmin
然後在apache的DocumentRoot下
ln -s /usr/share/phpmyadmin phpmyadmin
便可用 http://ip/phpmyadmin 進入


讓遠端電腦可使用本機的mysql

~$ sudo vim /etc/mysql/my.cnf
將bind-address       = 127.0.0.1 註解掉

如果要限定某個ip才能使用 port 3306 (mysql default),
可以使用iptables來設定filter, 如下:
 // accept all tcp on port 3306 from localhost
~$ iptables -I INPUT 1 -i lo -p tcp --dport mysql -j ACCEPT
// accept all udp on port 3306 from localhost
~$ iptables -I INPUT 2 -i lo -p udp --dport mysql -j ACCEPT
// accept tcp on port 3306 from allowed_ip
~$ iptables -I INPUT 3 -i eth0 -p tcp --dport mysql -s allowed_ip -j ACCEPT
// accept udp on port 3306 from allowed_ip
~$ iptables -I INPUT 4 -i eth0 -p udp --dport mysql -s allowed_ip -j ACCEPT

最後記得在phpmyadmin中,將供遠端電腦登錄的user的主機來源改成allowed_ip
reference: Can't connect to [local] MySQL server