XecureWeb(제큐어웹) 개요

  • Xecureweb은 공인인증서 처리를 위한 프로그램이며, 공인인증서 사용 시 많은 금융권 회사들이 Xecureweb 솔루션을 도입해서 사용
  • PKI 기반의 암호와 전자서명 기능을 제공하는 웹 구간 암호화 솔루션
  • SEED, ARIA, AES 등 국내외 표준 암호화 알고리즘을 사용하여 보안 기술 표준을 준수하며, 주민번호, 민감정보 등에 대한 암호화, 공인인증, 서명 기능을 제공
  • 요청값과 응답값 암호화 가능
  • 요청값 암호화 시, 
    • DLL에서 암호화
    • Javascript로 암호화 (일반적으로, xecureweb.js 등 xecureweb이 들어간다.) 

암호화 솔루션이기 때문에  시스템 개발 시 제큐어웹을 사용하면, 전송 시 데이터 노출이 되지 않아 해킹 위협을 피할 수 있다고 생각하는 개발자들이 많은 것 같다... 
하지만 암호화 전의 값을 볼 수만 있다면 ?!

dll을 통해 적용하면 리버싱을 하는 등의 많은 작업을 요하지만,
xecureweb.js (보통 비슷한 이름)를 사용할 때, 스크립트 파일 변조를 통해 쉽게 암호화 전의 파라미터를 확인하고 변조할 수 있다!!


Xecureweb.js 파일 확인 및 변조

** 항상 같은 방법으로 js 파일이 코딩되어 있는 것이 아니므로, IE 개발자 도구의 디버깅 기능을 사용하여 언제 어디서 암호화가 이루어지는지 확인하는 과정이 필요하다.
** 아래 설명할 내용은 두 개의 다른 업체에서 동일하게(함수명도 동일) 적용되었던 것으로 보아, xecureweb 사용 시 기본으로 제공되는 파일일 것으로 추측된다.
** 해당 포스팅을 활용하여 악의적인 행위를 하였을 경우, 책임은 본인한테 있음을 경고합니다.
** 테스트로 진행한 해당 사이트에 대한 정보 노출을 최소하하기 위하여 많은 정보가 모자이크되어 있으니 양해 부탁드립니다..

1) 공인인증서를 사용하여 로그인 시도




2) 프록시 도구를 이용하여 파라미터 암호화 확인




3)  JS 파일 변조 * 파일을 변조하는 방법에는 정답이 없다...
        
        01 - 해당 페이지에서 [개발자도구]를 열어 xecureweb.js 파일을 찾는다.
        02 - 파일을 분석 및 디버깅하여 파라미터가 암호화되는 구간 및 함수를 찾아낸다.



        03 - 함수를 변조한다.
                    
                - 이 파일을 분석해 보면 XecureMakePlain이라는 함수를 통해 암호화 전의 파라미터를 처리하는 것을 확인할 수 있다.
                - 따라서, 함수가 plain_text 변수를 return하기 전에 해당값을 prompt를 통해 띄움으로써 평문 파라미터 확인이 가능하다.
                - 자바스크립트에서 경고창을 띄우는 방법은 여러가지(alert, confirm 등)가 있지만 prompt를 사용하는 이유는 수정도 가능하게 하기 위해서이다.
return plain_text; → plain_text=prompt("p", plain_text); return plain_text; 
                



        04 - 파라미터가 암호화되기 전 보여지는 지 확인하고, 항상 변조된 파일을 사용하기 위해 버프에 replace 규칙을 추가한다.






+ Recent posts