Skip to content

Instantly share code, notes, and snippets.

@mala
mala / app.js
Last active April 26, 2017 01:11
markdownで書かれた複数のスライドをwebsocketで同期して表示するやつ
var express = require("express");
var app = express();
var expressWs = require('express-ws')(app);
app.use(express.static(__dirname + '/public'));
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
app.ws('/state', function(ws, req) {
ws.on('message', function(msg) {
@mala
mala / o.md
Created April 21, 2017 05:25
Orarioについての雑感

調べたこと

通信をキャプチャして調べた。似たようなことをしている人が既にいて仕組みについてはサービス提供者側が説明されているとおりだった。

IDパスワードはネイティブUIで表示して、html中のどこに入力するかなどはリモートから受信するjsで定義している。特に難読化や独自の暗号化などがされているわけではない。

@mala
mala / gist:82074a542d703247a481
Created August 5, 2014 02:47
Storableからの任意コード実行脆弱性についての調査

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

概要

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

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

@mala
mala / autofill_ui.md
Last active January 19, 2017 07:02
暮らしに役立つITコラム ChromeやSafariの自動入力機能が、なぜ「悪いデザイン」なのか

見た目の上で、隠されているフィールドに対しても自動入力してしまうという問題が話題になっている(2017年1月)

のだけれど、この問題の歴史はとても古い。自分も調査したり問題を報告したりしているので、振り返ってみる。

2012年の話

2012年4月のShibuya.XSS #1 https://atnd.org/events/25689 で、Hamachiya2が発表した

@mala
mala / 00.md
Created December 9, 2016 02:31
サンドボックスドメイン上に書き込まれたcookieを使ったWeb訪問履歴漏洩やfingerprintingについて

要約

  • サンドボックスドメイン上に記録されたcookieを使って、ユーザーの限定的な訪問履歴を取得したり、検索キーワードを取得することが可能です。
  • 検索エンジンや翻訳サービスなどで、他のサイトのコンテンツをproxyして表示する機能があると、単独では問題がないJavaScriptによるcookieを読み書きするコードが、同一のdomain上で実行されることになり影響が大きくなる場合があります。
  • 4年前に報告したものですが、今でも影響があり、多くのサービスは未対策または対策が不完全です。

対策

拡張機能、live http headers, http headersにポリシー違反の挙動があります。
https://gist.github.com/mala/e87973df5029d96c9269d9431fcef5cb
https://chrome.google.com/webstore/detail/live-http-headers/iaiioopjkcekapmldfgbebdclcnpgnlo
https://chrome.google.com/webstore/detail/http-headers/mhbpoeinkhpajikalhfpjjafpfgjnmgk
- 拡張機能の background js に対して、難読化されたscriptが埋め込まれています。
- webサイトに対して(chrome.tabs.executeScript) 外部のjsコードを挿入します。この機能はユーザーに対しては説明されていません。
- webサイトに対して実行されるscriptは、少なくとも広告やURLのtrackingが含まれています。サイトによって挙動が変わったり、後から変更される可能性があります。
- setTimeoutによって非常に長い時間(24時間以上) 経過した後に有効化されています。
プライバシーとはデータ自体の公開、非公開の制御ではない。
- データ自体の公開、非公開には大した意味がなく、リンクこそが情報の本質である
- 自己に関する情報のコントロールが失われることが、プライバシーの侵害である
1. データ自体が秘密の情報ではない
情報の性質
- 明確に本人以外には秘密にしなければならないもの → 例: パスワード
- 住所 → 単体では単なる文字列、住民基本台帳調べれば出てくる、その土地に実際に行けば調べられる
@mala
mala / yapcjapan2016_lt.md
Last active December 29, 2016 18:08
5分でわかる Perl and web security

5分でわかる Perl and web security

ma.la


CSRFとかXSSとか

  • CSRF: フレームワークの機能使って下さい
  • XSS: Xslateとか自動エスケープして下さい、jsの動的生成はするな
  • 終わり
@mala
mala / CVE-2013-4710.md
Created December 17, 2013 05:44
CVE-2013-4710 JVN#53768697 に関するメモ

CVE-2013-4710 JVN#53768697 に関するメモ

検証用URL

経緯と関連するリンク

@mala
mala / gist:ca1c55c1566fa49253fd
Last active December 29, 2016 18:07
HTMLパーサの挙動の違いに起因するXSS

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

自己紹介

概要

  • 解釈にブレが生じるHTMLを使ったXSS
  • 特にWYSIWYGエディタ上で起きるものが多い