주의사항 : 이 포스팅은 개인 학습 및 교육적 목적으로 작성되었으며, 제공하는 정보를 악용하여 불법적인 행위를 하는 것은 엄격히 금지되어 있습니다. 타인의 시스템에 대한 접근 권한을 얻기 위해 명시적인 동의를 받아야 하며, 이러한 기술을 사용하여 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.
: 웹뷰는 프레임워크에 내장된 웹 브라우저 컴포넌트로 View 의 형태로 앱에 임베딩하는 것을 말하며, 쉽게 앱 내에 웹 페이지를 넣는 것을 의미한다.
API 를 통해서 받은 URL 을 호출해 보면 응답 값으로 JSON, XML 같은 데이터 포맷이 아닌 HTML 로 들어오게 되는데 이렇게 들어온 데이터는 파싱을 해줄 수가 없기 때문에 해당 HTML 데이터를 처리해 웹 페이지로 보여주는 역할을 한다.
DVIA 는 UIWebview 방식으로 설계되었다.
: 웹뷰에서 발생하는 인젝션 취약점으로 입력 유효성 검사가 제대로 이루어지지 않아 클라이언트 측 인젝션이 발생하는 취약점이다.
사용자 입력 값에 대한 유효성 검사 필요 (클라이언트 측 검사)
NSXMLParser 클래스 또는 libxml2 API 와 같이 각 노드에 객체를 제공하는 라이브러리를 사용한다.
입력 값을 DB에 저장할 때, DB에서 값을 불러올 때 아래와 같은 특수문자를 변환하여 인젝션 공격을 예방한다.
특수문자 | 변환 |
---|---|
< | < |
> | > |
& | & |
" | " |
' | ' |
출처
https://takudaddy.tistory.com/605
https://hagsig.tistory.com/247
https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html