2014-12-01から1ヶ月間の記事一覧

2014年11月、Elasticsearchの脆弱性(CVE-2014-3120)を狙った攻撃

tcp/9200に次のようなリクエストが来ていた。 GET /_search?source=%7B%22query%22%3A+%7B%22filtered%22%3A+%7B%22query%22%3A+%7B%22match_all%22%3A+%7B%7D%7D%7D%7D%2C+%22script_fields%22%3A+%7B%22exp%22%3A+%7B%22script%22%3A+%22import+java.util.…

コマンド入力中にman page / helpを見れるようにする

bind -xはコマンドラインの状態を保持したまま任意のコマンドを実行するキーバインドを定義する。 これを使うと、zshのrun-helpのような機能を実装することができる。 if [[ -n "$PS1" ]]; then bind -x '"\eh":"[[ -n $READLINE_LINE ]] && man ${READLINE_…

bash tips

きちんとまとめられた情報が少ないのでメモ。 bashの機能はemacsと共通する部分が多く、使われている用語やキーバインドも類似している。 以下で述べるキーバインドについて、C-xはCtrl+x、M-xはESC xまたはC-[ xを表す。 kill-ringを活用する bashにはkill-…

grepのようにfindする

findコマンドのオプション指定が面倒なので、grepのように使える、次のようなシェル関数を定義してみる。 if [[ -n "$PS1" ]]; then f() { find "${2:-.}" \! -type d \! -path "*/.*" -path "*$1*" |& grep -v -F ": Permission denied" | sort } fi このコ…

aliasとシェル関数の使い分け

aliasとシェル関数の違いについてのメモ。 たとえばgrepコマンドを常にロケール非依存にて扱い処理を高速化するにあたり、一見、次の二つの定義は同等に見える。 alias grep='LC_ALL=C grep --color=auto' grep() { LC_ALL=C command grep --color=auto "$@"…

安全に標準コマンドを置き換える

「cdの引数を絶対パスにしてコマンドヒストリに残す」のように標準コマンドを置き換える上で考えるべき、bashの仕組みについてのメモ。 環境 $ uname -a Linux vm-ubuntu64 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x8…

cdの引数を絶対パスにしてコマンドヒストリに残す

cdの引数が相対パスのままコマンドヒストリに残って便利な例が思いつかないので、絶対パスでコマンドヒストリに残すようにする。 具体的には、以下のシェル関数を.bashrcに書く。 if [[ -n "$PS1" ]]; then cd() { command cd "$@" local s=$? if [[ ($s -eq…

x64でのReturn-to-dl-resolve + __libc_csu_init gadgetsにfiniセクションを使う

「x64でROP stager + Return-to-dl-resolve + __libc_csu_init gadgetsによるASLR+DEP回避をやってみる」では、ASLR+DEPが有効なx64環境でReturn-to-dl-resolve + __libc_csu_init gadgetsを使ってシェル起動を行った。 この際、事前に固定アドレスにret命令…

x64で__libc_csu_init gadgetを使ったstack pivotをやってみる

「x64でDynamic ROP + Return-to-vulnによるASLR+DEP+RELRO回避をやってみる」では、leave命令がない実行ファイルに対してstack pivotを行わずに複数回のROPシーケンス実行を行った。 しかし、コンパイラによってはleave命令がない場合でも__libc_csu_init関…