アカウント名:
パスワード:
int xxx_func(...){ char *str; str = (char *)malloc(sizeof(char) * x); (strに文字が入る処理) printf(str); return ret;}
printf("%s",str);
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
よくやっちゃうんだよね (スコア:5, 参考になる)
# printf Injectionとでも言うのだろうか
M-FalconSky (暑いか寒い)
Re:よくやっちゃうんだよね (スコア:0)
さっそく%nで自分の携帯が再起動することを確認しつつ
すぐに%dとか%sとかのprintfな識別子を試したんですが
こっちはまったく問題ありませんでした。
うーん、謎。どういうサニタイジングしてるんだろ?
Re:よくやっちゃうんだよね (スコア:0)
あと、このふたつは直接ポインタを参照するからふっとぶんじゃなかろか。ポインタでミスると即リセットとは、DOS時代のようだ。
Re:よくやっちゃうんだよね (スコア:0)
いや、だから「どういうサニタイジングしてるんだろう?」と。
個別にサニタイジングするより「%」をエスケープしたほうが手っ取り早い上に確実だと思うのだけど…。
>あと、このふたつは直接ポインタを参照するからふっとぶんじゃなかろか。
「%S」と同意味のはずの「%ls」は影響ナシです。ふしぎふしぎ。