參考資源中的「SQL注入攻擊實驗.pdf 」, 提交SQL注入成功截圖,並加上本身的學號水印。
在本次實驗中,咱們修改了phpBB的web應用程序,而且關閉了phpBB實現的一些對抗SQL注入的功能。於是咱們建立了一個能夠被SQL注入的phpBB版本。儘管咱們的修改是人工的,可是它們表明着web開發人員的一些共同錯誤。學生的任務是發現SQL注入漏洞,實現攻擊者能夠達到的破壞,同時學習抵擋這樣的攻擊的技術。php
SEED Ubuntu鏡像mysql
環境配置
實驗須要三樣東西,
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。web
關閉對抗措施PHP提供了自動對抗SQL注入的機制,被稱爲magic quote
,咱們須要關閉它。
1.找到/etc/php5/apache2/php.ini
2.找到magic_quotes_gpc = On這一行
3.改成
magic_quotes_gpc = Off
sql
4.重啓Apache:數據庫
sudo service apache2 restart
Note for Instructors最好擁有一些背景知識
1.使用虛擬機,Firefox的插件LiveHttpHeaders和Tamper Data
2.對SQL語句的一些瞭解
3.如何操做MySQL數據庫
4.對PHP一些瞭解apache
這次任務,你須要經過訪問虛擬機內的
URL:www.sqllabmysqlphpbb.com
。在進入
phpBB
以前系統會要求你登錄。這個登錄認證由服務器上的
login.php
實現,須要用戶輸入用戶名
和密碼來經過認證。
去網上尋找了答案,答案的是在用戶名輸入ted'#,密碼空着就行,ted是一個已經存在的用戶名,用單引號結束這個字符串,用#轉義掉後面的語句。
服務器
當用戶想要在phpBB2中修改他們的資料時,能夠點擊Profile,而後填寫表單修改。
學習
用戶發送修改請求後,會執行include/usercp_register.php中的一條UPDATE SQL語句。在這條語句中一樣有一個SQL注入漏洞,請用它來達到如下目標:在不知道其餘人密碼的狀況下修改其資料。
提交後發現SQL語句的結構,根據分析語句結構,分析出注入漏洞在
插件
查看Memberlist表單,發現id號
rest
經過此漏洞便可經過更改id號更改信息,此處咱們修改admin的信息
修改爲功。