olificeのblog

プログラミングまたはサーバ構築についてのメモ

メモ

CentOSでphpmyadminのアップデート 2.11.11.3から3.4.7.1へ

インストール前の環境:
CentOS release 5.6
Apache/2.2.3
PHP/5.1.6
MySQL/5.1.58

以前yumでphpmyadminをインストールしていたのですが今回は手動でインストールします。

1.http://www.phpmyadmin.net/home_page/downloads.phpで最新版のphpmyadminをダウンロードします。

2./var/www/phpmyadminにダウンロードしたphpmyadminを展開します。
※yumでインストールしていたのであれば/etc/httpd/conf.d/phpmyadmin.confというファイルが作成されているのでここのAliasを変更しphpmyadminのURLを変更出来ます。

PHPのバージョンが5.1.*では2011/11/18現在最新版のphpmyadminは動かないので、まずはPHPのバージョンをアップデートします。

utterblingsリポジトリを使いアップデートします。
GPGキーをインポートします。
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
priority=1
/etc/yum.repos.d/utterblings.repoに以上の内容を書き込みます。
アップデートが終わったら必要ないためenabled=0にして普段は使わないようにします。

PHPをバージョンアップします。
# yum update php
ちなみにこのときi386アーキテクチャ用のmysql.i386がインストールされているとエラーが出ることがあります。
参照:http://www.linuxquestions.org/questions/linux-newbie-8/problems-updating-php-etc-in-centos-5-6-using-utterramblings-889221/
その場合はyumでアンインストールしておきます。
# yum remove mysql.i386
PHPのバージョンを確認します。
# php -v

PHP 5.2.17 (cli) (built: Sep  1 2011 17:22:41)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

以上でPHPのアップデートが確認出来たので/phpmyadminにアクセスしphpmyadminが正しく動作するのを確認します。

formのfileから複数ファイルのアップロードが出来ない もしかして:max_file_uploads

phpのmove_uploaded_file関数を使って、formのfileで複数ファイルのアップロードをしようとしたらなんかエラーが出た。具体的には20個以上のファイルを同時にアップロードさせようとしたらエラーが出た。調べてみたらphpはデフォルトではファイルの同時アップロード数を20個に制限しているらしく個数制限を変えるにはphp.iniに
max_file_uploads 100
のような感じで同時アップロードしたい数を書き加えればOK。

http://phpspot.net/php/man/php/ini.core.html#ini.max-file-uploads

cakephpの文字コードでハマった

cakephpの$usesやら文字コード関連でハマった
・$usesにモデル名を入れるとnodeTextがbodyの直後に挿入されたり、head内のlinkタグとかscriptタグがbodyの中に移動する
・色々やった結果モデル、コントローラ、ビューの文字コードを「UTF-8 BOMなし」にしたら直った(UTF-8じゃだめ)

ActionScriptのExternalInterfaceでハマる

ActionScriptのExternalInterfaceでJavascriptからFlashを操作しようとしてハマった。
が、結局Flashプレイヤーのセキュリティの設定が甘かったようだ。
http://www.mztm.jp/2009/06/10/externalinterfaceaddcallback/
最初こちらの水玉製作所さんのページを参考に操作するコードを書いたけど動かない。Firebugのコンソールには~is not functionだとか~is not definedとかエラーが出る。一応ActionScript側もJavascript側もサンプル通りな感じで書いてるのに動かない。で今度は同じページにあったサンプルを丸々ダウンロードしてローカルで実行してみるも同じく~is not functionとかエラー出て動かない。リモートでは動くサンプルがローカルで動かないということはセキュリティ関係の設定がアレな感じなのかと思い、Flashプレイヤーの設定を見てみると

WS0018



















グローバルセキュリティ設定パネルというのがあるのでこれの設定を「常に許可」に変えるか「これらの場所にあるファイルを常に信頼する」にローカルで実行するファイルがあるフォルダーを追加すると無事動いてくれた。

----------------------

しかし久し振りにめちゃくちゃハマった。~is not functionとかエラーが出るからHTML、Javascript、ActionScriptのどこかに原因があるかと思っていじくってたのにセキュリティ関係の設定だとは(;´Д`)

OllyDbgを用いたパスワードクラック

OllyDbgを用いたパスワードクラックについて

とりあえず日本語化しないと逆アセンブルしたとき文字化けする箇所があったり英語読むのがだるかったり。。なので
http://hp.vector.co.jp/authors/VA028184/
うさぴょんさんのHPより
中段あたりにOllyDbg 1.10日本語化パッチがあるのでダウンロードして適用します。オプションの環境設定からフォントを日本語フォントに変更しておきます。

今回は簡単なサンプルを使用しパスワードクラックをしたいと思います。

Photo 12月 04, 21 03 48サンプルのプログラムを起動するとこの様な画面が開きます。一体誰がこんなプログラムを作ったんでしょうね(真剣)





画面は置いといて、メニューよりファイル→登録を選択すると



WS0011
このようなダイアログが開きます。適当にIDとパスワードを入力してOKを押すと何もメッセージを出さずにダイアログが閉じます。ここに何が入るかをこれからOllyDbgを使って調べて行きたいと思います。





WS0012OllyDbgを開き先ほどのサンプルを開きます。
左上が逆アセンブルした実行ファイルの中身で右上がレジスタの状態、左下がメモリのダンプで右下がスタックの状態です。
とりあえず左上のウィンドウ内を右クリックしメニューの検索から全ての外部関数呼び出しを選択します。

WS0013すると呼びだしている関数がずらっと並びます。先ほどのプログラムの挙動から関係すると思われるっぽい関数をF2キーでブレークポイントに指定します。左側の赤くなっているのがブレークポイントです。



一旦逆アセンブラ画面に戻りF9キーでプログラムを実行します。
そのあとは適当にブレークポイントに当たったらF8キーでステップを勧めたりF9キーを押して実行しーのでレジスタとかスタックに怪しい文字列が格納されてないかを確認しながら進めると




WS0014何かレジスタに格納されてるじゃん!あっこれさっき実行したとき入れたIDじゃん!逆アセンブラ画面のlstrlenAって怪しくね?しかもその下でCMPしてJEとかJLとかしてるのが熱いのでSpaceキーでJMPに変更させたりして処理を追っていくと




WS0015レジスタのEAXにそれっぽい文字列が出現しました。もしかしたら16進数ではないからパスワードなんじゃないか。






WS0016
そしてプログラムを立ち上げてさきほど入れたIDのhogehogeとパスワードにYJCEVGGBを入力すると・・・














Photo 12月 04, 21 03 58

 

 

 

 

 

 



                       コングラッチュレーション
             ,―==7     Congratulation!   コングラッチュレーション
             |く ___ _>                    Congratulation!
             fll`ーU+'
             `''、 ー=|      おめでとう・・・・・・・・!
          _,,..-´:|ヽー-;ー..,,_
.  ,-=-, ,,..-‘≡≡:| ><´|≡::|ヽ    おめでとう・・・・・・・・!  おめでとう・・・・・・・・!
.  | l____ヽ.|≡l≡≡≡| |::| |≡:::/::|
.  |(llー´_ヽ|≡|≡≡≡|.|:::|l≡::/::::|      完走おめでとう・・・・・・・・・・・・!
.. 4 l__`=|_|≡:|≡≡≡::||:::|'≡/≡|
/|\,.・|::≡:|ヽ|≡≡≡≡≡:::/|≡::|                         _,,.........、
≡|/}:ヽ|:≡|::::|{≡≡≡≡≡:::{ .|≡::|                        ヽ_,,   ヽ
≡:| |:::|l≡:|≡|:|≡≡≡≡≡:::|. .|≡::|                        /_>   |
:::≡l|:::|'≡:|≡:|::|≡≡≡≡≡:::|. .|≡::|                       |7 llう.. |
≡≡≡≡/|≡ヽ≡≡≡≡≡::::|. ..|≡::|.    z-..,〃、             ム__ ll´.. |
::≡≡≡::/ ヽ≡ヽ≡::|―、≡≡::l ..|≡::|   /    ミ              1´/ヽ==,...
::≡≡≡|   \≡ヽ::|  ヽ≡≡l  .ljヽl  |   刀、ミ           _,,,..-`‐三=ー-
::≡≡≡|    |ヽ/ー.、.. ヽ≡≡l.  .|/  |  ノ= ∠i         /ヽ、≡≡≡≡≡
:|¬、≡≡ヽ.  |≡ゞー=ッ  |≡≡|   __/ (ll ー゜\|ヽ.       /≡::ヽ≡≡≡≡≡
:|  ヽ≡≡ヽ |≡≡ヽミ.   |≡≡|  l|. ll7| ヽu=/l二ll二l'''ヽ  /≡:::/≡≡≡≡≡
:|   ヽ≡≡ヽ≡≡|     |≡≡|  | | llヽ|w-ヽ/Nヽll  |  | /≡:::/≡≡≡≡≡≡




ちなみにIDを変えるとパスワードも変わるプログラムです。