登陸一下好麼?

2021-07-26 23:57:16 字數 1019 閱讀 6599

這個題過濾了絕大多數東西,然而留下了最關鍵的單引號。

(1)雙等號繞過。

假設sql語句如下:

select * from user where username='使用者名稱' and password='密碼'
現在我們知道單引號和等號沒有被過濾(這個題目是只過濾指定字元,測試一下就知道哪些被過濾了),那麼可以用一下payload:

username=p'='&password=p'='

帶入到sql語句可以看到就變成了:

select * from user where username='p'='' and password='p'=''

先看前面username那一塊,由於兩個等號是從左往右計算的,username=『p』不存在就會返回0(false),而0=''則會返回1,這樣where後面計算結果就變成了1 and 1,這樣最後就會把資料表中所有的資料挑出來。

sql裡面弱型別的比較,以下情況都會為true:

1='1'

1='1.0'

1='1後接字母(再後面有數字也可以)'

0='除了非0數字開頭的字串'

(2)利用mysql資料型別轉換特性以及特殊截斷符號「%00;」:

select * from table where username=0;

select * from table where username='a'+0;

這兩句均會返回庫中所有元組,就是說如果乙個字元型別的變數接收到乙個整形變數且值為0的時候,就會返回庫中所有元組(第二句'a'+0會進行強制型別轉換,最後結果還是0)

其次,mysql的注釋符號除了-- + , # ,/**/之外,還有;%00。
利用這兩點,構造如下payload:
username=a'+0;%00&password=
就可以成功繞過了。

CTF 登陸一下好麼?

select from user where username 使用者名稱 and password 密碼 利用 1 1 0 0 這樣顯然不行,因為查詢到資料庫中沒有username 1 的元組,返回了0 而 0 1 所以需要改為 username 1 0 password 1 0 先看前面user...

注入技巧 (登陸一下好嗎)

通過這道題提示下寄幾 不是所有有關sql語句的注入都要報庫名錶名欄位名!首先開啟這道題,是倆輸入框,輸入1和1有回顯,輸入union等字元會不顯示,想著應該是回顯注入 此時應自動腦補sql語句 select from user where username and password 後經驗證是這乙個...

實驗吧登陸一下好嗎 WP

登陸一下好嗎?username 1 0 password 1 0 或者 username what password what 或者 username admin password admin 得到ctf 好吧,其實我提供的只是萬能密碼嘗試而已,真正的writeup在這裡 by wonderkun,...