ここから本文です

お久しぶりです。 授業でSQLインジェクションの攻撃を実際に体験しています。

tat********さん

2018/10/212:27:55

お久しぶりです。
授業でSQLインジェクションの攻撃を実際に体験しています。

バージョンを取得する際に
' union select @@version #
と入力したのですが、「@@」はどのような意味があるのでしょうか?
「@」を一つにすると結果はNULLになり、「@」をつけずに実行するとエラーが返ってきました。
また、サイトを参考に攻撃をしていたのですが、
「unionはフィールド数が揃っていないとエラーになる」と書いてあったのですが、どこのフィールドと合わせているのでしょうか?

データベース名とユーザ名を取得する際に
' union select database(),user() #
と入力しました。この()の意味もわからないです。

サイトで調べてみたのですが、思ったような結果を得ることができませんでした。
http://it-hack.net/2016/05/13/post-1496/
参考にしていたサイトです。

この質問は、nor********さんに回答をリクエストしました。

閲覧数:
60
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nor********さん

リクエストマッチ

2018/10/216:23:03

回答されていますが
@@はシステム変数です
show variables;
で表示されるものと値は同一です。

@一つの場合はセッション変数になります。
セッション変数は
set @v := 1;
などで値を設定可能です。
セッションが異なれば、同名の変数でも独立しています。

user()などはシステム関数と呼ばれるものです
http://db.yulib.com/mysql/c8.html

> 「unionはフィールド数が揃っていないとエラーになる」

unionは

select
union
select

のように使います。
この場合連結するselectの項目リストの項目数、データ型が一致していないとエラーになります。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/10/5 09:51:27

ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

shi********さん

2018/10/213:26:28

@@var_name はシステム変数です。

SHOW VARIABLESで表示されるものは@@var_nameで扱えますが、一部そうでないものもあります。

https://dev.mysql.com/doc/refman/5.6/ja/using-system-variables.html
---------- 引用ここから
SHOW VARIABLES によって表示される一部の変数は、SELECT @@var_name 構文で使用できない場合があり、「不明なシステム変数です」と表示されます。その場合の回避方法として、SHOW VARIABLES LIKE 'var_name' を使用できます。
---------- 引用ここまで





>この()の意味もわからないです。

database関数とuser関数ですから、関数の()です。

https://dev.mysql.com/doc/refman/5.6/ja/information-functions.html





>「unionはフィールド数が揃っていないとエラーになる」と
>書いてあったのですが、どこのフィールドと合わせているの
>でしょうか?

最初のSQL文です(unionで結合する元の文)。そのSQLのwhere conditionの与える文字列を ' で無理矢理閉じて、union で繋いで別のSQL文を実行させようという話ですよね>SQLインジェクション。

質問内容はSQLインジェクションとは別の話なので、切り分けて(単独でSQLを実行する環境で)試された方がいいと思います。

#こんな古典的なSQLインジェクションの穴があいて
#いるケースもあり得ないでしょうし(汗

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる