/dev/null

脳みそのL1キャッシュ

2020-01-01から1年間の記事一覧

Unicode の等価性と正規化について

はじめに Unicode には見た目が同じで表現方法が複数ある文字があります。例えば、「で」ひとつを取っても以下のように 2 つの表現方法があります。 $ python Python 3.8.2 (default, Apr 14 2020, 13:29:18) [Clang 11.0.3 (clang-1103.0.32.29)] on darwin…

コンテナイメージ脆弱性スキャンツールの Trivy を使ってみた

はじめに 私が携わってる案件では ECR, ECS (Fargate) を使っていますが、コンテナイメージの脆弱性スキャンをやろうと思い ECR Image scanning を使ってみたところ、スキャンが割と雑で悩んでいました。 そこで類似ツールの Trivy を使ってみたら解決できた…

TryHackMe をやってみた

はじめに 最近、Hack The Box やら TryHackMe が流行っていたり、OSCP を取りましたという報告を Twitter で見かけたりして、ペネトレーションテスト界隈が熱いと感じております。そんな中で、セキュリティに興味があると言っておきながら、どれもやっていな…

「Linuxで動かしながら学ぶTCP/IPネットワーク入門」はいいぞという話

はじめに こやつを読みました。 www.amazon.co.jp 前から気にはなっていて、Kindle Unlimited で読めることがわかったので、1 日かけて(実際は 3 時間程度)読んでみました。 どんな内容か 基本的には Linux の Network Namespace という機能を使って、分離…

TIL: This week I Learned

はじめに 今週最大の知見は、Laravel でテストを書くとき、data provider 内にはファサードやヘルパ関数が一切使えないという事実。 TIL PHP Laravel でテストでサービスコンテナが作られるタイミングと注意すべきこと Python copy と deepcopy について uni…

TIL: This week I Learned

はじめに 今週は Infra と CTF week だった。 TIL Apache のバージョンを隠す serverless framework で CloudWatch Logs にログを吐く lambda function を作る serverless framework で Python のパッケージをインストールしてデプロイしたい Buffer Overflo…

C++ の vtable による動的ディスパッチ

はじめに まず、以下のコードを見てほしい。 // g++ vtable.cpp -o vtable -no-pie #include <iostream> #include <cstdio> using namespace std; class Animal { public: int age; Animal(int age) : age(age) {} virtual void bark() = 0; }; class Cat : public Animal { pu</cstdio></iostream>…

TIL: This week I Learned

はじめに 今週も今週とて色々学んだのでまとめました。 TIL PHP の instanceof は親クラスもインターフェースもチェックできる Laravel で Notifiable なしで通知を送る Fetch API でレスポンスのステータスコードが 404 の場合に reject したい AWS SNS か…

TIL: This week I Learned

はじめに Today I Learned をはじめました。TIL は基本的には GItHub に書いていますが、週末にまとめてこっちにも書こうと思います。 TIL は tips を書きたいとき、ブログはがっつり書きたいとき、的な使い分けをしたいと思います。 TIL Laravel8 でも afte…

CORSについて勉強する

はじめに CORS とは Cross Origin Resource Sharing の略で、クロスオリジンでのリソース共有を可能にする仕組みです。僕はこれまでふんわりとしか CORS のことを認識していなくて、いざ CORS を有効にしてくださいって言われてもどうすればいいのかわかりま…

Python の仮引数で指定できる / と * の意味

はじめに 以下は valid な Python コードなのですが、仮引数リストにある/と*の役割わかりますか? 僕はわかりません。さっぱり動作が想像できなかったので調べてみました。 def func(a, b, /, c, d, *, e, f): print(a, b, c, d, e, f) TL;DR def func(a, b…

Pythonでポートスキャナを作る

はじめに 最近仕事中の雑談で、TCP/IP の勉強として何を作ればいいのかという話になったが、ポートスキャナがいいのではという意見が挙がりました。そういえば、自分はポートスキャナを使ったことはあったが、作ったことはなかったので、これを期に自分で作…

DBスキーマをGitHubで管理したい

はじめに 開発の途中で、DBの構造がころころ変わるのはよくあることです。構造を変えるたびにレビューが必要な場合は、GitHubでDBスキーマを管理できると便利ですよね。DBスキーマがテキストファイル形式であり、DBスキーマからERDを生成するビジュアライザ…

PHPのOPcacheについて調べた

はじめに ふと、PHPのOPcacheってどういう実装になってるんだろと思ったので調べてみることにしました。具体的には、いつ、何を、どこに、どんな形で、キャッシュし、いつキャッシュを使うのかについて調べました。 なお、今回の調査に用いたPHPのバージョン…

Google CTF 2020 - Write-up

はじめに 2020/08/22~2020/08/24の間に開催されていたGoogle CTF 2020にチームTomatosaladとして出場しました。今回は3人で参加し、 4問解いて163位でした。 reversing問 BEGINNER ELFバイナリを解析する問題です。main 関数の中は以下のようになっています…

【小ネタ】GitHub のコミット履歴とかプルリクで表示されている日時をわかりやすくしたい

はじめに GitHub のコミット履歴って yesterday とか 2 days ago のように表示されますよね。見てる時点での日時から逆算すればいつかはわかるんですが、一考してしまいます。 これを、YYYY-MM-DD hh:mm:ss にしたらもっとわかりやすいのになー ということで…

Pythonでサブモジュールを自動でインポートする

はじめに CTF用のライブラリを書いてるときに生じた問題について書きます。 問題 Pythonでライブラリを書くとき、そのライブラリの使い心地を考えると思います。例えば、自作ライブラリでutilモジュールを作っていたとしましょう。 utilモジュール以下には複…

TSG CTF 2020 write-up

はじめに 2020/7/11〜2020/7/12に開催されたTSG CTF 2020にチームTomatosaladとして参加しました。結果としてはWelcome問を除いて2問解いて、順位は52位でした。 ぶっちゃけ難しかったです。解けなかった問題を復習しないとなー… はじめに Beginner's Web 問…

poetryでpythonの依存関係管理

はじめに 今まで自分はPythonでライブラリ、CLIツールを書く場合、大抵はpipとrequirements.txtで依存管理していましたが、なんだか界隈ではPipenvとかpoetryとかが流行っているのでこの流れに乗っておこうと思います。 選択肢としてPipenvとpoetryがありま…

redpwnCTF 2020 write-up

はじめに redpwnCTF 2020というCTFに1週間出ていたので、そこで解いた問題のwrite-upを書いていこうと思います。 CTFの結果は167/1494位でした。まあまあ、悪くはないけど良くもない感じです…欲を言えば100位以内に入りたかったですね… 解いた問題は全部で19…

symfony/consoleを使ってPHPでCLIを書いてみる

はじめに 前回は素のPHPでCLIツールを書いてみたのですが、如何せんしょぼい…なので、今回はsymfony/consoleというライブラリを使って、リッチなCLIツールを書いてみたいと思います。 今回の成果物はここにあります。 symfony/consoleとは symfony/consoleは…

Rustの文字と文字列について

はじめに Rustの文字、文字列型(char, String, str)についてよく理解していなかったので調べてみました。 char型 文字型です。Rustの文字型は1バイトを表す型ではなく、Unicodeスカラー値1つを表す型です。なので、日本語のかな文字のような文字も表現する…

練習のためにRustで簡単なシェルを書いた感想

はじめに 過去に挫折経験があるRustですが、最近また勉強をはじめました。実践Rust入門という本を読みながら勉強していましたが、本を読むだけじゃ身につかない気がしたので、練習でシェルを書いてみました。 成果物は以下にあります。 github.com 機能 fork…

SECCON Beginners CTF 2020 Writeup

はじめに 2020/05/23 14:00から2020/05/24 14:00まで開催されていたSECCON Beginners CTF 2020にチームTomatosaladとして参加しました。 www.seccon.jp 最終順位は30位でした。Welcome問を解いたチームの数が962なので、その中での30位は個人的には満足のい…

picoCTF2019でpwn練習: leap-frog

はじめに picoCTF2019というセキュリティの知識が問われるコンテストがあるのですが、問題がとても教育的なので解いてて楽しいです。 このコンテストは2019年9月27日~2019年10月11日の間に開催されていたらしいですが、 今現在も問題サーバが生きています。…

PHPでCLIツールを書いてみる

はじめに 誰得だが、あまりPHPでCLIツールを書く記事が見つからなかったので書いてみました。本記事では、以下の3種類のCLIツールを書いてみます。 コマンドライン引数で受け取ったファイルの中身を出力(catコマンドもどき) コマンドライン引数で受け取っ…

位置独立実行形式(PIE)によって確保できるエントロピー(32bitの場合)

はじめに 実行ファイルを位置独立実行形式(PIE: Position Independent Code)にすると、実行ファイルは位置独立となり、任意のメモリアドレスにロードできるようになる。このため、PIEな実行ファイルをロードするアドレスをランダム化することによって、ROPな…

Python3でprint("\xff")が0xffを出力しない件について

はじめに 何もわからなくて、キレそう。勢いにまかせて書いたので特にまとまっていない。 print("\xff")が0xffを出力しない なにはともあれこれを見てくれ。 $ python --version Python 2.7.16 $ python -c 'print("\xff")' | xxd 00000000: ff0a ... これは…

DockerでLaravelの開発環境を整える

はじめに Laravelの開発環境を作らないといけなくなったんですけど、環境構築でPC内を汚したくない… ということで、Dockerの勉強がてら、Laravelの環境構築をDockerでやってみました。 成果物はこちらです。 変更履歴 2020/4/24 PHP7.2はアクティブサポート…

NetBSDのNVMMを使ってみる

NetBSD 9.0からはNVMMというハイパバイザーを利用できるようになった1.今のところ,NVMMはIntel VT-xやAMD-Vなどのハードウェア仮想化支援機能がある環境で動作するらしい.LinuxでいうKVM的な立ち位置だと思う. NVMMの有効化 デフォルトでは有効化されて…