タグ

curlに関するnagatomo-beautiful55のブックマーク (1)

  • 第1回 cURLの脆弱性 ~ヒープバッファオーバーフロー~ | gihyo.jp

    引数は6つありますが、ここで大事なのは、recvfrom関数ではソケットを通じてデータを受信する際に、第2引数で指定したバッファに対し、第3引数で指定したサイズでデータを受信して格納するということです。リスト1では、第2引数で指定しているバッファはstate->rpacket.dataで、第3引数で指定しているデータサイズはstate->blksize + 4です。 では、このバッファはいったいどこで確保されているのでしょうか? そして受信するデータサイズは、どのようにしてstate->blksizeに指定されているのでしょうか? オーバーフローするバッファ 解析した結果、同じくtftp.cの中のtftp_connect関数内で、このバッファが確保されていることがわかりました(リスト3⁠)⁠。具体的には、指定したバイト分のメモリを指定個分だけ確保するcalloc関数を利用してblksize

    第1回 cURLの脆弱性 ~ヒープバッファオーバーフロー~ | gihyo.jp
  • 1