주의사항 : 이 포스팅은 개인 학습 및 교육적 목적으로 작성되었으며, 제공하는 정보를 악용하여 불법적인 행위를 하는 것은 엄격히 금지되어 있습니다. 타인의 시스템에 대한 접근 권한을 얻기 위해 명시적인 동의를 받아야 하며, 이러한 기술을 사용하여 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.
: 사이드 채널 데이터 유출 취약점은 애플리케이션이 중요한 데이터가 실수로 유출되는 취약점이다.
: 개발자가 개발 단계에서 애플리케이션을 디버깅 하기 위해 추가한 로그 기능을 배포 시점에 제거하지 않고 그대로 올려 중요 정보는 디바이스 로그에 기록되는 취약점
: 애플리케이션이 백그라운드로 들어갈 때 스크린샷을 찍는 것으로, 사용자에게 UI를 원활하게 보여주기 위해 사용된다.
: 일부 텍스트를 복사하면 Pasteboard 버퍼에 저장되어 다른 애플리케이션이 해당 버퍼에 저장된 데이터를 가져올 수 있다.
Pasteborad(붙여넣기) : 애플리케이션 내에서 또는 애플리케이션 간에 데이터를 교환하기 위한 표준화된 메커니즘
복사한 중요한 텍스트가 Pasteboard 에 포함되어 있으면 다른 애플리케이션에서 가져와 데이터 유출 될 수 있다.
// Pasteboard.js
function start_pasteboard_monitoring(interval_value) // 함수 선언 후 인자 값 interval_value 설정!
{
var pasteboard = (ObjC.classes.UIPasteboard).generalPasteboard(); // 클래스는 .이든 []이든 둘다 사용 가능
// generalPasteboard 메소드 사용!
var latest_word = ""; // 빈 문자열 선언
setInterval(function(){ // 2초마다 실행되도록 설정하는 코드 블럭
try
{
var on_pasteboard = pasteboard.string().toString() // 클립보드의 문자열 호출
if(on_pasteboard != latest_word) // 한번 출력된 값이 재 출력 안되도록 설정!
{
console.log("[*] Found on pasteboard: "+ on_pasteboard);
latest_word = on_pasteboard;
}
}
catch(err)
{
a = "";
}
}, interval_value); // 인자 값
}
//start_pasteboard_monitoring(INTERVAL_VALUE_HERE_MILLISECONDS)
start_pasteboard_monitoring(2000) // 함수 호출 - 2초마다 실행
: 텍스트 필드가 Secure 로 설정되지 않은 경우 기본적으로 디바이스의 텍스트 필드에 입력한 모든 입력을 기록한다.
: 일부 애플리케이션은 Persistance Cookies (영구적, 지속적 쿠키) 를 생성해 cookie.binarycookies 파일에 저장하는데 이는 앱을 종료한 후에도 남아있다.
앱 실행 시 쿠키 파일이 생성됨
쿠키 파일 확인
(2-2 BinaryCookieReader 로 쿠키 파일 확인)
출처
https://takudaddy.tistory.com/603
https://hagsig.tistory.com/164