fc2ブログ

sqlmap の実験

AmazonEC2 で公開サーバーを構築する予定ですが、思ったようには
いきません

まずは、初期の状態をどうにかしないとだめです

とりあえず、まずはそれはおいておくとして
この機会にセキュリティに関して勉強をすることにしました

今回は、日経 Linux 2011-09 を使って勉強しています



今回は、SQLインジェクションについてです

SQLインジェクションの脆弱性は
sqlmap を使うことで見つけることができるようです

ubuntu の場合
sudo apt-get -y install sqlmap
でインストール

デモ用サイトへ実行するには
sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1

使い方に関しては
http://charie99.egloos.com/m/category/IT/page/2
が参考になります

SQLインジェクションは
データベースの問い合わせ言語であるSQLを Webさいとへ送りつけ
操作できないデータベースを外部から操る手法です

照合用のプログラムがユーザ名を検索するとき
SQL文で
SELECT * FROM users WHERE user name~'user1' AND password='****';
となります

ユーザ名に ' OR 1=--
パスワードなしで認証したときに

ユーザ名で使用可能な文字列以外を破棄する
ロジックを組み込んでいないと
SELECT * FROM users WHERE user name='' OR1=1--' AND password='';
が実行され
すべてのユーザアカウントが閲覧可能になってしまいます

これとは別のもうひとつ興味深いものとして
GPGPUによるハッシュ値の解読なども特集にありましたが
残念ながら、私のマシンではGPUがないので、実践はできませんでした

ちなみに、今回の特集で使われたのは
GeForce GTS 450
になります
スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

CentOS AMI に入れておきたいもの

AmazonEC2 のAMI作成のため
必要となるものをまとまめてみました


アプリケーション
・エディタ
・テキストベースのインターネット

開発
・開発ツール

サーバー
・DNSネームサーバー

ベースシステム
・システムツール
・ベース
・管理ツール

言語
・日本語のサポート

用途としては、公開するWebサーバーとメールサーバーにする予定です

もし、他にも使えるAMIがあれば、先にそちらで実践してみようと思います

EC2用にCentOS5.2のAMIを作ってみた
の記事によりますと
RightScaleがCentOSのイメージを公開しているとのことですので
もしできるようなら、こちらも試して見ようとおもいます

テーマ : インターネット関連
ジャンル : コンピュータ

AmazonEC2 CentOS 5.5

SUZ-LAB謹製 CentOS AMI 6.0.0の作り方
でAMIを作成していた情報がありました

micro Instance で
このAMIを使わせていただこうと思います

EC2 Dashboard を選択し
Launch Instance をクリック

ec2_20110925092530.png

どのAMIを使うかを聞かれるので
community AMI タグを 選び
Viewing で 32bit を選択
検索欄へ suz を入力
表示されたAMIから 今回はCentOS5.5 を選びました

ec2-2.png

テーマ : Linux
ジャンル : コンピュータ

AmazonEC2 でサーバ構築する場合

最近は停電、震災などが多いため、自宅サーバーだけでなく
クラウドを活用しようと思って AmazonEC2 を始めたのですが

VMware のような仮想マシン作成とは少しことなります

基本的に AMI と呼ばれるものからイメージ(仮想マシン)を
探して、起動する方法
(VMware などのできているマシンをダウンロードして使うようなもの)
これらに関しては
SUZ-LAB謹製 CentOS AMI (6.0.0 64bit ap-northeast-1)
にありますように、バージョンやOS、AMIの番号から調べて選び
起動するというようになります

もしくは、自分でAMIを作成し、そこから作っていく方法になります
本来、この方法を使おうと思っていたのですが
VMware のように、インストールメディアのISOからすすめると
思っていたのですが、実際には、コマンドを使って作り上げるようです

AmazonEC2 CentOS AMI 作成
と検索した結果、いくつかヒットしましたので
メモしておきました
CentOS5のAMIを作ってみる
2011年7月29日金曜日 "SUZ-LAB謹製 CentOS AMI 6.0.0"の作り方
が参考になりそうです

テーマ : Linux
ジャンル : コンピュータ

じゃらんAndroid JUnit テストのメモ


を参考に、サンプルアプリを作っていましたが、XMLの解析でつまづきました

ようやく、解決したのでメモしておきます

今回、つまづいたのは102ページのところの
ResultsFactoryTest.java のテストコードの実装のところ

ちなみに、JUnit Test Code のクラスを作成するには
File > new > Package
でパッケージ を作成

ResultsFactoryTest を作成するには

File > new > JUnit TestCode で作成することができます

基本的にはそのままでよいのですが、
int iRet =svr.requestText("http://jws.jalan.net/APIAdvance/StockSearch/V1/?key=取得したAPIキー&s_area=330202&stay_date=20110129");
となっているのをそのままにして Android JUnit Test を
行うと、エラーになりました

エラーの内容は
junit.framework.AssertionFailedError: expected:<0> but was:<1230>
at com.sample.data.ResultsFactoryTest.testGetResponse(ResultsFactoryTest.java:26)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)

原因を探してみた結果
&stay_date=20110129
の部分は、じゃらんWebサービス 空室検索API
にあるように、
宿泊開始日になります

このままだと、テストするにはすでに日付が過ぎているので、ここを変更します
&stay_date=20110129

&stay_date=20110929
というように、先の日付に変更します

これで一度保存し、
右クリック > Run As > Android JUnit Test を実行すると
再びエラーになります

junit.framework.AssertionFailedError: expected:<537> but was:<1230>
at net.linuxliker.data.ResultsFactoryTest.testGetResponse(ResultsFactoryTest.java:26)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)

ただし、今回は 少し変化があります
junit.framework.AssertionFailedError: expected:<0> but was:<1230>
だったところが
junit.framework.AssertionFailedError: expected:<537> but was:<1230>
となっています

これは、105ページに注意書きが書いてあったのですが
引数で指定するリクエストURLに対し
レスポンスが常に同じになるとは限らないというためのようです

今回の数値が expected 537 に対し 1230 となっているのが原因でエラーとなったので
assertEquals(results.getNumberOfResults(), 1230);

assertEquals(results.getNumberOfResults(), 537);
と修正することで。エラーがなくなり、緑色の成功になります

ただ、日付を変更したりした場合、修正が必要になりそうです

テーマ : プログラミング
ジャンル : コンピュータ

AmazonS3 とEC2

仮想マシンをまるごとバックアップするためのメモです

今回は、仮想マシンをまるごとバックアップ
ただしこれは
AWSアカウントの初回サービスの無料ではないので注意

まずブラウザでAWS Management Console を右クリックし
Creat Image EBS AMI
を実行します

Image Name に
保存する名前
とりあえず
ubuntu desk11.04

Image Description には
説明文を書きます
develop test
にしました

ec2-s3.png


これで、仮想マシンが保存されます

テーマ : インターネット関連
ジャンル : コンピュータ

x2go クライアントでEC2接続

AmazonEC2 デスクトップ環境構築
で作成した仮想マシンにGUI接続するため
x2go で接続します

前回、仮想マシン側に x2goclient を入れましたが
これは x2goserver の間違いでした

このため、まず

ssh -p22 -i ap-north.pem ubuntu@175.41.199.50
のように、端末からログインし

仮想マシンへログインできたら
sudo apt-get -y install x2goserver
でインストールします

次に、ネットブック(クライアント)側で
x2goclient &
で起動し

ホスト名に AmazonEC2 マシンの public DNS
ユーザ名へ ubuntu
Use RSA/DSA key for ssh connect へ鍵ファイルの場所を指定します


これでログインできるようになります

テーマ : 日記・日誌
ジャンル : コンピュータ

AmazonEC2 デスクトップ環境構築


東京データセンターで ubuntu 公式イメージを使うなら

http://uec-images.ubuntu.com/releases/11.04/release/

へアクセスし
32bit を選択します

リージョンとイメージの選択になるので
ap-northeast-1
32bit
ebs
を選択

ebs は micro instance を意味します

ap-north.pemという鍵作成 & download

chmod 600 ap-north.pem
でアクセス権限変更

あらかじめ、Security Group で
ssh ポートを開放しておくことが条件です

sshログインは公開鍵認証
ユーザ名はubuntu
-p22 で22ポートを指定
-i 鍵ファイル名
IPは、AmazonEC2 の PublicDNSになります
例えば
ssh -p22 -i ap-north.pem ubuntu@175.41.199.50

ログインしたら
sudo apt-get update
して
デスクトップ環境がほしいので
sudo apt-get -y install ubuntu-desktop

日本語が最初は使えないので
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -

wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- |sudo apt-key add -

sudo wget https://www.ubuntulinux.jp/sources.list.d/natty.list -O- /etc/opt/sources.list.d/ubuntu-ja-list

sudo apt-get update

sudo apt-get install ubuntu-desktop-ja


次に Unity-2D インストール
(EC2仮想マシンではGPUをつかう通常のUnity は使えない)
sudo apt-get install unity-2d

続いてリモートデスクトップ環境構築
まずはリポジトリ登録
sudo add-apt-repository ppa:x2go/stable
これでGONOMEと unity-2d インストール
sudo apt-get update
sudo apt-get -y install x2gouser x2gognomebindings

ここまでEC2側の設定

次は、クライアントになるネットブックに設定するので
http://www.kkaneko.com/rinkou/linux/x2go.html
を参考に設定


今回、参考資料として


を使いましたが、ここの部分が違っていました
書籍はまちがっていたようです

: が i になっているようです

テーマ : インターネット関連
ジャンル : コンピュータ

AmazonEc2 リージョン選択

AmazonEC2 1リージョン選択のときのメモです

ap-southeast
がわからなかったので調べてみました

どうやら、シンガポールらしいとのこと
http://jaws-users.687672.n3.nabble.com/AP-Southeast-td764525.html
が参考になりました

ap-northeast
は東京のこと
http://blog.suz-lab.com/2011/06/asia-pacific-tokyoap-northeast-1us-east.html
が参考になりました

引き続き、AmzonEC2 でのデスクトップ環境構築へ進みます

テーマ : インターネット関連
ジャンル : コンピュータ

アプリの外部ストレージ保存の注意点

Android 2.2 以降は、アプリを外部ストレージ
例えば microSD などに保存することができるようになりました

しかし、このアプリの保存についても
注意すべき点があるようです

現在、アプリ作成をしていますが、開発する側でも
いろいろと外部保存については問題があったりします

今回は、
アプリケーションのインストール領域を考える (Dev Guild - App Install Location 和訳
を参考にさせていただきました

とくに気をつけたいのがサービス系です
外部ストレージをアンマウントした時
外部ストレージが再マウントされてもリスタートされないということです

テーマ : プログラミング
ジャンル : コンピュータ

AndroidエミュレータでのGPS使用

Android エミュレータでGPSアプリの作成をしようとしましたが
位置情報の取得をしようとしたまま止まってしまうため
原因をさぐるべく検索

参考サイトは
AndroidでGPSを使ってみる

Android 位置が取得できないのはなぜ?
そして
AndroidでGPSセンサを利用する方法
です

どうやら、Android エミュレータの設定で、GPS Support が yes になっていないこと

そして、
エミュレーターを動かしている状態で、
eclipseのメニューから windows > show view > other

Emulator Control を選択し
位置情報を送信していないのが原因のようです

一度このほうほうで検証してみます
どうしてもうまくいかない場合、仮想環境で実験したり
実機検証してみようと思います

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成時には、パーミッションに注意

最近、じゃらんアプリ作成をしようとして、JUnit を使っていました

なぜか、テストをしてもエラーになり、ネットの画像などが
参照できないので、ソースを調べたりしていましたが
初歩的なミスでした

原因は、
AndroidManifest.xml へ
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
を記述するのを忘れていたため、ネットアクセスができていませんでした

機能、Google Map の座標取得アプリを勉強中に
AndroidManifest.xml を編集している時に気づきました

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック