웹에서는 아직 그런 경우를 못봤는데 간혹 모바일 진단 중에 버프를 이용해 패킷을 주고받는 속도가 너~~~~~무 느려서 진단하는데 영향을 미치는 경우가 있다. 

 

무슨 이유 때문인지는 아직 파악하지 못했지만... 이 경우, 피들러(Fiddler)를 사용하면 훨씬 빨라진다! 

 

하지만 피들러 사용에 익숙하지 않고 버프에 있는 기능을 꼭 사용하고 싶다면 다음의 방법을 사용해보자!

 

1. 우선, 컴퓨터에 피들러를 다운받아 설치한다. 

https://www.telerik.com/download/fiddler 

 

2. Fiddler를 켜고 [Tools - Options...]를 클릭한다. 

 

3. 가장 먼저 Fiddler 인증서를 컴퓨터와 모바일에 설치한다. 

 

1) [HTTPS] 탭에 들어가 [Capture HTTPS CONNECTs]와 [Decrypt HTTPS traffic]을 허용한다. 

    -> HTTPS 통신을 캡쳐할 수 있도록 허용하는 옵션이다.         

2)  [Actions - Trust Root Certificate]를 눌러 컴퓨터에서  Fiddler 인증서를 신뢰하도록 설정한다. 

     ** SCARY TEXT AHEAD: Read Carefully! 라는 경고창이 나오면 [Yes]를 누르고 신뢰설정하면 된다. 

         

 

3) 다음은 모바일에서 Fiddler 인증서를 다운받아 신뢰설정하는 과정이다. 우선 Fiddler에 설정된 listening 포트를 확인하고(8888 default), 컴퓨터의 IP를 확인한다.  

 

4) 모바일에서 프록시 설정을 진행한다.       

5) 인터넷 브라우저를 이용해 "http://IP:8888"에 접속하여 Fiddler 인증서를 다운받은 후 설치한다. 

 

4. 컴퓨터와 모바일에 인증서 신뢰설정을 마쳤다면 [Allow remote computers to connect] 옵션을 선택한다. 

    ** 버프에서 Proxy Listeners 설정 시 All Interfaces 옵션과 동일한 옵션이다. 

 

5. 이제 burp를 켜서 다음과 같이 [Proxy - Options - Proxy Listeners] 설정을 진행한다.

 

6.  Fiddler에 [Gateway - Manual Proxy Configuration]을 설정한다. Fiddler로 캡쳐한 패킷을 버프로 다시 Forward 시키는 설정이다. 

 

7. 마지막으로 Fiddler를 재시작하면 모든 설정이 Fiddler에 저장된다. 재시작하는 과정을 생략할 경우, 설정이 적용되지 않아 제대로 동작하지 않을 수도 있으니 꼭 재시작하자!!

 

<참고> 

혹시나 모든 설정을 마쳤는데 Fiddler에는 패킷이 잡히고, Burp에는 패킷이 잡히지 않는다면, [Options - Gateway - Manual Proxy Configuration] 설정을 [No Proxy]로 바꾼 뒤 저장하고,

다시 [Options] 창을 열어 [Manual Proxy Configuration] 설정을 하면 잘 잡힐 것이다 🙂 

 

 

 

 


이런 글을 보고 찾아본 결과 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) 실행 가능한것 확인!! 


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



SSL 통신 프록시 연결 오류

최근 IOS 10 이상 버전에서 BURP 인증서 등록 후, SSL 통신을 잡는데 에러가 일어나서 무슨 새로운 솔루션이 생겨난줄 알았다...
그런데 그런게 아니었나 보다...!!

일단 지금 상태는 다음과 같이 계속 SSL 연결 오류가 난다. 보통 이런 현상은 인증서가 제대로 등록이 안됐을때 일어나는 현상인데 말이다...?!
※ 네이버 앱은 본 오류와 아무 관련이 없음을 알려드립니다. 


이런 현상이 일어나면 앱이 실행이 안되고 계속 멈춰있거나 네트워크 에러로 인해 종료된다. 
그러면 이제 앱 통신은 버프로 패킷을 잡을 수가 없는건가 생각햇다ㅠㅠ

SSL 통신 프록시 연결 오류 해결 방법

위의 링크를 보면 나와 비슷한 오류를 접하는 사람이 있었나보다. 

정말 간단하게 해결이 가능하다.

1) 설정 > 일반 > 정보 > 인증서 신뢰 설정 > "PortSwigger CA"를 루트인증서 전체 신뢰 활성화

 

 

2) 이제 다시 앱을 실행시켜 보면!! SSL 통신하는 패킷 잡힘!!

 


정확한 이유는 모르겠지만 IOS10 이상부터 이전과 동일한 방법으로 인증서 등록 시 루트 인증서로 설치가 되지 않고 사용자 인증서로 설치가 되서 신뢰할 수 있는 인증서로 인식을 하지 않아 SSL Connection 오류가 났던 것 같다. 


+ Recent posts