보안 공부/Web 보안

취약점 점검을 위한 자바스크립트 분석 유형

H.J.World 2024. 1. 7. 23:23
728x90
반응형


1. Client Side 검증 우회
 - 데이터를 서버로 보내기 전에 클라이언트에서 먼저 검증하여 사용자의 실수로 발생하는 통신의 낭비를 줄일 수 있음
 - 서버에서 값이 유효한지 확인하는 과정이 없어 사용자에게 더 빠른 오류 피드백을 줄 수 있음
 - 단점
  > 클라이언트에서만 값을 확인할 경우, 서버에서 데이터를 빼가는 등의 악영향을 미칠 수 있음
  > E2E 암호화를 하지 않는 경우 전송되는 데이터를 손쉽게 바꿀 수 있음
  > 클라이언트에서 검증하는 로직은 공격자가 확인하고 우회할 수 있음
  
  
2. 보안 프로그램 설치 탐지 우회
 - 보안 프로그램은 로컬에서 동작하는 웹 서버 구조를 가지고 있음
 - 자바 스크립트로 보안 프로그램에 요청을 보내고 요청에 따라 암호화, 전자 서명 등을 진행
 - 대책
  > 난독화를 통한 보안 프로그램 실행 로직 은폐
  > 보안 프로그램을 사용하지 않는다면 서버와 통신이 불가하게 구현
  
3. 치환 암호표 취약점
 - 보안 키패드를 사용하여 서버로 비밀번호 등을 전송할 때, 입력한 키에 대응하는 암호문을 테이블로 만들어 사용하는 경우
 - 동일한 푤르 사용하면 일부 입력한 키에 대응하는 암호문을 알고 있을 때, 암호문만 알고 있어도 원문을 유추 가능
 - 프록시 툴을 사용하여 동일한 입력에 대한 암호문을 확인(고정인지 확인)
 - 대책
  > 입력시마다 다른 치환 암호표를 사용하여 통신


4. 자바스크립트 난독화
 - 클라이언트에서 동작하는 로직을 결국 공격자가 알게 되어있음
 - 최대한 늦추기 위한 조치로 난독화 > 유명한 난독화 기법들을 디코딩하는 사이트들이 존재
 - eval() 난독화
  > 자바 스크립트 함수 중, eval()함수를 사용하여 난독화 진행
 -JSFuck 난독화
  > 자바 스크립트와 브레인퍽의 합성어 []()!+로만 구현
 -JJEncode 난독화
  > 자바 스크립트에 문자나 숫자를 사용하지 않고 자바 스크립트 기호 $, -, + 등 만을 사용자


728x90
반응형