
if (isset($_POST['Submit'])){
}
파라미터에 Submit 값이 존재할 때
$target = $_REQUEST[ 'ip' ];
GET, POST, Cookie 값 중 ip 값을 $target 변수에 저장.
if (stristr(php_uname('s'), "Windows NT')){
$cmd = shell_exec( 'ping '.$target);
}else{
$cmd = shell_exec( 'ping -c 4 '.$target);
}
php_uname('s') 함수로 운영체제 이름 반환.
stristr() 함수는 첫 번째 인자와 두 번째 이자가 같을 경우 true 반환.
운영체제가 윈도우냐 아니냐에 따라 쉘에 입력할 명령어가 달라짐. 둘 다 ping 명령어인 점은 동일.
명령어 실행 결과를 $cmd 변수에 저장.
echo "<pre>{$cmd}</pre>";
명령어 실행 결과 출력.
유저에게 IP주소를 입력받아 해당 호스트에게 Ping을 보내고 그 결과를 출력하는 코드이다.
따로 검증하는 장치가 없기 때문에 추가 명령어를 사용할 수 있는 연산자를 사용하면 공격이 가능하다.
- ;(명령어의 끝)
- &(백그라운드)
- |(파이프)
- &&(AND)
- ||(OR)
high 공략
|공백 -> |명령어