タグ

ブックマーク / hasegawa.hatenablog.com (26)

  • 安全な脆弱性の作り方 - 葉っぱ日記

    この記事は 「脆弱性"&'<<>\ Advent Calendar 2016」16日目の記事です。具体的な脆弱性の話でなくてすみません。いろいろコードを書いていると、安全に脆弱性を発生させたくなるときがあります。って書くとさっぱり意味がわからないと思いますが、セキュリティの講義のための演習環境とかそういうやつです。 受講生自身の手でWebアプリケーションの脆弱性を探してもらうような演習では、検査対象となる脆弱性を含むWebアプリケーションを用意する必要があります。こういった「脆弱なWebアプリケーション」は例えば Broken Web Applications Project のようなものを代表にいくつかのものがありますが、これらはUI英語であったり、あまりにもメジャーすぎて受講生も触っている可能性があったりと、場合によっては利用が難しいことがあります。特に、単一のWebサーバに対して複

    安全な脆弱性の作り方 - 葉っぱ日記
    Pasta-K
    Pasta-K 2016/12/18
  • Electronのwebview要素ではallowpopups属性をつけてはいけない - 葉っぱ日記

    Electronを使ってブラウザのようなアプリケーションを作る場合には webviewタグが使用される。例えば、アプリケーション内にexample.jpのサイトを表示するには以下のようにHTMLに記述する。 <webview src="http://example.jp/"></webview> ここで、webviewタグにallowpopups属性を付与すると、example.jpサイト内のコードからwindow.open等を使って新たにウィンドウを開くことができるようになる。このとき、example.jpに悪意があり以下のようなコードが含まれているとする。 if( typeof require === "undefined" ) window.open( 'http://example.jp/', '', 'nodeIntegration=1'); else require( "chi

    Electronのwebview要素ではallowpopups属性をつけてはいけない - 葉っぱ日記
    Pasta-K
    Pasta-K 2016/01/25
  • Electronでアプリを書く場合は、気合いと根性でXSSを発生させないようにしなければならない。 - 葉っぱ日記

    そのうちもう少しきちんと書きますが、とりあえず時間がないので結論だけ書くと、タイトルが全てでElectronでアプリを書く場合は気合いと根性でXSSを発生させないようにしなければならない。 これまでWebアプリケーション上でXSSが存在したとしても、影響範囲はそのWebアプリケーションの中に留まるので、Webアプリケーションの提供側がそれを許容するのであればXSSの存在に目をつむることもできた。しかし、ElectronアプリでDOM-based XSSが一か所でも発生すると、(おそらく)確実に任意コード実行へとつながり、利用者のPCの(そのユーザー権限での)全機能が攻撃者によって利用できる。 そのため、Electronでアプリケーションを作成する開発者は気合いと根性でXSSを完全につぶさなければならない。 nodeIntegration:falseやContent-Security-Pol

    Electronでアプリを書く場合は、気合いと根性でXSSを発生させないようにしなければならない。 - 葉っぱ日記
    Pasta-K
    Pasta-K 2015/12/25
  • JavaScriptでbaseを指定して相対URLを絶対URLに変換する - 葉っぱ日記

    メモがわり。 baseとなるURLを指定して相対URLを絶対URLに変換するには、ChromeやFireofxではURLUtilsを用いて以下のように書くことで簡単に実現できる。 var absolute = (new URL( "foo", "http://example.jp/bar/baz" ) ).href; // http://example.jp/bar/foo IEではURLコンストラクタはサポートされていないが、IE9以上ではDOMParserやcreateHTMLDocumentを使って現在のDOMとは分離したdocumentを生成し、その中に<base>要素を用いてbase URLを指定し、そのdocument内で<a>要素を用いて相対URLを絶対URLに変換するという手段によって相対URLを絶対URLに変換可能である。 function getAbsoluteUrl(

    JavaScriptでbaseを指定して相対URLを絶対URLに変換する - 葉っぱ日記
    Pasta-K
    Pasta-K 2015/12/05
  • ブラウザ上でMarkdownを安全に展開する - 葉っぱ日記

    不特定のユーザーが入力したMarkdownをブラウザ上でJavaScriptを使ってHTMLに変換するという場面においては、JavaScriptで変換してHTMLを生成するという処理の都合上どうしてもDOM-based XSSの発生を考えないわけにはいかない。かといって、MarkdownをパースしHTMLを生成するという処理すべてをXSSが存在しないように注意しながら自分で書くのも大変だし、markedやmarkdown-jsなどの既存の変換用のJSを持ってきてもそれらがXSSしないかを確認するのは結構大変だったりする。 そういった場合には、Markdownから生成されたHTMLをRickDOMを通すことで、万が一HTML内にJavaScriptが含まれていたとしてもそれらを除外し、許可された要素、許可された属性だけで構築された安全なHTMLに再構築することができる。さらに、そうやって生成

    ブラウザ上でMarkdownを安全に展開する - 葉っぱ日記
    Pasta-K
    Pasta-K 2015/01/31
  • 脆弱性"&'\ Advent Calendar 2014 (17日目) - 葉っぱ日記

    この記事は脆弱性"&'<<>\ Advent Calendar 2014の17日目の記事です。今日は少し昔話をしようと思います。がはは。 かつて、日TwitterのようなWassrというサービスがありました。当時、Twitterは数日に一度くらいはサービスが落ちていて、Twitterユーザーも「またか」と思いながら我慢して使うようなサービスであり、Twitterが落ちるたびにWassrはユーザーを増やすとともに、画像の添付のように当時Twitterにはまだなかった機能をどんどんアグレッシブに取り入れていく、使っていて楽しいサービスでした。 さて、そんなWassrがある日絵文字機能を導入しました。当時はUnicode絵文字もなくスマートフォンも普及しておらず、主にレガシーな携帯電話で使える絵文字をなんとかWeb上でも使えるようにしたという感じのものでした。 絵文字をパレットから選択すると

    脆弱性"&'\ Advent Calendar 2014 (17日目) - 葉っぱ日記
    Pasta-K
    Pasta-K 2014/12/17
    いいはなし
  • ファイアウォール内のサーバに対するShellshockを利用した攻撃 - 葉っぱ日記

    2014-09-27: 該当サイト上にXSSがなくても攻撃可能であることが id:mayuki さんのコメントで判明しましたので全面的に書き直しました。ファイアウォール内であっても攻撃者はファイアウォール内のShellshock攻撃が通用するCGIのURLがわかっているだけで攻撃可能ですので早急に対応が必要です!会社のブログにも書いてますが、ファイアウォール内に置いてあるサーバで攻撃者が直接アクセスできないからといってbashの更新を怠っていると、条件によっては攻撃が可能となります。 条件としては、 そのサーバにはシェルを経由して外部コマンドを起動するCGI等が動いている(通常のShellshockの攻撃と同条件) 攻撃者がそのURLを事前に知っている(あるいは推測可能) となります。 攻撃者は、ユーザーを罠URLへ誘導し、以下のようなJavaScriptを罠ページ上で動かし、攻撃対象のW

    ファイアウォール内のサーバに対するShellshockを利用した攻撃 - 葉っぱ日記
    Pasta-K
    Pasta-K 2014/09/26
  • ブラウザ内で安全に文字列からDOMを組み立てるためのRickDOMというライブラリを書いた - 葉っぱ日記

    RickDOM - ricking DOM elements safety from string https://github.com/hasegawayosuke/rickdom ブラウザ内のDOMParserあるいはcreatHTMLDocument APIを使って不活性なDOMを組み立てたのちに、必要な要素と属性、スタイルだけを切り出して複製しているので、原理的にDOM based XSSの発生を抑えることができます。 使いかたも簡単。 var rickdom = new RickDOM(); var container = document.getElementById( "container" ); var elements; var i; // read allowings property to show default rule // div.textContent =

    ブラウザ内で安全に文字列からDOMを組み立てるためのRickDOMというライブラリを書いた - 葉っぱ日記
    Pasta-K
    Pasta-K 2014/09/13
  • LINE株式会社 に行ってきた! - 葉っぱ日記

    台風一過!はせがわです。 というわけで、Shibuya.XSSの会場を快く貸してくださったLINE株式会社さんに行ってきた! サイボウズのバグハンター合宿で疲れた体を引きずりながら大勢で魔宮である渋谷駅を抜けヒカリエへ。 出迎えてくれたのはおなじみのコニー、ブラウン、ムーンをはじめとする愛らしいキャラクターの面々。 ジェームズとジェシカもお出迎え。 見晴しのいい窓際にも。 遠くには夕焼けの富士山も見える! 大量のレッドブルを前にご満悦の941さん。 というわけで、夜遅くのグデグデな勉強会なのに快く会場をお貸しくださったLINE様、941さん、ありがとうございました! 雑なパクリ風味記事ですみません>< - ちなみに、Shibuya.XSS テクニカルトーク #5の内容や資料については、いつもどおり azu さんによる記事:Shibuya.XSS テクニカルトーク #5 アウトラインメモ |

    LINE株式会社 に行ってきた! - 葉っぱ日記
    Pasta-K
    Pasta-K 2014/08/11
  • 5分でテンションを上げる方法 - 葉っぱ日記

    ちょっとテンションを上げたくなる時ってありますよね!今日はそんなときに簡単にテンションをあげる方法をお伝えします! まず、PowerPoint(画像は2010)に適当な写真を張り付け 四角形を置き、写真と同じ大きさの四角形を置きます。 四角形の枠線を「なし」にし、「塗りつぶし」の図を先ほどの写真にします。これで同じ写真が2枚ならぶ恰好になります。 「図ツール 書式」から「背景の削除」を選び、顔と首を残し残りの背景を削除します。 顔パーツの「透過性」を40%くらいにします。 「図ツール 書式」の「回転」で顔パーツを左右反転させ、位置を調整すれば完成! テンションあがってきたー!

    5分でテンションを上げる方法 - 葉っぱ日記
    Pasta-K
    Pasta-K 2014/02/21
  • 空前の脆弱性ハンティングブーム - 葉っぱ日記

    追記:このエントリーは以下の記事を極限までに参考にさせて頂きました。いつも著作権フリーでコピー改変OKな記事の提供ありがとうございます!それにしても、ほんとうに実力さえあればパクリだけでべていける時代なんですね! http://www.whitehackerz.jp/blog/?p=2245 自社製品やWebサイトの脆弱性を報告することで報奨金や謝辞が出るのは Google や Mozilla をはじめ海外では様々なものがありましたが、ここにきて日でもいよいよ脆弱性報告に報奨金を支払う著名サイトが出てきました。 脆弱性報告制度 << mixi Developer Center (ミクシィ デベロッパーセンター) 未知のXSSやSQLインジェクションなどの報告者に:ミクシィが「脆弱性報告制度」開始、報奨金も用意 - @IT サイボウズグループ | ニュース | サイボウズ、国内商用クラウ

    空前の脆弱性ハンティングブーム - 葉っぱ日記
    Pasta-K
    Pasta-K 2013/11/15
  • 楢葉町の思い出 - 葉っぱ日記

    ずいぶん前に、仕事で福島県の楢葉町というところに行ったことがあり、そのときにJヴィレッジのすぐそばにある柏屋旅館というところにお世話になった。楢葉町というところはとてもサッカーの盛んなところで、その旅館も少年サッカーチームが毎年合宿に来るということで、彼らがゆっくり宿泊できるようにと少し前に全面改装したところだったそうで、まだ木の香りの残るとてもきれいな旅館だった。旅館のおばちゃんは「これでサッカーチームが泊ってくれなかったら困るわ」と言いながらも誇らしげに笑顔を浮かべていた。とはいえ、僕が泊ったときには他にお客さんもいないようで、露天風呂付きの部屋でのんびりと過ごしたのだった。 旅館なのでもちろんのことながら朝、夕も付いてるわけで、白いご飯と焼き魚、名前もよくわからないような煮物や佃煮のような、ほんとうに台所でおばちゃんが作ってくれた手料理が出された。このときほど、和がおいしいと思

    楢葉町の思い出 - 葉っぱ日記
    Pasta-K
    Pasta-K 2013/03/30
    コメント欄…… インターネットだ……
  • XMLHttpRequestを使ったCSRF対策 - 葉っぱ日記

    合わせて読んでください:Flashと特定ブラウザの組み合わせでcross originでカスタムヘッダ付与が出来てしまう問題が未だに直っていない話 (2014-02/07) XMLHttpRequestを使うことで、Cookieやリファラ、hidden内のトークンを使用せずにシンプルにCSRF対策が行える。POSTするJavaScriptは以下の通り。(2013/03/04:コード一部修正) function post(){ var s = "mail=" + encodeURIComponent( document.getElementById("mail").value ) + "&msg=" + encodeURIComponent( document.getElementById("msg").value ); var xhr = new XMLHttpRequest(); xhr

    XMLHttpRequestを使ったCSRF対策 - 葉っぱ日記
    Pasta-K
    Pasta-K 2013/03/03
  • 退職のお知らせ - 葉っぱ日記

    昨日2012年3月31日をもってネットエージェント株式会社を退職しました。 2008年1月からでしたので4年と少しという長くはない期間でしたが、とても密度の高い時間を過ごせたと感じています。周りには、新卒で入って1年も経っていないのにバイナリの固まりを見るだけでそのなかに埋め込まれたデータを的確に目視で抽出するような人や、再現性が恐ろしく低くなかなか原因がわからなかったバグを退治する手伝いをお願いしたら、1時間もしないうちに「だいたい原因はわかりました。xxxという関数のバッファが1バイト足りていないんだと思いますが、ちゃんと確認したいのでソースコード見せて下さい」という返事を返してくるような気違いみたいなバイナリアンが多く、どれだけ学んでも自分なんて追いつけない圧倒的な劣等感を感じさせてくれる会社でした。 また、課長や部長といった管理職への昇進だけが昇給の道ではなく、技術面で優れた人材を

    退職のお知らせ - 葉っぱ日記
    Pasta-K
    Pasta-K 2012/04/01
  • 私はいかにして様々なブラウザの脆弱性を発見したか - 葉っぱ日記

    先日、Twitterでどのように脆弱性を見つけるかに興味あるんだろうかと書いたら、意外に色々な人から反応があったので、これまでに自分が見つけた脆弱性のいくつかについてどういう経緯で見つけたのかちょっと書いてみます。 JVN#89344424: 複数のメールクライアントソフトにおける、添付ファイルによりメールクライアントソフトが使用不能になる脆弱性 これは、添付ファイル名にUnicodeの円記号を含めておくと、メーラ側でShift_JISに変換する際にバックスラッシュに変換されてしまって想定外のディレクトリに添付ファイルが展開されてしまったり、あるいは「©on」のような名前のファイルを添付しておくことでShift_JISに変換してCONというファイルを開こうとしてメーラが固まってしまうという問題です。これは、私自身が文字コードの問題について調べ始めた初期段階で、Unicodeからの変換で問題

    私はいかにして様々なブラウザの脆弱性を発見したか - 葉っぱ日記
    Pasta-K
    Pasta-K 2011/07/31
    hasegawayosukeの頭の中。
  • ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記

    というわけで、昨日から話題沸騰の Javascript PC Emulator すごいですね。JavaScript で書かれた x86 PC エミュレータ上で Linux 動かして、入ってる tcc 使えばそこそこのソースもコンパイルして動いたり。 もとのディスク容量が少ないので、適当な母艦を用意して、こんな感じ で新しいディスクイメージ作って、CocProxy や Fiddler の AutoResponder を使って root.bin へのリクエストをローカルのファイルに差し替えてやれば、好きなファイルも入れられますね。 というわけで、SpiderMonkey を入れて動かしてみました。ブラウザ内でJavaScriptが動くなんてムネアツですね! 手順としては、コンパイルの簡単な SpiderMonkey 1.7 を x86 の32ビットマシンで -static 付きでビルドして、r

    ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記
    Pasta-K
    Pasta-K 2011/05/19
  • 1分でわかる「X-ナントカ」HTTPレスポンスヘッダ - 葉っぱ日記

    最近のモダンなWebブラウザがサポートしている、セキュリティに関連しそうな X- なHTTPレスポンスヘッダをまとめてみました。それ以外にもあったら教えてください。 X-XSS-Protection 0:XSSフィルタを無効にする。 1:XSSフィルタを有効にする。 XSSフィルタを有効にすることでエンドユーザがXSSの被害にあう可能性が低減するが、まれに誤検知することで画面の表示が乱れることもある。IE8+、Safari、Chrome(多分) で有効。IEでは「X-XSS-Protection: 1; mode=block」という指定も可能。 2008/7/2 - IE8 Security Part IV: The XSS FilterBug 27312 – [XSSAuditor] Add support for header X-XSS-Protection X-Content-Ty

    1分でわかる「X-ナントカ」HTTPレスポンスヘッダ - 葉っぱ日記
    Pasta-K
    Pasta-K 2011/01/10
  • 記号プログラミング Advent Calendar がアツい! - 葉っぱ日記

    id:TAKESAKO さんがネタで発した一言から始まった、記号プログラミング Advent Calendar が超盛り上がっています。 perl-users (JPerl) に間借りしてやってるくせに、Perlと関係なくても記号プログラミングならOKということで始めたんですが、これまでに投稿された記事は以下の通り。 2010-12-01(水) 記号プログラミングの第一歩は BrainF*ck 2010-12-02(木) PHPでも記号プログラミング! 2010-12-03(金) 記号だけのJavaScriptプログラミングの基原理 2010-12-04(土) Ruby1.8で学ぶ、簡単?!記号プログラミング 2010-12-05(日) 記号だけのPerlプログラミングの基原理 2010-12-06(月) J言語で記号プログラミング 2010-12-07(火) 86バイナリでも記号プロ

    記号プログラミング Advent Calendar がアツい! - 葉っぱ日記
    Pasta-K
    Pasta-K 2010/12/12
  • IE9 Beta のマイナーな変更点リスト - 葉っぱ日記

    Eric Lawrence さんから、IE9 Beta Minor Changes List - EricLaw's IEInternals - Site Home - MSDN Blogs の翻訳の許可をもらったので訳してみました。間違い等あれば教えてください。 ブラウザの各リリースにおいて我々が行う様々な機能の追加変更のほとんどは、IEBlog の投稿において読むことができます。しかしながら、我々は同時に、見落とされがちな、あるいはあまり広くは知られていないような多数の小さな改善も行っています。この記事では、それらの小さな改善のうち私が興味深いと考えるものについてピックアップしてみます。影響を与える改善点やこれまでにこのブログ上で議論された機能などは、BetterInIE9 を検索することにより見つかります。 もちろん、私が把握していない何千もの変更があるので、これを包括的なリストと誤

    Pasta-K
    Pasta-K 2010/09/23
  • セキュリティ&プログラミングキャンプのCTFで出題したXSS問題 - 葉っぱ日記

    難しすぎて解けないよ!と不満噴出だった問題。来年やるとしたら、ごっそり変更するので公開しちゃおう。 http://utf-8.jp/cgi-bin/xss1/search.cgi http://utf-8.jp/cgi-bin/xss2/search.cgi http://utf-8.jp/cgi-bin/xss3/search.cgi (追記) 回答例をキャンプ受講生の @tyage さんが書いてくれています。GJ! XSSメモ書き | チャゲってる日々

    セキュリティ&プログラミングキャンプのCTFで出題したXSS問題 - 葉っぱ日記
    Pasta-K
    Pasta-K 2010/08/27