2017-08-31 6 views
1

私はSQLインジェクション攻撃をしようとしています(これは割り当てのため、違法ではありません)データベース名はです。しかし、私は入力の15文字に制限されています。これは、文字列をエスケープし、残りの部分をコメントアウトする際に考慮する13です。 SELECT DATABASE()は長すぎるため、データベース名を13文字以内で返す方法がありますか?SELECT DATABASE()を使わずにMySQLでデータベース名を取得

+0

あなたは15文字制限を増やすことができますか? –

+0

どうすればいいですか?文字数制限がサーバー側で評価されていませんか? – user3246167

+0

あなたは15文字以上の入力を送信して、それが動作するかどうか試してみることができます。より多くの助けのために私はより多くの情報を必要とするでしょう –

答えて

1

STATUSを参照してください。これは、接続しているデータベースの名前を含むいくつかのステータス変数を提供します。

https://dev.mysql.com/doc/refman/5.7/en/show-status.html

+0

'SHOW STATUS'はその情報を含んでいません。あなたは、現在のデータベースを含む[mysqlクライアント組み込みコマンド](https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html) 'status'を考えているかもしれません。しかし、クライアントの組み込みコマンドはサーバによって実行されないので、SQLインジェクションに脆弱ではありません。 –

+0

ありがとうございます。一定。 – Kamran

+0

いいえ... OPはSQLインジェクションを使用して 'status'を実行できません。これはクライアントの組み込みコマンドです。 SQLを使用してクライアントコマンドを実行することはできません。 –

1

コマンドSHOW TABLESは、11文字であり、結果セットの見出しは、現在のデータベースを明らかにする。

はここに例を示します

mysql> use test; 
mysql> show tables; 
+----------------+ 
| Tables_in_test | 
+----------------+ 
| ...   | 
+----------------+ 
関連する問題