Command Injection [4]
DATE : 2023/10/01
Last updated
DATE : 2023/10/01
Last updated
Command Injection [3]에서는 time delay를 유발함으로써
Blind Command injection 공격을 성공할 수 있었다.
[3]에 이어 [4]에서도 Blind Injection에 대해 다루어볼 건데
이번에는 redirection 개념을 활용한 Blind Command Injection 공격을 해볼 것이다!
여느 때와 같이 LAB으로 들어가면 피드백을 보낼 수 있는 form을 볼 수 있다.
이름, 메일, 제목, 내용을 입력하고 "Submit feedback" 버튼을 누르면
위와 같은 packet이 만들어진다.
이번 LAB에서는 /var/www/images directory에 파일을 작성할 수 있다는 사전 정보가 있기 때문에
이 경로로 Command 결과를 redirection 시켜볼까 한다.
message parameter 부분에 추가한 내용은
whoami command의 결과를 /var/www/images directory에 result.txt라는 파일로 작성하라는 의미이다.
문제는 "images directory에 어떻게 접근할 것인가"인데..
feedback을 제출할 때는 /feedback/submit directory로 내용이 전달되는 데
그래서 LAB에 있는 전체적인 구성을 다시 봐보니
메인 페이지에 있는 상품 POST가 눈에 들어온다.
다양한 상품 중 아무거나 눌러보면 총 2개의 packet이 지나가는 데
첫 번째 packet은
상품 ID를 productId로 보내는 request이고 두 번째 packet은
상품 이미지를 filename parameter로 보내는 request이다.
이때 눈 여겨볼 부분은 바로 request를 보내는 path!!
productId는 /product directory로 전달되고 filename은 /image directory로 전달된다.
이거다!! filename parameter 값을 조작해 result.txt 내용을 요청하는 packet을 보내자.
위에서 feedback form을 통해 whoami command 결과로 result.txt를 생성한 후
상품 POST를 요청하는 과정에서 filename parameter 값으로 result.txt 내용을 불러오면
response body 부분에 현재 username이 무엇인지 알 수 있다!!
다시 메인 페이지로 돌아가면~
이번 LAB은 Blind command injection attack을 실행하기 위해서
파일을 작성할 수 있는 다른 directory로 명령어의 결과를 redirection 하는 과정을 거쳤다.
Blind command injection 상태이기 때문에 whoami command의 결과를 확인할 수 없으므로
whoami command 결과를 확인할 수 있는 다른 경로로 output을 보낸 것이다.
LAB에서는 redirection 과정만 거쳤지만
사실 어떤 경로에 파일을 작성할 수 있는지 알아내는 거 또한 필요한 과정이다.
이는 우리가 접근해야 하는 /var/www/images directory와는 동떨어져 있다.
성공적으로 LAB을 끝마칠 수 있다.