이런 글을 보고 찾아본 결과 RLTM을 이용한 방법으로, 예전부터 조금씩 언급됐던 취약점인 것 같다.
저글만 보면 무슨 말인지 잘 이해가 가지 않으므로 차근차근 살펴보자. 


RLTM(Right to Left Mark)란?

RLTM은 아랍어처럼 문자열을 오른쪽에서 왼쪽으로 읽는 언어를 지원하기 위해 생겨난 문자이다.
즉, 일반적인 언어는 왼쪽에서 오른쪽으로 글자를 읽지만 아랍어는 반대로 읽기 때문에 어순 변경을 알리는 문자열인 셈이다.

자세한 설명은 다음 링크에 나와있으니 참고하면 좋다.


RLTM을 이용한 취약점

RLTM 취약점을 이용하면 확장자를 속여서 exe 파일을 실행시킬 수 있다.
즉, 화면상에는 다음 스크린샷처럼 txt 확장자로 보이지만 실제로는 exe 실행파일인 것이다.
그렇다면 똑같게 보이는 두 파일이 어떻게 다른 속성을 가진 파일이 되는 것일까??


두번째 "테스트exe.txt" 파일을 만드는 방법을 살펴보자. 

1) RLTM 문자를 복사한다. 



2) "파일명(테스트)" 뒤에 복사한 RTLM 문자를 삽입한뒤, txt.exe를 치려고 하면 아래 스크린샷처럼 문자가 오른쪽에서 왼쪽으로 타이핑된다. 


3) 완성하면 다음과 같이 우리눈에는 txt(텍스트) 파일로 보이지만 실제로는 exe 파일인 파일이 하나 만들어진다.

실행시켜보려하면 당연히 실행파일이 아닌 텍스트 파일로 테스트했기 때문에 실행이 불가능하다..! 


그럼 다시 동일한 방법으로 계산기 프로그램을 실행시켜보자.

1) C:\Windows\System32 에 위치한 calc.exe(계산기 프로그램)을 복사해서 다른 경로로 이동한다. 
※ 추후에 계산기를 실행시키지 못할수도 있으므로 꼭 복사해서 사용하자. 

2) 위에서 설명한 방법과 똑같이 확장자를 변경한다. 

3) 실행 가능한것 확인!! 


똑같은 방법으로 웹쉘 업로드 시 확장자 우회가 가능한 경우도 있다고 하니 참고하자!!


+ Recent posts