こんにちは。 葬送のフリーレン 3 期がはじまりますね。
今回は以前作った Rust の CNI Plugin ライブラリ rscni を大幅に改修したので再度紹介します。
[Read More]こんにちは。
葬送のフリーレンのアニメが終了して途方に暮れています。 いいアニメでした。 続編に期待しています。
今回はしばらく趣味で開発している Kubernetes 用の CNI plugin とネットワークロードバランサ sart を紹介します。
リポジトリはこちらになります。 すべて Rust で実装しています。(e2e テストだけ Go 言語の Ginkgo を使っています。)
荒削りなソフトウェアですが、動かしてみたりスターをもらえると喜びます。(バグがたくさんありそう)
また、開発中のプロジェクトなので API の仕様が変更になる可能性は大いにあります。
[Read More]こんにちは。 葬送のフリーレンが2クール連続で歓喜しています。
今回はRust用のCNI Pluginライブラリを作って公開したので紹介します。
rscniという名前でGithub及びCrates.ioに公開しています。
ご興味のある方は使ってみてください。
バグ報告お待ちしています。
お久しぶりです。 3 月のライオンの 17 巻が発売されたので早速読みました。 非常に良かったですね。
今回は Cilium の新しい機能である BGP Control Plane を動かすついでに Containerlab にも入門しました。
[Read More]こんにちは.閃光のハサウェイが配信開始されたので早速視聴しました.メッサーがいいですね.
前回もXDP関連の話題でしたが,今回はXDPに入門します. XDPを学習する際のロードマップやつまりどころの解消になればと思います.
本記事を公開して約 2 年が経過しました. この加筆で古くなってしまった情報を修正しています. 差分は このブログの Github の PR を見てください.
この 2 年間で eBPF 及び XDP への注目はさらに高まったように感じます. 取得できる情報も充実してきました. 特に O’reilly より発売された 入門 eBPF(原書: Learning eBPF) は非常に充実した内容になっています. 日本語でこれらの情報に触れられるようになったことは大変ありがたいです.
2023 年は個人的にも XDP に関して新たに発展的なコンテンツを作成しました.
そちらも触っていただければと思います.
[Read More]こんにちは.学生生活も後少しとなってしまいました.悲しいです. 今回はxdpcapというツールについてです.xdpcapの使用に関する資料が日本語では非常に少なかったので使い方を紹介します.
[Read More]こんにちは.12月に入り非常に寒い日々が続いています.個人的には10月から続いていたセキュリティキャンプが一段落して少し余裕が出てきました. また,この記事はSecHack365 Advent Calendar 2020の記事として書いています. 今回は趣味で開発しているツールを紹介します.
[Read More]こんにちは.大学院の後期授業も開始され,さらに多数イベントが同時並行で開催されており非常に忙しい日々を過ごしています.最近は将棋の勉強にも精を出しています.弱いですが. 今回はXDPが実行できるVMをVagrantで作ります. 先日GMOペパボさんのeBPFインターンシップに参加させていただいて以降eBPF関連の技術に興味を持っておりXDPに手を出してみます.
[Read More]こんにちは.最近は学校の課題や事務手続きやらインターンどうしようかやらで非常に忙しいです.それに加えてSecHack365に参加することとなりこれはうれしい悲鳴ですがさらに忙しいです.(嬉しい) さて今回はSoftEtherについてです.学生などにはあまり馴染みがなさげなソフトですが,僕は研究でこのソフトに非常にお世話になっております.このソフトウェアはとてもすごいんですが,マネージャーソフトがwindows用しかなくてCUIベースの操作が大変なのでWebベースのマネージャーを作ろうと思い立ちました.そこでまずGo言語でAPIのラッパーを作成しました.
[Read More]こんにちは.福岡では緊急事態宣言は解除されましたが授業もアルバイト,ゼミもリモートのため相変わらず外出しない生活を送っています.
ctf4bに大学の研究室のメンバーで参加してきました.昨年は全く手が出ませんでしたが今年は結構楽しくCTFができました.(解けたとは言ってない.)
得意分野と言える分野もないので雑食でいろいろな分野を覗いてました.
僕はreadme,beginner's stack,tweetstoreをときました.また,時間内にフラグは得られませんでしたが終了後に気づいたunzipも記載します.
(その他の問題も解けたら追記しようかな)
では,
https://www.seccon.jp/2019/seccon_beginners/seccon_beginners_ctf_2020_5_23_1400.html
pwnのelementary stackについてポストしました.
Miscの問題です.問題サーバで動いているコードが配布されます.
#!/usr/bin/env python3
import os
assert os.path.isfile('/home/ctf/flag') # readme
if __name__ == '__main__':
path = input("File: ")
if not os.path.exists(path):
exit("[-] File not found")
if not os.path.isfile(path):
exit("[-] Not a file")
if '/' != path[0]:
exit("[-] Use absolute path")
if 'ctf' in path:
exit("[-] Path not allowed")
try:
print(open(path, 'r').read())
except:
exit("[-] Permission denied")
ncコマンドでサーバに接続するとFile: と出てきてパスを入力します./home/ctf/flagを開くことができればフラグが得られそうです.
しかし.入力文字列にはいくつかの制限があります.
ctfという文字列が存在しない条件は以上です.
ctfが許されないので/home/ctf/flagは当然の如く失敗します.
ctfという文字列を使用せずにどの様にしてパスを取得するかがポイントです.
現在のプロセスが動いているカレントディレクトリを取得することができれば良さげです.
そこで登場するのが/procです.
/procファイルシステムは特殊なディレクトリでシステムの情報や動作しているプロセスの情報を取得することができます.
あるプロセスに関する情報が欲しい場合は/proc/[pid]を参照します.自身のプロセスの情報を得たい場合は/proc/selfです.
/procは面白いのでぜひいろいろ覗いてみてください.
さて,/proc/self/cwdがプロセス自身のカレントディレクトリへのシンボリックリンクとなっています.が,ここで/proc/self/cwdを入れてもファイルじゃないのでダメです.そこで,/proc/self/environを入力してみます.すると環境変数がいっぱい出てきます.その中にPWD=/home/ctf/serverが見つかりました.
このプロセスは/home/ctf/serverで動いてそうですね.