天天看點

記錄在學習SQL注入的過程中遇到的幾個坑

這兩天學習了一下關于SQL的注入,然後又遇到了一些坑坑。。。嗯,日常遇到坑的掌櫃已經習慣了填坑的日常!!!😂好了,回到正題。

PS:本博文所用學習資料主要來源于《SQL注入:你的SQL是如何被注入的?》
  1. 第一個坑就是👉:用 sqli-labs 模拟一次SQL注入實驗的時候報錯 “Fatal error:Uncaught Error:Call to undefined function mysql_connect()”,如下圖。
    記錄在學習SQL注入的過程中遇到的幾個坑
    調用未定義的函數???怎麼回事?不是已經在phpStudy裡面內建了sqli-labs的運作環境了嗎?掌櫃搜尋了一番,有同樣問題的朋友,但是沒有給出相應的解法。。。
    記錄在學習SQL注入的過程中遇到的幾個坑

    于是掌櫃根據填坑太多的經驗推測:難道是php版本配置那裡有問題?

    一試,果真!!!原來配置phpStudy環境的時候,預設一開始使用的是php7.3.4版本,但是這個對于sqli-labs太高了。。。要用5開頭的版本才可以!

    記錄在學習SQL注入的過程中遇到的幾個坑
    然後就成功配置好sqli-labs了。
    記錄在學習SQL注入的過程中遇到的幾個坑
    接下來就愉快地進行一次SQL的模拟注入實驗。
    記錄在學習SQL注入的過程中遇到的幾個坑
    緊接着又來到用SQLmap 工具進行 SQL 注入檢測這裡。于是,又遇到第二個坑👇
  2. sqlmap錯誤的安裝? 看報錯圖:
    記錄在學習SQL注入的過程中遇到的幾個坑

    咦?掌櫃這是跟着GitHub官方倉庫下的安裝步驟走的,咋就安裝出錯了。。。再次求助于強大的谷歌後發現,是sqlmap的檔案位置安裝錯了!!!

    要把整個解壓後的👉sqlmap檔案安裝到(你自己安裝的)Python檔案目錄下👈。

像這樣(掌櫃這裡Python安在E盤了,就把sqlmap放到E盤對應得Python檔案夾下面):

記錄在學習SQL注入的過程中遇到的幾個坑

接着在桌面建立了sqlmap的快捷方式:

記錄在學習SQL注入的過程中遇到的幾個坑

記着修改該快捷方式的屬性,把起始位置改為你的sqlmap的安裝位置。

記錄在學習SQL注入的過程中遇到的幾個坑

就可以成功開始檢測SQL的注入。

如果你不放心剛剛是否安裝好了sqlmap這個工具,可以用官方的這個檔案來測試一下。掌櫃輸入sqlmap.py -h指令後發現并沒有出現預期的畫面,而是直接跳轉VSCode進行了子產品的更新??這跟預想的不對啊。。。

記錄在學習SQL注入的過程中遇到的幾個坑

再次檢查後發現掌櫃在指令行少輸入了一個python😅,看來Windows10 也跟Linux一樣的輸入法,加上python後再次運作這個官方檔案,就出現這樣的畫面代表sqlmap安裝成功了!

記錄在學習SQL注入的過程中遇到的幾個坑

然後掌櫃繼續進行SQL注入的檢查。

當走到查詢資料表中某些字段的值這一步的時候,第三個坑來了。

  1. 其實這個不算坑,但是需要注意一下有兩個選項的選擇:
  • 第一個問你要不要存儲hash值作為臨時檔案,記得選👉Y(就是最底下那行)
    記錄在學習SQL注入的過程中遇到的幾個坑
  • 另一個就是這第一行,問你要不要破解它們?記得選👉N !!!
    記錄在學習SQL注入的過程中遇到的幾個坑
    這樣就會秒出結果。如果你不這麼選的話,像掌櫃一開始那樣選了其他值,恭喜你!雖然會得到同樣的查詢結果,但是這會經過一個漫長的等待時間(10分鐘左右)。。。還會導緻CPU瞬間飙升!
    記錄在學習SQL注入的過程中遇到的幾個坑
    好了🧐SQL注入的學習到這裡就暫時結束了,感覺還挺有趣的,後面有機會再繼續學習!

參考資料:

Windows 上 sqlmap的使用教程

sqlmap的官方GitHub