[11μ›” 1μ£Όμ°¨]


ν•΄ν‚Ή μ•Œλ €μ€„κ²Œ
13ν™”: Directory Listing

μ•ˆλ…•ν•˜μ„Έμš”.ν•΄ν‚Ή μ•Œλ €μ€„κ²Œμž…λ‹ˆλ‹€. πŸ‘‹
이전 ν•΄ν‚Ή μ•Œλ €μ€„κ²Œμ—μ„œ μ†Œκ°œν–ˆλ˜ Path Traversal을 κΈ°μ–΅ν•˜μ‹œλ‚˜μš”?
λ§žμ•„μš”! /, ./ λ‚˜ ../와 같은 디렉터리 κ΄€λ ¨ λ¬Έμžλ“€μ„ μ΄μš©ν•΄ μ„œλ²„ λ‚΄ 디렉터리λ₯Ό 자유둭게 μ‘°μž‘ν•΄ μ—¬ν–‰ν•  수 μžˆλŠ” μ·¨μ•½μ μ΄μ—ˆμ£ ! πŸ‘  ν•˜μ§€λ§Œ λͺ¨λ“  μ„œλ²„μ˜ 파일 ꡬ성이 같은 것도 μ•„λ‹ˆκ³  μ€‘μš”ν•œ 파일의 μœ„μΉ˜λ„ λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 또, μ„œλ²„ κ΄€λ¦¬μžλ§Œμ΄ 경둜λ₯Ό μ•Œ 수 μžˆλ„λ‘ λ””λ ‰ν„°λ¦¬λ‚˜ 파일 이름을 λ‚œμˆ˜ κ°’μœΌλ‘œ μ €μž₯ν•  μˆ˜λ„ 있겠죠. 그런 κ²½μš°μ—” μ–΄λ–»κ²Œ λŒ€μ²˜ν•΄μ•Ό ν• κΉŒμš”? πŸ€”

μš°λ¦¬κ°€ 길을 λͺ¨λ₯Ό 땐 지도λ₯Ό 톡해 길을 μ°ΎλŠ” κ²ƒμ²˜λŸΌ, λ˜‘κ°™μ΄ μ„œλ²„ 디렉터리 지도λ₯Ό μ°ΎλŠ”λ‹€λ©΄ μ„œλ²„λ₯Ό μ—¬ν–‰ν•˜κΈ° 더 쉽겠죠! πŸ˜‰  κ·Έλ•Œ μ΄μš©ν•  수 μžˆλŠ” 취약점이 λ°”λ‘œ λ””렉터리 λ¦¬μŠ€νŒ…(Directory Listing)μž…λ‹ˆλ‹€. 디렉터리 λ¦¬μŠ€νŒ…μ„ μ΄μš©ν•˜λ©΄ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λΈŒλΌμš°μ§•ν•˜λŠ” λͺ¨λ“  νŽ˜μ΄μ§€λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. 즉, 디렉터리 λ‚΄μ˜ λͺ¨λ“  파일 ν˜Ήμ€ 디렉터리듀이 λ…ΈμΆœλ˜μ–΄μ„œ μ„œλ²„μ˜ ꡬ쑰에 λŒ€ν•œ 정보λ₯Ό νƒˆμ·¨λ‹Ήν•˜κ²Œ λ©λ‹ˆλ‹€.

μ–΄λ–»κ²Œ 이런 일이 κ°€λŠ₯ν•œ κ±ΈκΉŒμš”?
λ°œμƒ 원인과 ν•¨κ»˜ μ‚΄νŽ΄λ³΄λ„λ‘ ν•΄μš”! 디렉터리 λ¦¬μŠ€νŒ…μ€ 잘λͺ»λœ μ„œλ²„ μ„€μ •μœΌλ‘œλΆ€ν„° λ°œμƒν•©λ‹ˆλ‹€. λ…ΈμΆœλ˜λ©΄ μ•ˆ λ˜λŠ” μ›Ή μ„œλ²„ κ²½λ‘œμ— λŒ€ν•΄ 접근을 μ°¨λ‹¨ν•˜μ§€ μ•Šκ±°λ‚˜ Indexes κΈ°λŠ₯을 μ‚¬μš©ν•œλ‹€λ©΄ λ°œμƒν•˜κ²Œ λ©λ‹ˆλ‹€. Indexes κΈ°λŠ₯은 μ ‘κ·Όν•˜κ³ μž ν•˜λŠ” 디렉터리가 μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우 디렉터리 λ‚΄ λͺ¨λ“  νŒŒμΌμ„ λ³΄μ—¬μ£ΌλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

μœ„ 화면을 보신 적이 μžˆμœΌμ‹ κ°€μš”? Indexes κΈ°λŠ₯을 μ‚¬μš©ν•΄ λ³Ό 수 μžˆλŠ” ν™”λ©΄μž…λ‹ˆλ‹€. 이런 화면이 μ„œλ²„ κ΄€λ¦¬μžλ‚˜ κ°œλ°œμžκ°€ μ•„λ‹Œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ—κ²Œ 보인닀면 μœ„μ—μ„œ μ–˜κΈ°ν–ˆλ“―μ΄ μ„œλ²„ ꡬ쑰 정보가 λ…ΈμΆœλ˜κ±°λ‚˜ μ†ŒμŠ€ μ½”λ“œλ‚˜ λ°±μ—… 파일 등이 유좜될 수 μžˆμ–΄μ„œ λ‹€λ₯Έ μ·¨μ•½μ μœΌλ‘œ μ΄μ–΄μ§ˆ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 😱

μ–΄λ–»κ²Œ λ°œκ²¬ν•  수 μžˆλ‚˜μš”?
κ°€μž₯ μ‰½κ²Œ λ°œκ²¬ν•  방법은 λ¬΄μž‘μœ„λ‘œ 디렉터리λ₯Ό λŒ€μž…ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λ•Œ λ§Žμ€ μ‚¬λžŒμ΄ 자주 μ‚¬μš©ν•˜λŠ” 디렉터리λ₯Ό λŒ€μž…ν•œλ‹€λ©΄ λ”μš± μ‰½κ²Œ λ°œκ²¬ν•  수 있겠죠! λ§Œμ•½ http://imhacker.com/ λΌλŠ” μ›ΉνŽ˜μ΄μ§€κ°€ μžˆλ‹€κ³  κ°€μ •ν•΄λ³Όκ²Œμš”. κ·Έλ ‡λ‹€λ©΄ μ΄λ•Œ URL에 μ‚¬λžŒλ“€μ΄ 많이 μ‚¬μš©ν•˜λŠ” admin, test, iamges λ“±μ˜ 디렉터리λ₯Ό λΆ™μ—¬ http://imhacker.com/adminκ³Ό 같은 μ‹μœΌλ‘œ λ°”κΎΈμ–΄ λŒ€μž…ν•΄ λ³΄λŠ” 것 μž…λ‹ˆλ‹€. μ•„λ‹ˆλ©΄ URL에 파일λͺ…을 μ œκ±°ν•˜κ³  뢙인닀면 μ‘΄μž¬ν•˜λŠ” κ²½λ‘œμ— κ°€μž₯ μ‰½κ²Œ μ ‘κ·Όν•  수 μžˆμ„ κ±°μ˜ˆμš”! http://imhacker.com/images/hacker.png에 파일λͺ… hacker.pngλ₯Ό λΉΌκ³  http://imhacker.com/images/만 μž‘μ„±ν•΄ μ „λ‹¬ν•΄μ£ΌλŠ” μ‹μœΌλ‘œμš”!

막을 수 μžˆλŠ” 방법은?
μœ„μ—μ„œ 디렉터리 λ¦¬μŠ€νŒ…μ€ 잘λͺ»λœ μ„œλ²„ μ„€μ •μœΌλ‘œλΆ€ν„° λ°œμƒν•œλ‹€κ³  ν–ˆμ—ˆμ£ ? κ·Έλ ‡κΈ° λ•Œλ¬Έμ— 디렉터리 λ¦¬μŠ€νŒ…μ€ μ„œλ²„ μ„€μ •λ§Œ λ°”κΏ”μ€€λ‹€λ©΄ κ°„λ‹¨νžˆ λ°©μ§€ν•  수 μžˆμ–΄μš”. μ„œλ²„μ˜ OSλ³„λ‘œ http μ„€μ • 파일인 http.conf νŒŒμΌμ„ μ°Ύμ•„μ„œ Indexes μ˜΅μ…˜μ„ μ œκ±°ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€. κ°„λ‹¨ν•˜κ²Œ Linuxμ—μ„œ μ•„νŒŒμΉ˜(Apache)λ₯Ό μ‚¬μš©ν•  경우λ₯Ό κΈ°μ€€μœΌλ‘œ μžμ„Ένžˆ μ•Œμ•„λ³Όκ²Œμš”! πŸ˜„
μ•„νŒŒμΉ˜μ˜ http μ„€μ • 파일(http.conf)은 κΈ°λ³Έ μ„€μΉ˜λ₯Ό 톡해 μ§„ν–‰ν•  경우 /etc/httpd/http.conf ν˜Ήμ€ /etc/httpd/conf/http.conf 경둜둜 μ €μž₯이 λΌμš”.

ν•΄λ‹Ή νŒŒμΌμ„ 보면 μœ„μ™€ 같이 μ„œλ²„ κΈ°λŠ₯ μ œμ–΄ 뢀뢄을 λͺ…μ‹œν•˜λŠ” λΆ€λΆ„μ—μ„œ "Options Indexes FollowSymLinks" λΌλŠ” λ¬Έμžμ—΄μ„ 찾을 수 μžˆλŠ”λ°, ν•΄λ‹Ή 이 λ¬Έμžμ—΄μ—μ„œ Indexes λ¬Έμžμ—΄μ„ μ—†μ• μ€€λ‹€λ©΄ λ””렉토리 λͺ©λ‘μ΄ 화면에 λ…ΈμΆœλ˜λŠ” 것을 막을 수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν•΄λ‹Ή 쑰치만 μ·¨ν•˜κ²Œ λ˜λ©΄ ν•˜λ‚˜μ˜ 문제점이 μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ 였λ₯˜ λ©”μ‹œμ§€μ— κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€.

였λ₯˜ λ©”μ‹œμ§€μš”?
403 였λ₯˜
404 였λ₯˜
잠깐 였λ₯˜ λ©”μ‹œμ§€μ— λŒ€ν•΄μ„œ 짚고 λ„˜μ–΄κ°€ 보도둝 ν• κ²Œμš”. μ•„λ§ˆ μΈν„°λ„·μ—μ„œ μ›Ή νŽ˜μ΄μ§€λ₯Ό λŒμ•„λ‹€λ‹ˆλ‹€ 보면 μœ„μ™€ 같은 λ©”μ‹œμ§€λ“€μ„ ν•œ λ²ˆμ”©μ€ 보신 적이 μžˆμœΌμ‹€ κ±°μ˜ˆμš”!
HTTPλ₯Ό 톡해 톡신할 λ•Œ μ—¬λŸ¬ 였λ₯˜λ‘œ 인해 ν•΄λ‹Ή μ›ν•˜λŠ” μ›Ή νŽ˜μ΄μ§€μ— μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λŠ” κ²½μš°κ°€ 있죠? 각 였λ₯˜μ—λŠ” 무엇이 원인인지 μ•Œμ•„μ•Ό ν•˜λ―€λ‘œ μœ„μ˜ μ‚¬μ§„μ²˜λŸΌ 각 였λ₯˜μ— 번호λ₯Ό λΆ€μ—¬ν•΄ κ΅¬λΆ„ν•©λ‹ˆλ‹€. ν•΄λ‹Ή νŽ˜μ΄μ§€λ₯Ό μš”μ²­λ°›μ€ μ„œλ²„λŠ” μ‚¬μš©μžκ°€ μš”μ²­ν•œ μ›Ή νŽ˜μ΄μ§€μ— μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ©΄ ν•΄λ‹Ή λ²ˆν˜Έμ™€ 이유λ₯Ό 좜λ ₯ν•΄ μ‚¬μš©μžκ°€ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λŠ” μ΄μœ μ— λŒ€ν•΄ μ•Œλ €μ£ΌλŠ” 것이죠.
μœ„μ˜ 사진에 λ‚˜νƒ€λ‚˜ μžˆλŠ” 였λ₯˜λŠ” 403 였λ₯˜μ™€ 404 였λ₯˜μž…λ‹ˆλ‹€. 403 였λ₯˜λŠ” 사진에 "Forbidden"이라고 μ ν˜€μžˆλ“―μ΄ μ‚¬μš©μžκ°€ 보낸 μ›Ή νŽ˜μ΄μ§€μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ΄ μ—†λŠ” μ‚¬μš©μžκ°€ μš”μ²­ν–ˆμ„ λ•Œ κ±°μ ˆν–ˆμ„ 경우 μƒκΈ°λŠ” 였λ₯˜ μ½”λ“œμž…λ‹ˆλ‹€. 즉, μ„œλ²„κ°€ ν•΄λ‹Ή μ›Ή νŽ˜μ΄μ§€μ— λŒ€ν•œ 접근을 막아놓은 것을 μ˜λ―Έν•΄μš”.

κ·Έ μ˜†μ˜ 404 였λ₯˜μ—λŠ” "Not Found"라고 μ ν˜€μžˆμ£ ? λ§žμ•„μš”! 😯  말 κ·ΈλŒ€λ‘œ ν•΄λ‹Ή μ›Ή νŽ˜μ΄μ§€λ₯Ό 찾을 수 없을 경우 λ„μš°λŠ” 였λ₯˜ μ½”λ“œμž…λ‹ˆλ‹€. 즉, μ‚¬μš©μžκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” κ²½λ‘œμ— μ ‘κ·Όν•  경우 좜λ ₯이 λ©λ‹ˆλ‹€.

λ‹€μ‹œ 본둠으둜 λŒμ•„μ™€ 보도둝 ν• κ²Œμš”! μ™œ 였λ₯˜ λ©”μ‹œμ§€κ°€ λ¬Έμ œκ°€ λ κΉŒμš”? λ§Œμ•½ 아무 λ””λ ‰ν„°λ¦¬λ‚˜ μž…λ ₯ν–ˆμ„ λ•Œ 403 였λ₯˜ λ©”μ‹œμ§€κ°€ λ‚˜μ˜€λ©΄ ν•΄λ‹Ή μ„œλ²„μ— μ˜ν•΄ μ°¨λ‹¨λœ 것이기 λ•Œλ¬Έμ— ν•΄λ‹Ή 디렉터리가 μ‘΄μž¬ν•˜λŠ” 것은 μ•Œ 수 있겠죠? λ°˜λŒ€λ‘œ 404 였λ₯˜ λ©”μ‹œμ§€κ°€ λ‚˜μ˜¨λ‹€λ©΄ ν•΄λ‹Ή 디렉터리가 μ‘΄μž¬ν•˜μ§€ μ•ŠμŒμ„ μ•Œ 수 μžˆκ² λ„€μš”!
이렇듯 였λ₯˜ λ©”μ‹œμ§€λ“€μ„ 톡해 λ””λ ‰ν„°λ¦¬μ˜ 쑴재 μ—¬λΆ€ λ“±μ˜ 정보듀을 μ•Œ 수 μžˆμ–΄ λ¬Έμ œκ°€ λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ 이런 정보λ₯Ό μœ μΆ”ν•  수 없도둝 403 ν˜Ήμ€ 404 였λ₯˜κ°€ λ°œμƒν•  κ²½μš°μ— 였λ₯˜ λ©”μ‹œμ§€ λŒ€μ‹  μ„œλ²„μ˜ 메인 μ›Ή νŽ˜μ΄μ§€λ‘œ λ¦¬λ‹€μ΄λ ‰μ…˜ μ‹œν‚€λŠ” λ“±μ˜ 좔가적인 쑰치λ₯Ό ν•˜λ©΄ λ”μš± μ•ˆμ „ν•˜κ² μ£ !
였늘의 ν•΄ν‚Ή μ•Œλ €μ€„κ²ŒλŠ” μ—¬κΈ°κΉŒμ§€! λ‹€μŒ 주에 λ‹€λ₯Έ 주제둜 찾아롙도둝 ν• κ²Œμš”. λ‹€μŒ μ‹œκ°„μ—λ„ λ§Œλ‚˜μš”~ πŸ€—

✏️ ν•΄ν‚Ήμ§Ήμ§Ή λ‰΄μŠ€λ ˆν„°μ—μ„œ λ‹€λ£¨λŠ” κΈ°μˆ λ“€μ€ μ˜€λ‘œμ§€ ꡐ윑적인 λͺ©μ μœΌλ‘œ μ‚¬μš©λ˜λ©°, 이λ₯Ό μ•…μš©ν•˜μ—¬  λ°œμƒν•˜λŠ” λͺ¨λ“  μ±…μž„μ€ λ³ΈμΈμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€.
였늘 μ „ν•΄λ“œλ¦° λ‚΄μš©μ΄ λ§ˆμŒμ— λ“œμ…¨λ‚˜μš”?
μ£Όμœ„ μΉœκ΅¬λ“€μ—κ²Œ λ‰΄μŠ€λ ˆν„°λ₯Ό μΆ”μ²œν•΄μ£Όμ„Έμš”!
λ‹€μŒμ£Όμ—λ„ μ•Œμ°¬ λ‚΄μš©μœΌλ‘œ λŒμ•„μ˜€κ² μŠ΅λ‹ˆλ‹€. πŸ˜™
ν˜Ήμ‹œ λ§ˆμŒμ— μ•ˆλ“œλŠ” 뢀뢄이 μžˆμ—ˆλ‚˜μš”? μ—¬κΈ°μ—μ„œ ν”Όλ“œλ°±μ„ μ „λ‹¬ν•΄μ£Όμ„Έμš”!
μ—¬λŸ¬λΆ„μ˜ μ˜κ²¬λ“€μ„ 적극 λ°˜μ˜ν•΄μ„œ λ”μš± μœ μ΅ν•œ λ‰΄μŠ€λ ˆν„°λ₯Ό λ§Œλ“€μ–΄κ°€λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. πŸ˜ƒ
ν•΄ν‚€λ³΄μ΄μ¦ˆ
hackyboizteam@gmail.com
μ„œμšΈμ‹œ 광진ꡬ κ΅°μžλ™ 134-33 3μΈ΅
μˆ˜μ‹ κ±°λΆ€ Unsubscribe