「ディレクトリトラバーサル」を含む日記 RSS

はてなキーワード: ディレクトリトラバーサルとは

2013-08-12

Webサーバを作る】http://d.hatena.ne.jp/kmaebashi/20130804/p1

マネしてPerlで書いてみた。以下ソースコード

use Fcntl;

use strict;

use Socket;

use threads;

use POSIX qw(strftime);

use File::Spec::Functions qw(rel2abs);

my $thread = threads->new(\&serverThread, "");

$thread->join;

sub getContentType {

my $ret;

my %hashmap=(

"html" => "text/html",

"htm" => "text/html",

"txt" => "text/plain",

"css" => "text/css",

"png" => "image/png",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"gif" => "image/gif"

);

$ret = $hashmap{$_[0]};

if ($ret eq "") {

return "application/octet-stream";

} else {

return $ret;

}

}

sub serverThread {

my $documentRoot = rel2abs("D:/var/www/html");

my ($line, $path, @tmp, $ext, $data, $absPath);

socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

bind(SERVER, sockaddr_in("8001", INADDR_ANY)) || die;

listen(SERVER, SOMAXCONN) || die;

while (accept(CLIENT, SERVER)) {

while (<CLIENT>){

$line = $_;

last if ($line eq "" || $line eq "\r\n" || $line eq "\n");

if (index($line, "GET") == 0){

$path = (split(/ /, $line))[1];

@tmp = split(/\./, $path);

$ext = @tmp[$#tmp];

}

}

print CLIENT "HTTP/1.1 200 OK\r\n";

print CLIENT "Date: " .strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime). "\r\n";

print CLIENT "Server: Sever03.java\r\n";

print CLIENT "Connection: close\r\n";

print CLIENT "Content-type: ". getContentType($ext). "\r\n";

print CLIENT "\r\n";

$absPath = rel2abs($documentRoot. $path);

if (index($absPath,$documentRoot)==0 && sysopen(FH, $absPath, O_RDONLY | O_BINARY)) {

while ($data = <FH>) {

print CLIENT $data;

}

print CLIENT "\r\n";

close FH;

}

close CLIENT;

}

}

コアモジュールだけ使った。

元ネタJavaコードディレクトリトラバーサルになってたんで、一応対策を盛り込んだ。

といっても絶対に外向けに動かさないように。無いと思うけど。

いろいろツッコミくれるとうれしいです。

2009-11-21

ウィルス勝手児童ポルノを落として俺オワタ、みたいな話があるけど、ウィルス感染たって経路はそこそこ限られているわけで。

スパム業者にメアドが割れてて、且つ、とても古いoutlookウィルスを受信したとか。

ろくに Microsoft Update もしないまま IEIEコンポ使用ブラウザポルノサイトを見回ったとか。(Gecko の方が脆弱性が多かったらしいけど、実際に攻撃に使われた例はほとんど聞かないよな)

flashバージョンが古いままポルノサイトを見回ったとか。

ポルノサイトを見てたら「このコーデック入れて⇒ xxx.exe」って言われたから xxx.exe を実行したとか。

えろいのを zip でくれっつったら zip でくれたんだけど、その中にディレクトリトラバーサルが仕込まれていて、スタートアップウィルスを置かれたりとか。

p2pで「【無臭】ちびっこたちががんばりました.zip   .exe」を落としたとか。

限られているわけで。まあそういう事だよね。(もちろんこれだけじゃない。よく利用するショッピングサイトflashにもウィルスが紛れ込んでいた例はままある)

2003年頃に流行った、ポート135にパケット送りつけるだけで広まるワームの類、要するに「ネットに繋いでいるだけでマジ何もしてないのに感染する」タイプウィルスって、現存するんだっけ? 寡聞にして知らないのである。……いや現存はするか。まだ135にそういうパケットが飛んでくるもんな。

でも、未だに感染してる奴って何なの?ちんげ?

 
ログイン ユーザー登録
ようこそ ゲスト さん