openeg Command Injection

openeg Command Injection

 

(1) Kali Linux에서 http://victim:8080/openeg사이트로 이동하여 로그인 합니다.(test / test)

 

(2) 메뉴에서 보안코딩테스트 > 명령어 인젝션을 클릭합니다.

 

(3) 사용자 값이 서버로 전달되는 과정을 확인합니다. (F12 개발자도구에서 확인가능)

=> 선택창에서 선택 후 실행 버튼을 클릭하면 data 파라미터 값으로 type 또는 dir이 서버로 전달

=> 전달과정은

      command_test,do?data=dir

=> 서버로 전달되는 값은 아래와 같이 유추

      Runtime.getRuntime().exec("dir");

 

(4) Show dir 선택 후 실행버튼을 클릭합니다.

=> 출력값을 보면 cmd에서 dir 명령을 실행한 것과 유사함을 확인

 

(5) 개발자도구(F12)에서 선택명령어가 아닌 다른 명령어로 변경 후 전달해봅니다.

입력 값 > <option value="ipconfig"> ~

명령어 변경
실행결과

=> ipconfig를 넣으면 네트워크 설정 정보가 출력

=> 사용자가 화면에서 선택한 값은 서버 내부에서 검증, 제한 없이 운영체제 명령어 실행에 사용됨을 확인

 

(6) 추가 명령어 실행을 의미하는 &와 함게 새로운 명령어도 전달해봅니다.

입력 값 > <option value="dir & whoami"> ~

명령어 변경
실행결과

=> whoami를 넣으면 서버에서 현재 사용자의 이름을 출력