티스토리 뷰
JSON Injection
JSON(JavaScript Object Notation,제이슨) 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. JavaScript의 구문 형식을 따르지만, 프로그래밍 언어나 플랫폼에 독립적으로 C, C++, 자바, JavaScript, 펄, 파이썬 등 많은 언어에서 이용할 수 있다.
주로 다음과 같은 상황에서 공격이 발생 될 수 있다.
1. 신뢰할 수 없는 소스에서 데이터가 프로그램에 입력됩니다.
2. JSON 스트림에 데이터가 작성됩니다.
JSON 문서와 메시지의 의미는 응용 프로그램이 확인되지 않은 입력에서 JSON을 구성하는 경우 변경될 수 있다. 상대적으로 양호한 경우 공격자는 JSON 문서 또는 요청을 구문 분석하는 동안 응용 프로그램이 예외 사항을 발생시키도록 하는 관련 없는 요소를 삽입할 수도 있다. 좀 더 심각한 경우 JSON injection과 같이 공격자는 JSON 문서 또는 요청 내에서 주요 비즈니스 값의 예측 가능한 조작을 허용하는 관련 없는 요소를 삽입할 수도 있다. JSON injection이 Cross-Site Scripting 또는 Dynamic Code Evaluation을 유발하는 경우도 있다.
[대응책]
1. 확인 되지 않은 사용자 입력의 경우 유효성 체크 로직을 구현한다.
2.JSON 의 안전한 직렬화 함수를 이용하여 데이터를 취급한다.
아래는 그에 대한 예시 코드입니다.
NSError *error = nil; NSString *responses = @""; NSDictionary *itemDic [NSJSONSerialization JSONObjectWithData:(전달 받으려는 데이터) options:kNilOptions error:&error];
if ([NSJSONSerialization isValidJSONObject:itemDic]) { NSData *jsonData =[NSJSONSerialization dataWithJSONObject:itemDic options:NSJSONWritingPrettyPrinted error:&error]; if (jsonData != nil && error == nil) { responses = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding]; } } |
[출처]
http://www.hpenterprisesecurity.com/vulncat/ko/vulncat/index.html - 공격 예시
'Information Security > Web&Mobile' 카테고리의 다른 글
2017.08.06_루트킷, 탐지 툴 공개 사이트 (0) | 2017.08.06 |
---|---|
[Android OS] Hot Swap 단말에서 USIM 변경 확인하는 방법 (0) | 2017.07.31 |
- Total
- Today
- Yesterday
- 정보보안기획
- RCE
- neural compressor
- SAP
- 무선해킹탐지시스템
- 항목가이드
- 언젠가공개하려나
- 디렉터리트레버셜
- awssap
- 점검항목분류
- 구현기준
- 취약점
- 명령어주입
- 접근제어취약점
- 전자금융기반시설취약점분석평가
- 링귀스틱럼버잭
- ip전화기
- 크로스 사이트 스크립트
- 전자금융기반시설
- sw보안약점
- 취약점분석평가
- AWS
- 점검가이드
- cve
- 사용자권한상승취약점
- 전자금융취약점분석평가
- 금취분평
- 프리미엄베개
- linguisticlumberjack
- 테크노젤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |