Webview Issues

justugi·2024년 7월 9일
0

DVIA

목록 보기
8/11

주의사항 : 이 포스팅은 개인 학습 및 교육적 목적으로 작성되었으며, 제공하는 정보를 악용하여 불법적인 행위를 하는 것은 엄격히 금지되어 있습니다. 타인의 시스템에 대한 접근 권한을 얻기 위해 명시적인 동의를 받아야 하며, 이러한 기술을 사용하여 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.

Webview

: 웹뷰는 프레임워크에 내장된 웹 브라우저 컴포넌트로 View 의 형태로 앱에 임베딩하는 것을 말하며, 쉽게 앱 내에 웹 페이지를 넣는 것을 의미한다.

  • API 를 통해서 받은 URL 을 호출해 보면 응답 값으로 JSON, XML 같은 데이터 포맷이 아닌 HTML 로 들어오게 되는데 이렇게 들어온 데이터는 파싱을 해줄 수가 없기 때문에 해당 HTML 데이터를 처리해 웹 페이지로 보여주는 역할을 한다.

  • DVIA 는 UIWebview 방식으로 설계되었다.


Webview Issues

: 웹뷰에서 발생하는 인젝션 취약점으로 입력 유효성 검사가 제대로 이루어지지 않아 클라이언트 측 인젝션이 발생하는 취약점이다.

  • 유효성 검사가 이루어지지 않아 클라이언트 측에서 코드 삽입이 되므로 디바이스에서 기본 기능 호출 및 악의적인 명령 수행이 가능하다.


  1. hello world 출력


  1. 사용자 정보 추출

  • 복사한 XSS 스크립트 입력 후 return

  • XSS Payload Fire 에서 사용자 정보 확인 가능

대응 방안

  • 사용자 입력 값에 대한 유효성 검사 필요 (클라이언트 측 검사)

  • NSXMLParser 클래스 또는 libxml2 API 와 같이 각 노드에 객체를 제공하는 라이브러리를 사용한다.

  • 입력 값을 DB에 저장할 때, DB에서 값을 불러올 때 아래와 같은 특수문자를 변환하여 인젝션 공격을 예방한다.

    특수문자변환
    <&lt;
    >&gt;
    &&amp;
    "&quot;
    '&#x27;

출처
https://takudaddy.tistory.com/605
https://hagsig.tistory.com/247
https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html

profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글

관련 채용 정보