반응형
SMALL

1. Command Injection 공격 Medium 단계 실습

 

[그림 1-1] ;id 실행

Medium 단계에서 ;id 입력하고 요청을 보내고 결과를 보면 페이지에 어떤 것도 표시되지 않는다.

 

[그림 1-2] 소스 코드

소스 코드를 보면  target 인자값이 IP 주소를 입력 받는다. 그리고 substitutions 인자 값에서 && ; 삭제 한다. 추후 대소문자를 구분하는 str_replace 함수로 입력 받은 target 인자 , substitutions 인자 값을 넘겨준다. 하지만 && ; 두가지 문자열을 삭제해 Command Injection 공격을 방지하려고 했지만 우회가 가능하다.

 

[그림 1-3] ping

ping -c 4 127.0.0.1; id 명령어로 ping 보내봐도 id 값은 출력되지 않고 세션 상태만 출력되서 공격은 되지 않는다.

 

 

[그림 1-4] 입력

코드를 우회하기 위해 ; 입력하지 않고 | id이나 & id 입력 요청을 보내면 id 정보를 획득할 있다. &&, ; 두가지 문자열만 삭제해서는 완벽한 방어가 없는 것이다.

 

[그림 1-5] 리눅스 계정 정보

& cat /etc/passwd 명령어를 입력한 요청을 보내면 리눅스 계정 정보 획득이 가능하다. Medium 단계에선 &, | 문자열로 우회가 가능하다.

 

2. Command Injection 공격 High 단계 실습

 

[그림 2-1] ping

ping -c 4 127.0.0.1& id 명령어를 입력하고 실행하면 id 값은 출력되지 않고 세션 상태만 출력됨을 있다.

 

[그림 2-2] 소스 코드

소스코드를 보면 Command Injection에서 시도될법한 문자열들을 모두 삭제하고 있는 것을 있다. 하지만 세번째 문자열 | 보면 '| ' 되어 있어 코드 오류로 인해 우회가 가능하다.

 

[그림 2-3] ping

& id 값으로 ping 시도 결과 id 값은 출력되지 않고 입력 값에 대한 세션 상태만 출력하고 있다. 

 

 

[그림 2-4] 실행 결과

|id 폼에 입력한 요청을 보낸 결과 값을 우회해서 정상적으로 id 값이 출력 됨을 확인할 있다.

반응형
LIST

'웹해킹 > DVWA' 카테고리의 다른 글

CSRF 공격 (2)  (0) 2020.01.12
CSRF 공격 (1)  (0) 2020.01.12
파일 업로드 공격 대응 방안  (0) 2020.01.04
파일 업로드 공격 (2)  (0) 2020.01.04
파일 업로드 공격 (1)  (0) 2020.01.04
블로그 이미지

만년필석사

,