sql >> データベース >  >> RDS >> Mysql

SQLインジェクションを介してサイトがハッキングされました

    オーバーフロー攻撃 のようです。 。彼らはUNION -既存のクエリで編集しました。すべての%20を置き換える urlエンコードされた結果は次のようになります(スペース):

    =-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-
    

    分解する:

    1. =-999.9 現在のクエリを終了しているだけです
    2. 0x31303235343830303536 NULLです -既存のクエリの列数と一致しているだけです。 SELECT*FROMユーザーがあった場合 およびユーザー UNIONの4つの列がありました また、4つの列が必要です。その結果、これらの列に入力するために`NULL値を使用しただけです。
    3. 本当の混乱はCONCAT()にあります 。それらは、126、39、16進値としてのデータベース名、39、および126を組み合わせています
    4. - mysqlコメントです-後のクエリの残りを無視します

    この攻撃から判断すると、 mysql_real_escape_string()で入力をラップしていないと思われます。 、攻撃されてクエリから飛び出し、独自のクエリを実行できるようになりました。

    owasp.org を参照してください。 詳細については。



    1. ノードデータベース呼び出しのネストを解除する

    2. mysqlでクライアントIPアドレスを取得します

    3. docker-compose mysqlコンテナに接続するとアクセスが拒否されますが、同じイメージを実行しているdockerはアクセスを拒否しません

    4. SQL ServerのDATALENGTH()とは何ですか?