ν‹°μŠ€ν† λ¦¬ λ·°

κ°œμš”

λ‚œλ…ν™”λž€ μ†Œν”„νŠΈμ›¨μ–΄ μΈ‘λ©΄μ—μ„œ 일반적인 μ‚¬λžŒλ“€μ΄ μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ²Œ λ˜λŠ” 역뢄석(Reverse engineering)을 μ§€μ—°μ‹œν‚€κΈ° μœ„ν•΄ μ˜λ„μ μœΌλ‘œ μˆ¨κΈ°λŠ” ν–‰μœ„μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ°˜λŒ€λ‘œ μ•…μ˜μ μΈ μ‚¬μš©μžλ“€μ€ "μ‚¬νšŒκ³΅ν•™ 기법", "λΈ”λž™λ¦¬μŠ€νŠΈ 둜직 우회", "읡λͺ…μ„±" 등을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ μ‘΄μž¬ν•©λ‹ˆλ‹€.

 

일반적으둜 ꡬ글에 μ ‘μ†ν•˜κΈ° μœ„ν•΄ www.google.com  μ„ μž…λ ₯ν•˜μ—¬ μ§€μ •λœ DNS(Domain Name Server) λͺ…을 톡해 μ‰½κ²Œ μ ‘κ·Όν•˜κ³  μžˆμ§€λ§Œ μ„œλ²„μ˜ IPμ£Όμ†Œλ‘œλ„ λ™μΌν•˜κ²Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

URL 인코딩을 ν•˜λŠ” κ²½μš°λ„ μ‘΄μž¬ν•˜μ§€λ§Œ "http%3a%2f%2f216.58.197.196" μ£Όμ†Œλ₯Ό λ³΄μ‹œλ©΄ 특수 λ¬Έμžμ—΄λ§Œ 인코딩 될 뿐 xxx.xxx.xxx.xxx 같이 "." 점으둜 κ΅¬λΆ„ν•˜μ—¬ μ „μ†‘ν•˜λŠ” 것은 λ§ˆμ°¬κ°€μ§€μ΄λ―€λ‘œ λ‘œμ§μ— "."을 ν•„ν„°λ§ν•˜κ³  μžˆμ„ 경우 μ•…μ„± μ£Όμ†Œλ‘œ Open Redirect 같은 ν–‰μœ„κ°€ λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

λ‚œλ…ν™” 방식

ν‘œμ€€ IPμ£Όμ†ŒλŠ” BASE 256 방식을 μ‚¬μš©ν•©λ‹ˆλ‹€. xxx.xxx.xxx.xxx 의 ν•„λ“œμ—μ„œ 각 μ˜₯ν…Ÿμ€ 0λΆ€ν„° 255κΉŒμ§€ 값을 μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ BASE 10 방식을 톡해 IPμ£Όμ†Œλ₯Ό λ³€ν™˜ν•˜μ—¬ ν•΄λ‹Ή κ²°κ³Ό 값을 μΆ”κ°€μ μœΌλ‘œ μΈμ½”λ”©ν•˜κ±°λ‚˜ HEX ν˜•νƒœλ‘œ μ£Όμ†Œλ₯Ό ν‘œν˜„ν•΄λ²„λ¦¬λ©΄ 일반적인 μ‚¬μš©μžλ“€ μž…μž₯μ—μ„œλŠ” ν•΄λ‹Ή URL μ£Όμ†Œκ°€ μ–΄λ””λ‘œ ν–₯ν•˜λŠ”μ§€ μΆ”μΈ‘ν•˜κΈ°κ°€ νž˜λ“€μ–΄μ§‘λ‹ˆλ‹€.

NAME: www.google.com
ADDRESS: 216.58.197.196

216 * (256)^3 + 58 * (256)^2 + 197 * (256)^1 + 196 * (256)^0

216 * (256)^3 ==> 216 * 16,777,216 ==> 3,623,878,656
58 * (256)^2 ==> 58 * 65,536 ==> 3,801,088
197 * (256)^1 ==> 197 * 256 ==> 50,432
196 * (256)^0 ==> 196 * 1 ==> 196

3,623,878,656 + 3,801,088 + 50,432 + 196 ==> 3,627,730,372
Total: 3,627,730,372

URL: http://3627730372
Hex to INT: http://0xd83ac5c4

λ„μΆœλœ κ²°κ³Ό 값을 톡해 URL에 μž…λ ₯ν•˜μ—¬ 접속해보면 λ™μΌν•˜κ²Œ "ꡬ글" μ‚¬μ΄νŠΈμ— 접속이 κ°€λŠ₯ν•œ 것을 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μ£Όμ†ŒλŠ” λΈŒλΌμš°μ €λ§ˆλ‹€ 이해할 수 μžˆλŠ”μ§€λŠ” ν…ŒμŠ€νŠΈλ₯Ό 해봐야 ν•˜μ§€λ§Œ λŒ€λΆ€λΆ„μ˜ λΈŒλΌμš°μ €(IE, Chrome)μ—μ„œλŠ” 이λ₯Ό μ΄ν•΄ν•˜κ³  접속이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

 

λ‚œλ…ν™”(Python)

github.com/D4Vinci/Cuteit ν•΄λ‹Ή μ£Όμ†Œμ—μ„œλŠ” python μ½”λ“œλ‘œ μ§œμ—¬μ§„ κ°„λ‹¨ν•œ λ‚œλ…ν™” λ„κ΅¬μž…λ‹ˆλ‹€. 취약점을 ν…ŒμŠ€νŠΈν•˜λ‹€ 보면 "." 필터링에 걸리게 λ˜κ±°λ‚˜ μ‚¬μš©ν•΄μ•Ό λ˜λŠ” μ£Όμ†Œλ₯Ό μˆ¨κ²¨μ•Ό ν•  λ•Œ 유용히 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

# git clone https://github.com/D4Vinci/Cuteit.git 
# cd Cuteit/
# python Cuteit.py 216.58.197.196

=================================Result==================================
- Converting IP to HEX -
 Using http://0xd8.58.197.196
 Using http://0xd8.0x3a.197.196
 Using http://0xd8.0x3a.0xc5.196
 Using http://0xd8.0x3a.0xc5.0xc4
 Using http://0x00000000d8.0x0000003a.0x0000c5.0x00c4
 Using http://0xd83ac5c4
 Using http://0330.0072.0305.0304
 Using http://3627730372
 Using http://%3216%2E%358%2E%3197%2E%3196
κ³΅μœ ν•˜κΈ° 링크
Comment