創建賬號並登錄Mutillidae
使用Security Level 0進行SQL注入
SQL語句
格式:select * from accounts where username = '$USERNAME' and password = '$PASSWORD'
如果把這里的變量$USERNAME改成admin,而變量$PASSWORD寫成123456' or 1=1#
變成:select * from accounts where username = 'admin' and password = '123456' or 1=1#' 因為中間是or,只要or后面的為真就可以登錄成功,而1=1恆為真。#作用是為了注釋掉后面的'
Username:admin
Password:123456' or 1=1#
登錄成功
把安全級別提高為1
故伎重演,發現登錄不了了,被過濾了
嘗試使用burpsuite攔截數據包
嘗試在密碼中隨便輸入一個符合正確格式的密碼,如asdf,被burpsuite攔截,攔截后在burpsuite上修改這個密碼改成sql語句再發送給服務器,這樣就可以繞過了客戶端的過濾
點擊login
攔截數據包
點擊headers,修改密碼成SQL語句123456' or 1=1#
然后點擊forward,可以看到成功登錄
總結
1.永遠不要相信客戶端的輸入,必須要對客戶端的輸入做驗證
2.不能在客戶端那里做輸入的驗證,如果要做輸入驗證要在服務器端做,因為當客戶端輸入驗證后是可以被截獲下來篡改的