ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๊ฐœ์š”

์•ˆ๋“œ๋กœ์ด๋“œ์˜ Content Provider๋Š” "์ฝ˜ํ…์ธ  ์ œ๊ณต์ž "๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ค‘์•™ ์ €์žฅ์†Œ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ๊ณต๊ฐ„์— ๋‹ค๋ฅธ ์•ฑ์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” 4๋Œ€ ์ปดํฌ๋„ŒํŠธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋‚˜ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, Web ๋“ฑ์„ ํ†ตํ•ด์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ฝ˜ํ…์ธ  ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์•ฑ ๊ณผ ์•ฑ ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ๊ด€๋ฆฌํ•˜๊ณ  ํ†ต์ œํ•˜๊ธฐ ์œ„ํ•ด "Content Resolver"๋ผ๋Š” ์ค‘๊ฐœ์ž ์—ญํ• ์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋•Œ ์ฝ˜ํ…์ธ  ์ œ๊ณต์ž์˜ ์ฃผ์†Œ์ธ ์ฆ‰ ์ด๋™ํ•˜๊ณ ์ž ํ•˜๋Š” URI๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด์•ผ ๋ฉ๋‹ˆ๋‹ค.

*uri ํ˜•ํƒœ -> content://user_dictionary/test ๋“ฑ

 

http://www.w3big.com/ko/android/android-content-providers.html

 

Content Provider๋Š” ์ปดํฌ๋„ŒํŠธ ์ค‘ ์ผ๋ถ€์ด๊ธฐ ๋•Œ๋ฌธ์— Androidmanifest.xml์— ์„ ์–ธ๋œ <provider> ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •์ด ๋˜์–ด์žˆ๋Š”์ง€ ์ ๊ฒ€์„ ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ์ทจ์•ฝ์ ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋™์  ๋ถ„์„๋„๊ตฌ์ธ "Drozer(๋“œ๋กœ์ €)"๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ตฌ์ถ• ๋ฐฉ๋ฒ•์€ ํ•˜๋‹จ์˜ ํฌ์ŠคํŒ… ์ฐธ๊ณ 

guleum-zone.tistory.com/152

 

[Android] ๋“œ๋กœ์ €(Drozer) ํ™˜๊ฒฝ ๊ตฌ์ถ•

๊ฐœ์š” Drozer๋Š” FSecureLABS์—์„œ ๊ฐœ๋ฐœํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ ๋™์  ๋ถ„์„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ PC์™€ ๋””๋ฐ”์ด์Šค ์‚ฌ์ด์˜ Agent๋ฅผ ํ†ตํ•ด ์•ฑ์˜ ์ทจ์•ฝ์„ฑ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋“œ๋กœ์ € ์ „์— Mercury๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ

guleum-zone.tistory.com


๋“œ๋กœ์ € ์ฝ˜์†”์—์„œ ์ง„๋‹จ์„ ํ•˜๊ณ ์žํ•˜๋Š” ์•ฑ์˜ "ํŒจํ‚ค ์ง€๋ช…"์„ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋™์  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ƒ๋‹จ์— Content Providers exported๋ผ๋Š” ๋…ธ์ถœ๋œ 1๊ฐœ์˜ ์ฝ˜ํ…์ธ  ํ”„๋กœ๋ฐ”์ด๋”๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋‚ด๋ถ€์— <provider> ํƒœ๊ทธ๋ฅผ ์ฐพ์•„์„œ ์„ค์ •์ด ์–ด๋–ป๊ฒŒ ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Androidmanifest.xml ์— ์กด์žฌํ•˜๋Š” <provider> ํƒœ๊ทธ๋Š” exported="true" ์„ค์ •์„ ์ง€์ •ํ•ด ์คŒ์œผ๋กœ์จ ๋‹ค๋ฅธ ์•ฑ์—์„œ ์ ‘๊ทผ์ด ํ—ˆ์šฉ ๋˜๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ธ ์‹œํ์–ด ๋ฑ…ํฌ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์•ฑ ๋‚ด๋ถ€์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ URI ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋™์  ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•ด๋ณธ ๊ฒฐ๊ณผ Accessible Content URIs: ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์ฃผ์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ €์žฅ๋œ ๋‚ด๋ถ€๋กœ ์ ‘๊ทผํ•ด๋ณด๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋กœ๊ทธ์ธํ–ˆ๋˜ ์‚ฌ์šฉ์ž์˜ ID๊ฐ€ ์‹œํ€€์Šค ์ˆœ์„œ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ๋Š”๊ฒƒ์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

run app.provider.query <URI์ฃผ์†Œ> --selection "'"

์ถ”๊ฐ€์ ์œผ๋กœ ํ•ด๋‹น DB์— SQL iNJECTION์„ ์‹œ๋„ํ•ด๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋‹จ์˜ ๋ช…๋ น์„ ํ†ตํ•ด ์—๋Ÿฌ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚จ์œผ๋กœ์จ ์ถ”๊ฐ€์ ์ธ ์ธ์ ์…˜์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ๋Š” ์ถ”์ธก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

run app.provider.query <URI์ฃผ์†Œ> --projection "* from SQLITE_MASTER where type='table';--")

์ƒ๋‹จ์˜ ๋ช…๋ น์„ ํ†ตํ•ด ์‚ฌ์ „์— ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋˜ ํ…Œ์ด๋ธ” ์˜ ์ด๋ฆ„์ด ์ถœ๋ ฅ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

run app.provider.query <URI์ฃผ์†Œ> --projection "*from names;--")

์šฐ๋ฆฌ๊ฐ€ ์œ„์—์„œ Contents Provider๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•œ ์‚ฌ์šฉ์ž์˜ ID๋Š” "names"๋ผ๋Š” ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ์ •๋ณด๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ๋‚ ๋ ค๋ฒ„๋ฆฌ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋Œ€์‘๋ฐฉ์•ˆ

Androidmanifest.xml์— ์„ค์ •๋œ <provider> ์†์„ฑ์„ exported="false" ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์™ธ๋ถ€์— ๋…ธ์ถœ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ„๋„์˜ ๊ถŒํ•œ์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ๋œ๋‹ค.

๊ณต์œ ํ•˜๊ธฐ ๋งํฌ
Comment