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

byte-by-byte bruteforceによるSSP回避

「Improper Null Terminationを利用したSSP回避」では、stack canaryの先頭にあるNULLバイトを上書きすることでcanaryの読み出しを行った。 この方法のほかにも、ネットワークサーバがforkサーバとして実装されている場合、1バイトごとのブルートフォースでc…

Web Speech APIでWebサイトをヨドバシカメラにする

http://jsfiddle.net/yemS9/ Google Chrome 33以降またはSafari 7.0でアクセスすると、店内アナウンスが流れる。 var chineses = [ "亲爱的顾客朋友,你们好。", "衷心欢迎您光临友都八喜。", "友都八喜是日本著名的大型购物中心。", "精明商品将近一百万种…

use-after-freeによるC++ vtable overwriteをやってみる

一つ前のエントリではuse-after-freeによるGOT overwriteを行ったが、C++におけるvtable overwriteもヒープオーバーフローの場合と同様に行うことができる。 ここでは、use-after-freeによるC++ vtable overwriteを行い、シェルを起動してみる。 またDEPが有…

use-after-freeによるGOT overwriteをやってみる

ヒープ領域に関連する脆弱性には、ヒープオーバーフローのほかにuse-after-freeと呼ばれるものがある。 これは、意図しない条件分岐などから発生するプログラムの不整合により解放済みのヒープメモリアドレスが参照される状況が存在する場合、任意のコード実…

Improper Null Terminationを利用したSSP回避

スタックバッファオーバーフローを防ぐセキュリティ機構の一つに、SSPがある。 SSPを有効にすると、関数の呼び出し時にスタックにcanaryと呼ばれる値が置かれ、これが書き換えられたとき強制終了するようになる。 しかし、何らかの方法でcanaryの値が知るこ…

「CRYPT+YOU, UNDERSTAND TODAY!」というタイトルでプレゼンした

Security Casual Talks 2014#2 - すみだセキュリティ勉強会 代表的な暗号アルゴリズムとそれらに関連するトピックについて話した。 CRYPT+YOU, UNDERSTAND TODAY! from inaz2 タイトルの元ネタはもちろんJava。勉強会自体が今回はわりと盛況だった。 次はあ…