環境配置
實驗須要三樣東西,Firefox、apache、phpBB2(鏡像中已有):
一、運行Apache Server:只需運行命令sudo service apache2 start
二、phpBB2 web應用:鏡像已經安裝,經過http://www.sqllabmysqlphpbb.com訪問,應用程序源代碼位於/var/www/SQL/SQLLabMysqlPhpbb/
三、配置DNS:上述的URL僅僅在鏡像內部能夠訪問,緣由是咱們修改了/etc/hosts文件使http://www.sqllabmysqlphpbb.com指向本機IP 127.0.0.1。若是須要在其餘機器訪問,應該修改hosts文件,使URL映射到phpBB2所在機器的IP。
關閉對抗措施
PHP提供了自動對抗SQL注入的機制,被稱爲magic quote,咱們須要關閉它。
1.找到/etc/php5/apache2/php.ini
2.找到magic_quotes_gpc = On這一行
3.改成magic_quotes_gpc = Off
4.重啓Apache:」sudo service apache2 restart」php
經過訪問虛擬機內的URL:www.sqllabmysqlphpbb.com。在進入phpBB以前系統會要求你登錄。這個登錄認證由服務器上的login.php實現,須要用戶輸入用戶名和密碼來經過認證。
用戶鍵入用戶名和密碼後,login.php會將它們與mysql數據庫中的username和user_password字段進行比較,若是匹配就登錄成功。和其餘大多數web應用程序同樣,PHP程序使用SQL語言與背後的數據庫交互。
修改以下的語句
mysql
修改後用sudo service apache2 restart
重啓Apache Server.不須要輸入密碼就能夠登陸相應帳號web
當用戶想要在phpBB2中修改他們的資料時,能夠點擊Profile,而後填寫表單修改。用戶發送修改請求後,會執行include/usercp_register.php中的一條UPDATE SQL語句。在這條語句中一樣有一個SQL注入漏洞,
這些注入點對輸入長度有限制,只能改短注入語句。注入語句以下,6爲ted的編號,可經過memberlist查到sql
',user_sig = 'SELECT * FROM phpbb_users', user_sig_bbcode_uid = '7f489fe5f6' WHERE user_id = 6#
選取Interest輸入框爲注入點,這樣就好改前面的語句,填寫如圖,數據庫
ted資料修改爲功
apache
一、使用magic_quotes_gpc避開特殊字符。
修改/etc/php5/apache2/php.ini的magic_quotes_gpc = On,而後重啓Apache。
二、使用addslashes()來避開特殊字符
三、使用mysql_real_escape_string避開特殊字符ubuntu