iOS UIActivity Sharing

Tip

AWS ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°:HackTricks Training AWS Red Team Expert (ARTE)
GCP ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°: HackTricks Training GCP Red Team Expert (GRTE) Azure ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks μ§€μ›ν•˜κΈ°

UIActivity Sharing Simplified

iOS 6λΆ€ν„°, μ„œλ“œνŒŒν‹° μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ Apple의 Inter-App Communication guideμ—μ„œ μ„€λͺ…λœ λŒ€λ‘œ AirDropκ³Ό 같은 λ©”μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•˜μ—¬ ν…μŠ€νŠΈ, URL λ˜λŠ” 이미지와 같은 데이터λ₯Ό κ³΅μœ ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λŠ₯은 β€œShare” λ²„νŠΌκ³Ό μƒν˜Έμž‘μš©ν•  λ•Œ λ‚˜νƒ€λ‚˜λŠ” μ‹œμŠ€ν…œ μ „μ—­ _곡유 ν™œλ™ μ‹œνŠΈ_λ₯Ό 톡해 κ΅¬ν˜„λ©λ‹ˆλ‹€.

λͺ¨λ“  λ‚΄μž₯ 곡유 μ˜΅μ…˜μ˜ 포괄적인 μ—΄κ±°λŠ” UIActivity.ActivityTypeμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ν•©ν•˜μ§€ μ•Šλ‹€κ³  νŒλ‹¨λ˜λŠ” νŠΉμ • 곡유 μ˜΅μ…˜μ„ μ œμ™Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.

How to Share Data

λ‹€μŒ 사항에 주의λ₯Ό κΈ°μšΈμ—¬μ•Ό ν•©λ‹ˆλ‹€:

  • κ³΅μœ λ˜λŠ” λ°μ΄ν„°μ˜ 성격.
  • μ‚¬μš©μž μ •μ˜ ν™œλ™μ˜ 포함.
  • νŠΉμ • ν™œλ™ μœ ν˜•μ˜ μ œμ™Έ.

κ³΅μœ λŠ” UIActivityViewController의 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ—¬ 이루어지며, κ³΅μœ ν•  ν•­λͺ©μ΄ μ „λ‹¬λ©λ‹ˆλ‹€. μ΄λŠ” λ‹€μŒκ³Ό 같이 ν˜ΈμΆœν•˜μ—¬ λ‹¬μ„±λ©λ‹ˆλ‹€:

$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:

κ°œλ°œμžλŠ” UIActivityViewControllerκ°€ μ΄ˆκΈ°ν™”λœ ν™œλ™ 및 μ‚¬μš©μž μ •μ˜ ν™œλ™κ³Ό μ§€μ •λœ excludedActivityTypesλ₯Ό λ©΄λ°€νžˆ κ²€ν† ν•΄μ•Ό ν•©λ‹ˆλ‹€.

데이터 μˆ˜μ‹  방법

데이터λ₯Ό μˆ˜μ‹ ν•  λ•Œ λ‹€μŒ 사항이 μ€‘μš”ν•©λ‹ˆλ‹€:

  • μ‚¬μš©μž μ •μ˜ λ¬Έμ„œ μœ ν˜•μ˜ μ„ μ–Έ.
  • 앱이 μ—΄ 수 μžˆλŠ” λ¬Έμ„œ μœ ν˜•μ˜ λͺ…μ‹œ.
  • μˆ˜μ‹ λœ λ°μ΄ν„°μ˜ 무결성 확인.

μ†ŒμŠ€ μ½”λ“œμ— μ ‘κ·Όν•  수 μ—†λŠ” κ²½μš°μ—λ„ Info.plistμ—μ„œ UTExportedTypeDeclarations, UTImportedTypeDeclarations, CFBundleDocumentTypes와 같은 ν‚€λ₯Ό κ²€μ‚¬ν•˜μ—¬ 앱이 μ²˜λ¦¬ν•˜κ³  μ„ μ–Έν•  수 μžˆλŠ” λ¬Έμ„œ μœ ν˜•μ„ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.

이 킀에 λŒ€ν•œ κ°„κ²°ν•œ κ°€μ΄λ“œλŠ” Stackoverflowμ—μ„œ 제곡되며, μ‹œμŠ€ν…œ μ „λ°˜μ— 걸쳐 UTIλ₯Ό μ •μ˜ν•˜κ³  κ°€μ Έμ˜€λŠ” κ²ƒμ˜ μ€‘μš”μ„±κ³Ό β€œOpen With” λŒ€ν™” μƒμžμ—μ„œ λ¬Έμ„œ μœ ν˜•μ„ μ•±κ³Ό μ—°κ΄€μ‹œν‚€λŠ” 방법을 κ°•μ‘°ν•©λ‹ˆλ‹€.

동적 ν…ŒμŠ€νŠΈ 접근법

ν™œλ™ 전솑을 ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•΄ λ‹€μŒμ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • init(activityItems:applicationActivities:) λ©”μ„œλ“œμ— ν›„ν‚Ήν•˜μ—¬ κ³΅μœ λ˜λŠ” ν•­λͺ©κ³Ό ν™œλ™μ„ μΊ‘μ²˜ν•©λ‹ˆλ‹€.
  • excludedActivityTypes 속성을 κ°€λ‘œμ±„μ–΄ μ œμ™Έλœ ν™œλ™μ„ μ‹λ³„ν•©λ‹ˆλ‹€.

ν•­λͺ© μˆ˜μ‹ μ˜ 경우:

  • λ‹€λ₯Έ μ†ŒμŠ€(예: AirDrop, 이메일)μ—μ„œ μ•±μœΌλ‘œ νŒŒμΌμ„ κ³΅μœ ν•˜μ—¬ β€œOpen with…” λŒ€ν™” μƒμžλ₯Ό μœ λ„ν•©λ‹ˆλ‹€.
  • 정적 뢄석 쀑 μ‹λ³„λœ λ‹€λ₯Έ λ©”μ„œλ“œμ™€ ν•¨κ»˜ application:openURL:options:에 ν›„ν‚Ήν•˜μ—¬ μ•±μ˜ λ°˜μ‘μ„ κ΄€μ°°ν•©λ‹ˆλ‹€.
  • 잘λͺ»λœ ν˜•μ‹μ˜ νŒŒμΌμ΄λ‚˜ 퍼징 기법을 μ‚¬μš©ν•˜μ—¬ μ•±μ˜ 견고성을 ν‰κ°€ν•©λ‹ˆλ‹€.

μ°Έκ³  λ¬Έν—Œ

Tip

AWS ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°:HackTricks Training AWS Red Team Expert (ARTE)
GCP ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°: HackTricks Training GCP Red Team Expert (GRTE) Azure ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks μ§€μ›ν•˜κΈ°