Skip to content

Instantly share code, notes, and snippets.

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

要約

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

対策

@mala
mala / app.js
Last active Apr 26, 2017
markdownで書かれた複数のスライドをwebsocketで同期して表示するやつ
View app.js
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) {
View gist:92e60ca794284304b6383bb2a2019db2
拡張機能、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時間以上) 経過した後に有効化されています。
@mala
mala / a.md
Last active Jun 30, 2020
Chrome ExtensionのLive HTTP Headersの調査(CoolBar.Pro導入 Extensionが何を行うかの調査)
View a.md

Chrome ExtensionのLive HTTP Headersを調査した。Firefox用のものではない。Firefox用のものではない。

11/7追記

English version: https://translate.google.com/translate?sl=ja&tl=en&js=y&prev=_t&hl=ja&ie=UTF-8&u=https%3A%2F%2Fgist.github.com%2Fmala%2Fe87973df5029d96c9269d9431fcef5cb&edit-text=&act=url

Summary in english.

@mala
mala / 0.md
Last active May 20, 2020
Vulnerabilities related to url parser, etc / shibuya.xss #8
View 0.md
@mala
mala / cors_killer.js
Last active Nov 4, 2016
responseURLに対応していないライブラリを使っているときにクロスドメイン通信を無理やり止める
View cors_killer.js
// responseURLに対応していないライブラリを使っているときにクロスドメイン通信を無理やり止める
// https://github.com/jquery/jquery/pull/1615
// responseURL
// https://bugzilla.mozilla.org/show_bug.cgi?id=998076
// https://bugs.chromium.org/p/chromium/issues/detail?id=377583
// https://bugs.webkit.org/show_bug.cgi?id=136938
new function(){
@mala
mala / gist:457a25650950d4daf4144f98159802cc
Last active Sep 28, 2016
CVE-2016-7401 CSRF protection bypass on a site with Google Analytics の解説
View gist:457a25650950d4daf4144f98159802cc

CVE-2016-7401

多くのcookie parserは、pairsの区切りとして ; と , を許容しているのでdjango以外にも影響がある。 ブラウザが使用するcookie pairの区切りは実際には ;

View gist:4c45169891302e8d4a970fb4ad13134e
プライバシーとはデータ自体の公開、非公開の制御ではない。
- データ自体の公開、非公開には大した意味がなく、リンクこそが情報の本質である
- 自己に関する情報のコントロールが失われることが、プライバシーの侵害である
1. データ自体が秘密の情報ではない
情報の性質
- 明確に本人以外には秘密にしなければならないもの → 例: パスワード
- 住所 → 単体では単なる文字列、住民基本台帳調べれば出てくる、その土地に実際に行けば調べられる
@mala
mala / gist:f33c9654af5e06e8bca9
Last active Nov 15, 2016
クライアントサイドでガチャ
View gist:f33c9654af5e06e8bca9

目的

  • サーバー側でガチャのアイテムを選択すると確率操作している疑いがかかるので、事前に提示した確率から変更が出来ず疑いが掛からないような方式を提案する
  • サーバー側でもクライアント側でも不正が出来ないことが要件として求められる
  • 簡便なアルゴリズムで一般市民にも理解しやすく、また、解析によるアルゴリズムの把握が容易であることが望ましい

かんがえかた

これ相当のことを、サーバーとクライアントでやればいい。

You can’t perform that action at this time.