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);

?>

 

はい、ソースコードこうなりまひた

さてさて
これだけじゃなーんもできないんで.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/

 Posted by at 11:05 AM

 Leave a Reply


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>