タグ

securityに関するtaka222のブックマーク (7)

  • PHP :: Bug #49785 :: htmlspecialchars() should check byte sequence more strictly

    Strings related Bug Reported by hello@... Tue, 06 Oct 2009 11:40:05 +0000 PHP: 5.3.0, OS: * Description: ------------ Suppose htmlspecialchars() should check byte sequence more strictly for security reasons. An XSS exploit code has been unveiled. http://d.hatena.ne.jp/t_komura/20091004/1254665511 [ja] I wrote a primitive patch. http://iwamot.com/misc/html.c.patch.20091006 I don't know whether it i

  • 23. 関数とバイナリセーフ

    関数の中にはバイナリデータを正しく扱うことが出来る関数(バイナリセーフ)とそうではない関数があります。これを把握しておかないと、思わぬところでバグを発生させかねません。今回はその中でも正規表現によるマッチングに焦点を当てます。 正規表現によるマッチング関数にpreg_matchとeregがあります。前者はPerl互換 性、後者はPHPのPOSIX互換性正規表現関数です。これらは入力値をフィルターす るときにしばしば用いられます。しかし、eregには落とし穴が存在します。 その落とし穴とは「ereg関数はバイナリセーフではない」ということです。例え ば、ユーザ入力をフィルタリングするスクリプトを考えてみましょう。 if (ereg('^[0-9A-Za-z_]+$', $_POST['login_id'])) { // 正しい入力に対する処理 } ここでの目的はポストされたlogin_idが

    23. 関数とバイナリセーフ
  • Shift_JISを利用することの是非 - ockeghem's blog

    前回に引き続き、はじめてのPHPプログラミング 基編5.3対応のゆるいところ第二段は、文字エンコーディングについてだ。 書は、文字エンコーディングとしてShift_JISを採用している。しかし、家から配布されているWindows用バイナリのPHP処理系は、「--enable-zend-multibyte」というオプションが設定されていないため、2バイト目が0x5Cで終わる文字が正しく扱えない。このため、以下のPHPスクリプトはエラーになる。いわゆる5C問題である。著者には、ブログのコメントとして確認した。 <?php $a = "表"; ?> 文字列リテラルを"表\"としてやればエラーは回避できるが、わずらわしいし、第一みっともない(前世紀のスクリプトみたいだ)。 やはり、ソースコードはEUC-JPかUTF-8で記述すべきだったと思う。前に取り上げたPHP×携帯サイト デベロッパーズ

  • ホワイトリストと出力

    (Last Updated On: 2018年6月12日)先週末、まっちゃ445というセキュリティ勉強会にお呼び頂きました。未修正のPHP4/5の脆弱性やパネルディスカッションのパネラーとして話をさせて頂きました。関係者の皆様、いろいろ参考になりました。ありがとうございました。 この勉強会の主題の一つがWeb Application Firewall(WAF)でした。パネルディスカッションのテーマもWAFでした。進行役にはサイバー大学の園田さん、パネラーにはサーボーズラボの竹迫さん、HASHコンサルティングの徳丸さん、そして私の4人でパネルディスカッションを行いました。 3人ともWAFの効用や限界に意見の相違はなかったのですが、私と徳丸さんにはシステム開発に於けるブラックリストとホワイトリストの使い方には意見の相違があったと思います。うまく議論をまとめられなかったのでブログに書きます。 追

    ホワイトリストと出力
  • 楽天のメルマガ個人情報流出問題の犯人を推理する (ラボブログ)

    ラボ神部です。 今日、楽天市場のメルマガ登録確認画面から個人情報が流出しているらしいという話が話題になっていますが、流出経路が何とも不可解。そこで、可能性をいくつか挙げてみて、下手な推理をしてみようかと思います。 そもそもの原因は そもそもの原因は、Google のロボットのように、メルマガの来のセッション所有者以外が、メルマガ登録の画面遷移の跡をたどっているところにあります。 URL で言うと https://emagazine.rakuten.co.jp/ns?act=chg_rmail_delete_conf&k= の act= のあとがコマンド、k= のあとの部分がセッション ID になっているのは明らかです。楽天がどのようなプラットフォームの上で動いているのかわかりませんが、PHP なら php.ini で session.use_trans_sid オプションを ON にする

  • preg_replaceによるコード実行 - T.Teradaの日記

    最近少し調べていたのが、PHPの任意コード実行系の脆弱性です。中でも、preg_replace関数(Perl互換の正規表現による置換を行なうための関数)を不適切な方法で使った場合に発生する脆弱性について調べていました。 せっかくなので、日記にまとめてみます。 3種類の脆弱性 preg_replace関数を使ったPHPコード実行系の脆弱性には、大きく分けて3つの種類があります。 第一引数への挿入を許す e修飾子付き・第二引数への挿入を許す e修飾子付き・第三引数への挿入を許す 以下でそれぞれについて見ていきます。 タイプ1:第一引数への挿入 以下のコードに、任意のPHPコードが実行可能な脆弱性があります。 $m = preg_replace("/([^<]*)$kw([^>]*)/i", "\\1<font color=red>$kw</font>\\2", $m); $kwと$mは外部から

    preg_replaceによるコード実行 - T.Teradaの日記
  • PHP/脆弱性リスト/メモ - yohgaki's wiki

    なんだかやけに長い説明ばかり検索に引っかかったので書きました。 Linuxのローカル環境でDockerコンテナ内のXアプリ(GUIアプリ)を利用するには $ xhost localhost + を実行した後に $ docker run --rm --net host -e "DISPLAY" container_image_name x_app_binary_path とすれば良いです。 もっと読む SSHなどよく知られたサービスポートで何も対策せずにいると数えきらないくらいの攻撃リクエストが来ます。不必要なログを増やしてリソースを無駄にし、もし不用意なユーザーやシステムがあると攻撃に成功する場合もあります。 SshguardはC作られており、flex/bisonのパーサールールを足せば拡張できますがカスタム版をメンテナンスするのも面倒です。必要なルールを足してプルリクエストを送ってもマー

    PHP/脆弱性リスト/メモ - yohgaki's wiki
  • 1