簡易 strace を作ってシステムコールを表示する

いつまで経っても親知らずが人間から失われないの、歯医者業界との癒着か? strace は ptrace(2) でプロセスを監視することで呼び出されるシステムコールとその引数を表示している。 ここでは簡易的な strace を作成してシステムコールを表示してみる。 どのようにシステムコールを追いかけるか 今回は任意のプロセスにアタッチするのではなく、引数として与えた文字列を execvp してシス...

PHP Extension を作って関数をフックしてみる

夏休みに観る Netflix オススメ映画を募集しています。 PHP Extension で sha1() をフックして引数を表示するところまでやってみたのでメモ。 1. PHP Extension を作る準備 PHPのソースコード一式を落としてきてコンパイルする。 $ cd php7.2.8 $ ./configure $ make ext_skel を使うことでテンプレートが生成される。 -...

ipynb's XSS Vulnerability on Bitbucket

One day, I found that could render Jupyter Notebook on bitbucket. I have found the Jupyter Notebook(ipynb)’s XSS on GitLab. So, I searched for bitbucket thought that it had a similar vulnerabili...

CVE-2018-7160 と Chrome DevTools Protocol のメモ

機動戦士ガンダムユニコーン RE:0096を視聴したところ、感化されて Aimer を聴きながらユニコーンのガンプラを作って大変満足している。 Node.js の inspector モードで DNS Rebinding を利用した RCE (CVE-2018-7160) がどのようなものなのか手元で確認してみたのでメモ。 メモなのでかなり殴り書き。 Chrome DevTools Protoc...

Docker Remote APIを安全に利用する

Oculus Go で目がヤバ。 概要 Docker には REST API があって、クライアントはそれを通してDockerを自在に操作できる。 「開発環境だから…」という気持ちで dockerd -H tcp://0.0.0.0:2376 みたいに動作させると、悪意あるサイトを閲覧するだけでコンテナの Shell が取られるみたいなことが発生するので、開発環境でも証明書を使った認...

このブログにCSPを適用した

はい。今日も一日エアコンが臭い。 自分以外の人間がこのブログに任意の文字列を挿入することはできないし、できたとしても、さして脅威はないのだけれど、何となくCSP(Conent-Security-Policy)を適用した。 CSPの適用 とりあえずシュッとできる <meta> に設定した。 手順としては default-src 'self' から始めて、何が読み込めていないかDevToo...

proxysqlのクエリログのバイナリを読む

proxysqlは通過したクエリをログとして残すことができる。 Query Logging · sysown/proxysql Wiki このログの実体はバイナリで、 proxysql に付属している tools/eventslog_reader_sample.cpp で読むことができる。 $ file queries.log queries.log: data $ tools/eventsl...