パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

auのW42CAとW42Hが%nと%Sの文字列で強制再起動」記事へのコメント

  • こういうのかな。
    int xxx_func(...){
       char *str;
     
       str = (char *)malloc(sizeof(char) * x);
     
       (strに文字が入る処理)
     
       printf(str);
     
       return ret;
    }
    まあ、ここまで来ていれば次のようにするだけでOKなんですが...
      printf("%s",str);
    どっかしらに入りそうではありますねぇ

    # printf Injectionとでも言うのだろうか
    --
    M-FalconSky (暑いか寒い)
    • このバグが話題になった時(最初は2chのW42CAスレか?)
      さっそく%nで自分の携帯が再起動することを確認しつつ
      すぐに%dとか%sとかのprintfな識別子を試したんですが
      こっちはまったく問題ありませんでした。

      うーん、謎。どういうサニタイジングしてるんだろ?
      • サニタイズ?? (スコア:1, 参考になる)

        by Anonymous Coward
        いやだから、サニタイズなんてしてないんだってば。
        format string脆弱性はどんな文字列でも発動するわけじゃないんだって。
        「%n」はスタックに書き込む機能だから攻撃に使われる。

        ちなみに、対策が「%をサニタイズすること」とか
        「%をエスケープすること」ってのは大間違いなので
        勘違いしないように。
        正しくは sprintf(var) を sprintf("%s", var) にすること。

        参考:JPCERT/CCの判断力も蝕む サニタイズ脳の恐怖 [takagi-hiromitsu.jp]

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

処理中...