[Android] Setcancelable ν†΅ν•œ μ•± μ’…λ£Œ 막기

AlertDialog Dialog(λ‹€μ΄μ–Όλ‘œκ·Έ)λŠ” 말 κ·ΈλŒ€λ‘œ λŒ€ν™” μƒμžμ˜ κ°œλ…μœΌλ‘œ Alert(νŒμ—…)λ₯Ό λ„μ›Œ 앱을 μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžλ“€μ—κ²Œ μΆ”κ°€ μž…λ ₯을 λ°›κ±°λ‚˜ λ‹€μŒ ν–‰μœ„(Yes, No, Cancel)λ₯Ό κ²°μ •μ‹œν‚€λŠ” μš©λ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€. 이 λ©”μ‹œμ§€ 창에 μ‚¬μš©μžκ°€ 응닡을 ν•˜μ§€ μ•ŠμœΌλ©΄ 화면에 사라지지 μ•Šκ³  계속 λŒ€κΈ°ν•˜κ²Œ λ©λ‹ˆλ‹€. AlertDialogμ—λŠ” μ‚¬μš©λ˜λŠ” μš”μ†Œλ“€ Title: λŒ€ν™”μƒμžμ˜ 제λͺ© Message: λŒ€ν™”μƒμžλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•œ λ‚΄μš© Positive Button: μ‚¬μš©μžμ˜ 긍정적인 λ°˜μ‘μ„ 의미(Yes, λ„€, 확인) Negative Button: μ‚¬μš©μžμ˜ 뢀정적인 λ°˜μ‘μ„ 의미(No, Cancel, μ·¨μ†Œ) Netural Button: 긍정 λ˜λŠ” 뢀정도 μ•„λ‹Œ λ°˜μ‘μ„ 의미(Cancel, Remind Later 일반적으..

MOBILE
[Android] Content Provider 취약점

κ°œμš” μ•ˆλ“œλ‘œμ΄λ“œμ˜ Content ProviderλŠ” "μ½˜ν…μΈ  제곡자 "λΌλŠ” 의미λ₯Ό 가지고 있으며 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 쀑앙 μ €μž₯μ†Œ 같은 역할을 ν•˜λŠ” 곡간에 λ‹€λ₯Έ 앱이 μ ‘κ·Όν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 4λŒ€ μ»΄ν¬λ„ŒνŠΈ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 주둜 파일 μ‹œμŠ€ν…œμ΄λ‚˜ SQLite λ°μ΄ν„°λ² μ΄μŠ€, Web 등을 ν†΅ν•΄μ„œ κ΄€λ¦¬ν•˜λ©° μ½˜ν…μΈ  ν”„λ‘œλ°”μ΄λ”λ₯Ό 톡해 λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ €μž₯된 데이터에 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ•± κ³Ό μ•± μ‚¬μ΄μ˜ 데이터 접근을 κ΄€λ¦¬ν•˜κ³  ν†΅μ œν•˜κΈ° μœ„ν•΄ "Content Resolver"λΌλŠ” μ€‘κ°œμž 역할이 μ‘΄μž¬ν•˜λŠ”λ° μ΄λ•Œ μ½˜ν…μΈ  제곡자의 μ£Όμ†ŒμΈ 즉 μ΄λ™ν•˜κ³ μž ν•˜λŠ” URIκ°€ λ“±λ‘λ˜μ–΄ μžˆμ–΄μ•Ό λ©λ‹ˆλ‹€. *uri ν˜•νƒœ -> content://user_dictionary/test λ“± Content ProviderλŠ” μ»΄ν¬λ„ŒνŠΈ 쀑 일뢀이기 ..

MOBILE
[Android] Broadcast Receiver 취약점

κ°œμš” μ•ˆλ“œλ‘œμ΄λ“œμ˜ Broadcast ReceiverλŠ” "방솑 μˆ˜μ‹ μž"λΌλŠ” 의미λ₯Ό 가지고 있으며 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 4λŒ€ ꡬ성 λ‹¨μœ„μ€‘ ν•˜λ‚˜λ‘œ μΈν…νŠΈ(Intent)λΌλŠ” μΌμ’…μ˜ λ©”μ‹œμ§€ 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ μ•ˆλ“œλ‘œμ΄λ“œμ™€ μ‚¬μš©μž 간에 μƒν˜Έμž‘μš©μ„ ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ Broadcast Receiverλž€ μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ μ‘΄μž¬ν•˜λŠ” μ΄λ²€νŠΈλ“€μ΄ λ°œμƒν•˜λ©΄ 각 κ°μ²΄λ“€λ‘œ μ μ ˆν•œ λΈŒλ‘œλ“œμΊμŠ€νŠΈ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄κ²Œ λœλŠ”λ° μ΄λ•Œ μ‹ ν˜Έλ₯Ό λ°›μ•„ 사전에 μ •μ˜ν•΄λ†“μ€ μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€. 사전에 μ •μ˜ 해놓은 μž‘μ—…μ΄λž€?? 배터리 μƒνƒœ μ•Œλ¦Ό(배터리 λΆ€μ‘±/μΆ©λΆ„) λ©”μ‹œμ§€ 솑/μˆ˜μ‹ (λ©”μ‹œμ§€κ°€ 전솑/μ‹€νŒ¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€) μΈμ¦μ½”λ“œ μž…λ ₯ 사진 캑처(사진이 μ €μž₯λ˜μ—ˆμŠ΅λ‹ˆλ‹€) λ§Œμ•½ λ³„λ„μ˜ κΆŒν•œμ΄ μ—†λŠ” 즉 μ•ˆμ „ν•˜μ§€ μ•Šμ€ λ¦¬μ‹œλ²„ 섀정을 ν•΄λ‘” 경우 μ‚¬μš©μžκ°€ λ°›λŠ” 정상적인 μ•Œλ¦Όμ„ 쀑간..

MOBILE
[Android] Activity Component 취약점

κ°œμš” μ•ˆλ“œλ‘œμ΄λ“œμ˜ ActivityλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 4λŒ€ κ΅¬μ„±λ‹¨μœ„ 쀑 ν•„μˆ˜μ μΈ μš”μ†Œλ‘œ μΈν…νŠΈ(Intent)λΌλŠ” μΌμ’…μ˜ λ©”μ‹œμ§€ 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 간에 μƒν˜Έμž‘μš©μ„ ν•˜λ©΄μ„œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν¬ν•¨ν•œ ν•˜λ‚˜μ˜ 화면을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 4λŒ€ μ»΄ν¬λ„ŒνŠΈ 쀑 κ°€μž₯ 많이 μƒμš©λ˜λ©° 주둜 UI(User Interface)화면을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€. μ˜ˆμ‹œλ‘œ 이메일 μ•±μ˜ Activity에 λŒ€ν•΄ κ°„λ‹¨ν•˜κ²Œ μƒκ°ν•΄λ³΄μžλ©΄ (1) 이메일 λͺ©λ‘μ„ ν‘œμ‹œ (2) 이메일 μž‘μ„± (3) 전달받은 이메일 읽기 λ“± μ—¬λŸ¬ κΈ°λŠ₯이 μ‘΄μž¬ν•  κ²ƒμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ—¬λŸ¬ Activityκ°€ ν•¨κ»˜ λ™μž‘ν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ 보기 μ‰¬μš΄ ν™˜κ²½μ„ κ΅¬μ„±ν•˜μ§€λ§Œ (1), (2), (3) 각각이 λ…λ¦½λ˜μ–΄ μ‹€ν–‰ λ©λ‹ˆλ‹€. 마치 (2) 이메일 μž‘μ„±μ„ ν•  λ•Œ μ‚¬μš©λ˜λŠ” Activityκ°€ ν—ˆμš©λ˜..

MOBILE