Session Fixation(μ„Έμ…˜κ³ μ •) 취약점

κ°œμš” Session Fixation(μ„Έμ…˜ κ³ μ •) μ΄λž€ 둜그인 μ‹œ λ°œκΈ‰λ°›μ€ μ„Έμ…˜ IDκ°€ 둜그인 μ „/ν›„ λͺ¨λ‘ λ™μΌν•˜κ²Œ μ‚¬μš©λ˜μ–΄ μ•…μ˜μ μΈ μ‚¬μš©μžκ°€ ν”Όν•΄μžμ˜ μ„Έμ…˜μ„ ν•˜μ΄μ œν‚Ή ν•˜μ—¬ 정상적인 μ‚¬μš©μžλ‘œ μœ„μž₯ν•˜μ—¬ μ ‘κ·Όν•˜λŠ” ν–‰μœ„μž…λ‹ˆλ‹€. "μ„Έμ…˜μ— λŒ€ν•œ 만료" λ˜λŠ” "μ„œλ‘œ λ‹€λ₯Έ IP의 λ™μΌν•œ μ„Έμ…˜"에 λŒ€ν•΄ μ·¨μ•½ν•œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 운영 쀑일 경우 μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λŠ” λ‹€μˆ˜μ˜ μ‚¬μš©μžλ“€μ΄ ν•΄λ‹Ή 곡격에 λ…ΈμΆœλ  κ°€λŠ₯성이 μ‘΄μž¬ν•©λ‹ˆλ‹€. λ°œμƒ κ°€λŠ₯ μ‹œλ‚˜λ¦¬μ˜€ μ•…μ˜μ μΈ μ‚¬μš©μžλ“€μ€ μ·¨μ•½ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 직접 λ‘œκ·ΈμΈν•˜μ—¬ μ„Έμ…˜ IDλ₯Ό λ°œκΈ‰λ°›κ³  "XSS" 같은 ꡐ차 슀크립트 곡격을 λ³‘ν–‰ν•˜μ—¬ 이메일을 을 μ—΄λžŒ μ‹œ 곡격자의 μ„Έμ…˜ IDλ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλΉ„μŠ€λ₯Ό μ ‘κ·Όν•˜λ„λ‘ ν•˜λ©΄ μ‚¬μš©μžλ“€μ€ κ³΅κ²©μžμ™€ λ™μΌν•œ μ„Έμ…˜ IDλ₯Ό μ‚¬μš©ν•˜κ²Œ 되며, μ—¬κΈ°μ„œ κ΄€λ¦¬μž νŽ˜μ΄μ§€λ‚˜ 기타..

WEB
IP Address Obfuscation(λ‚œλ…ν™”)

κ°œμš” λ‚œλ…ν™”λž€ μ†Œν”„νŠΈμ›¨μ–΄ μΈ‘λ©΄μ—μ„œ 일반적인 μ‚¬λžŒλ“€μ΄ μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ²Œ λ˜λŠ” 역뢄석(Reverse engineering)을 μ§€μ—°μ‹œν‚€κΈ° μœ„ν•΄ μ˜λ„μ μœΌλ‘œ μˆ¨κΈ°λŠ” ν–‰μœ„μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ°˜λŒ€λ‘œ μ•…μ˜μ μΈ μ‚¬μš©μžλ“€μ€ "μ‚¬νšŒκ³΅ν•™ 기법", "λΈ”λž™λ¦¬μŠ€νŠΈ 둜직 우회", "읡λͺ…μ„±" 등을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ μ‘΄μž¬ν•©λ‹ˆλ‹€. 일반적으둜 ꡬ글에 μ ‘μ†ν•˜κΈ° μœ„ν•΄ www.google.com 을 μž…λ ₯ν•˜μ—¬ μ§€μ •λœ DNS(Domain Name Server) λͺ…을 톡해 μ‰½κ²Œ μ ‘κ·Όν•˜κ³  μžˆμ§€λ§Œ μ„œλ²„μ˜ IPμ£Όμ†Œλ‘œλ„ λ™μΌν•˜κ²Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. URL 인코딩을 ν•˜λŠ” κ²½μš°λ„ μ‘΄μž¬ν•˜μ§€λ§Œ "http%3a%2f%2f216.58.197.196" μ£Όμ†Œλ₯Ό λ³΄μ‹œλ©΄ 특수 λ¬Έμžμ—΄λ§Œ 인코딩 될 뿐 xxx.xxx.xxx.xxx 같이 "." 점으둜 κ΅¬λΆ„ν•˜μ—¬ μ „μ†‘ν•˜λŠ” 것은 마찬..

ETC
[iOS] Objection μ£Όμš” λͺ…λ Ήμ–΄

κ°œμš” μ•± 진단을 ν•˜μ‹œλŠ” 뢄듀이라면 λŒ€ν‘œμ μœΌλ‘œ Frida, Drozer λ“± 을 μ‚¬μš©ν•˜μ‹œλ©΄μ„œ 동적, 정적 진단을 ν•˜μ‹œμ§€λ§Œ Objectionμ΄λΌλŠ” νˆ΄μ„ μ‚¬μš©ν•˜μ‹œλ©΄ λͺ‡ 가지 도ꡬ듀과 μ‘°ν•©ν•˜μ—¬ λ‹€μ–‘ν•œ μ‹œλ„λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Objection은 Run-Time Exploration 즉 λŸ°νƒ€μž„μ„ μ‘°μž‘ν•˜μ—¬ κ³΅κ²©μžκ°€ μ›ν•˜λŠ” ν–‰μœ„λ₯Ό μ„±κ³΅μ μœΌλ‘œ ν•  수 μžˆλ„λ‘ ν”„λ‘œμ„ΈμŠ€μ— μ‹€μ‹œκ°„μœΌλ‘œ μ£Όμž…ν•˜μ—¬ μ‚¬μš©ν•˜λ©° Frida 기반으둜 λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ— Python3 ν™˜κ²½μ—μ„œ frida ν™˜κ²½μ„ 사전에 κ΅¬μΆ•ν•΄μ£Όμ‹œκ³  pip install을 톡해 objection을 μ„€μΉ˜ν•΄μ•Ό λ©λ‹ˆλ‹€. *프리닀 ν™˜κ²½ ꡬ좕 guleum-zone.tistory.com/137 프리닀(Frida) ν™˜κ²½ ꡬ좕 κ°œμš” Fridaλž€ Oleκ°€ κ°œλ°œν•œ DBI(Dynamic Binary..

MOBILE
[Android] Data Storage(Plain/Encryption) 취약점

κ°œμš” Mobile OWASP Top 10 쀑 아직도 높은 μˆœμœ„κΆŒμ— 자리 작고 μžˆλŠ” 취약점 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 일반적으둜 κ°œλ°œμžλ“€μ΄ 앱을 개발 κ΅¬ν˜„ν•˜λŠ” λ‹¨κ³„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈ 츑에 μ €μž₯λ˜λŠ” λ°μ΄ν„°λŠ” 타 μ‚¬μš©μžλ“€μ΄ μ‰½κ²Œ μ•‘μ„ΈμŠ€ ν•˜μ§€ λͺ»ν•˜λ„둝 μ œν•œμ„ ν•˜μ§€λ§Œ μƒŒλ“œλ°•μŠ€ ν™˜κ²½μΌμ§€λΌλ„ λ£¨νŒ… λ˜λŠ” νƒˆμ˜₯을 톡해 높은 κΆŒν•œμ„ νšλ“ν•˜κ²Œ 되고 보호 κΈ°λŠ₯을 μ‰½κ²Œ μš°νšŒν•˜μ—¬ μ•‘μ„ΈμŠ€κ°€ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€. 보톡 μ•…μ„± μ•±μ΄λ‚˜ μ•…μ˜μ μΈ μ‚¬μš©μžκ°€ λΆ„μ‹€λœ 단말을 λŒ€μƒμœΌλ‘œ κ°œμΈμ •λ³΄λ₯Ό νšλ“ν•  κ°€λŠ₯성이 μ‘΄μž¬ν•©λ‹ˆλ‹€. 1.log file 2.Plist file 3.androidmanifest.xml / SharedPreferecnes.xml 4.SQLite databases 5.Binary data stores 6.SD Card 7.Cloud synced μœ„μ˜ ..

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