[DVWA] Command Injection - Low

Song·2024년 9월 3일

DVWA

목록 보기
3/3

Security - Low

소스 코드

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 공략

|공백 -> |명령어

profile
안녕하세요

0개의 댓글