8月 252012
(´・ω・`)期待してたらIP抜かれたぎゃああああああああ 巨乳のお姉さんどこおおお
ってことで泣きながら作りました。
ちなみに今回のファイル名はimg.phpにしています(´・ω・`)
1.PHPで画像生成させる
2.URLを偽装する
3.騙されてみる
以下ソースと解説
<?php
//ファイルに直接アクセスされたら処理しない
if(preg_match('/(.)+(img.php)/',$_SERVER["REQUEST_URI"])) {
exit();
}
//URLの引数 これは後述
//使わないかも
$url_name=$_GET['n'];
$url_ex=$_GET['t'];
//画像を生成 (横,縦) 以下の場合400x230
$new_img=imagecreate(400,230);
//色をつくる ($new_img,*,*,*); ***に10進数のカラーコード
$col_red=imagecolorallocate($new_img,255,0,0);
$col_white=imagecolorallocate($new_img,255,255,255);
$col_black=imagecolorallocate($new_img,0,0,0);
//IPとHOSTをとる
$ip=getenv("REMOTE_ADDR");
$host=getenv("REMOTE_HOST");
if ($host == null or $host == $ip){
$host = gethostbyaddr($ip);}
//ttfファイルの位置を指定
$font='./ff/APJapanesefontH.ttf';
//背景 先ほど作った$col_black(黒)をいれる
imagefill($new_img,0,0,$col_black);
//テキストを表示($new_img,フォントの大きさ,回転,x座標,y座標,色,フォント,"表示する文字");
imagettftext($new_img,20,0,20,80,$col_white,$font,"残念!つり画像でした!");
imagettftext($new_img,14,0,20,140,$col_red,$font,'めもめも');
//文字を真ん中寄せにする
//imagettfbbox(フォントサイズ,回転,フォント,"表示する文字");
$ip_box=imagettfbbox(15, 0,$font,$ip);
//以下の400は画像の横幅 $ipxは$ipを表示した際の真ん中寄せになるx座標
$ipx= (400- ($ip_box[2]-$ip_box[0]))/2;
//IP表示
imagettftext($new_img,15,0,$ipx,170,$col_red,$font,$ip);
//HOSTもIPと同様に真ん中寄せ表示
$host_box=imagettfbbox(15, 0,$font,$host);
$hostx=(400-($host_box[2]-$host_box[0]))/2;
imagettftext($new_img,15,0,$hostx,200,$col_red,$font,$host);
//ヘッダーに画像であることを教えこむ
header("Content-Type: image/png");
//画像表示
imagepng($new_img);
//(^_^)/~バイバイする
imagedestroy($new_img);
?>
//ファイルに直接アクセスされたら処理しない
if(preg_match('/(.)+(img.php)/',$_SERVER["REQUEST_URI"])) {
exit();
}
//URLの引数 これは後述
//使わないかも
$url_name=$_GET['n'];
$url_ex=$_GET['t'];
//画像を生成 (横,縦) 以下の場合400x230
$new_img=imagecreate(400,230);
//色をつくる ($new_img,*,*,*); ***に10進数のカラーコード
$col_red=imagecolorallocate($new_img,255,0,0);
$col_white=imagecolorallocate($new_img,255,255,255);
$col_black=imagecolorallocate($new_img,0,0,0);
//IPとHOSTをとる
$ip=getenv("REMOTE_ADDR");
$host=getenv("REMOTE_HOST");
if ($host == null or $host == $ip){
$host = gethostbyaddr($ip);}
//ttfファイルの位置を指定
$font='./ff/APJapanesefontH.ttf';
//背景 先ほど作った$col_black(黒)をいれる
imagefill($new_img,0,0,$col_black);
//テキストを表示($new_img,フォントの大きさ,回転,x座標,y座標,色,フォント,"表示する文字");
imagettftext($new_img,20,0,20,80,$col_white,$font,"残念!つり画像でした!");
imagettftext($new_img,14,0,20,140,$col_red,$font,'めもめも');
//文字を真ん中寄せにする
//imagettfbbox(フォントサイズ,回転,フォント,"表示する文字");
$ip_box=imagettfbbox(15, 0,$font,$ip);
//以下の400は画像の横幅 $ipxは$ipを表示した際の真ん中寄せになるx座標
$ipx= (400- ($ip_box[2]-$ip_box[0]))/2;
//IP表示
imagettftext($new_img,15,0,$ipx,170,$col_red,$font,$ip);
//HOSTもIPと同様に真ん中寄せ表示
$host_box=imagettfbbox(15, 0,$font,$host);
$hostx=(400-($host_box[2]-$host_box[0]))/2;
imagettftext($new_img,15,0,$hostx,200,$col_red,$font,$host);
//ヘッダーに画像であることを教えこむ
header("Content-Type: image/png");
//画像表示
imagepng($new_img);
//(^_^)/~バイバイする
imagedestroy($new_img);
?>
はい、ソースコードこうなりまひた
さてさて
これだけじゃなーんもできないんで.htaccessで設定します。
基本、これはpng形式の画像なので
.htaccessに下の2行を書く
RewriteEngine on
RewriteRule ([0-9a-zA-Z]+).png$ img.php?n=$1&t=png
これは半角英数字.pngでアクセスしてきたらimg.php?n=ファイル名&t=pngとして表示する
つまり上のimg.phpを表示させるってことどすえ
ちなみにファイル名はソース上の$url_nameで取得できますねん。
サンプル
http://blog.oretama.com/file/img_ip/aaa.png
使用させていただいたフォント
あんずもじ http://www8.plala.or.jp/p_dolce/font1.html
今回のサンプルDL http://blog.oretama.com/file/img_ip.zip
※フォントは入っていませんのでそのまま実行するとエラーがでます。
ちょっと応用すると
http://manmanco.info/uploda/