728x90

1. ์ง„๋‹จ์ž ( ๊ณต๊ฒฉ์ž ) ์•„์ดํ”ผ ์ฃผ์†Œ ํ™•์ธ

NAT ๋„คํŠธ์›Œํฌ [ 192.168.0.0/24 ] ๋กœ ์ง€์ •ํ–ˆ์—ˆ์Œ.

๋„คํŠธ์›Œํฌ ๋งˆ์Šคํ„ฐ 24 [ 255.255.255.0 ] ์œผ๋กœ 17๋ฒˆ์งธ ๋„คํŠธ์›Œํฌ์— ํ• ๋‹น ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ.

์ง„๋‹จ์ž(๊ณต๊ฒฉ์ž)๋Š” 17๋ฒˆ์งธ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Œ.

 

2. ๋Œ€์ƒ ( ํ”ผํ•ด์ž ) ์‹๋ณ„

-์ง„๋‹จ ๋Œ€์ƒ ์•„์ดํ”ผ ์ฃผ์†Œ ์ฐพ๊ธฐ

  • Netdiscover ๋„๊ตฌ
      sudo netdicover -i eth0 -r 192.168.0.0/24
  • 1,2,3 ์œผ๋กœ ํ• ๋‹น ๋œ ๊ฒƒ์€ Virtualbox ๋Š” ํ• ๋‹น๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ์ด๋‹ค. ๋”ฐ๋ผ์„œ 18์ด ํƒ€๊ฒŸ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ARP ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„ธ๊ทธ๋จผํŠธ์—์„œ ์—ฐ๊ฒฐ ๋œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์Šค์บ๋„ˆ

 

 

  • Netenum ๋„๊ตฌ
    • ๋ณธ์ธ์˜ IP ์ฃผ์†Œ๋˜ํ•œ ํฌํ•จ์‹œํ‚จ๋‹ค.
      sudo apt install irpas 
      
      sudo netenum 192.168.0.0/24 10 0 
      
      sudo netenum <destination> [timeout] [verbosity]
        * [ timeout ] : ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„ (์ดˆ)
        * [ verbosity ] : ์ƒ์„ธ๋ ˆ๋ฒจ์ •์˜ ( 0-3 ) ๊ธฐ๋ณธ๊ฐ’์€ 0 
    • ICMP ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•˜์—ฌ ์›น ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์•„์ดํ”ผ ์ฃผ์†Œ๋ฅผ ์Šค์บ”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ
  • nmap ๋„๊ตฌ ← ๊ฑฐ์˜ ๋ญ ์ด๊ฑฐ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ .
    • ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์˜ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ ์ •๋ณด ๋ฐ ์„œ๋น„์Šค ์ •๋ณด๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์ง€์†์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ
    • ARP Protocol ์„ ์‚ฌ์šฉ ํ•œ๋‹ค. 
      • sn : service ์Šค์บ”์€ ํ•˜์ง€ ์•Š๊ณ  ํ˜ธ์ŠคํŠธ๊ฐ€ ์‚ด์•„ ์žˆ๋Š”์ง€๋งŒ ํ™•์ธํ•ด๋ณธ๋‹ค.
sudo nmap -sn 192.168.0.0/24

3. ๋ถˆํ•„์š”ํ•œ ํฌํŠธ ์Šค์บ”, ์ฒซ ๋ฒˆ์งธ

์—ด๋ฆฐ ํฌํŠธ ๋ฐ ์„œ๋น„์Šค ๊ฒ€์ƒ‰

  • Nmap ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•œ ์—ด๋ฆฐ ํฌํŠธ ๋ฐ ์„œ๋น„์Šค ๊ฒ€์ƒ‰
sudo nmap -p1-65535 192.168.0.18

sudo nmap -p(port range) (target IP )

sudo nmap -p(port range) -O (target IP )
    * -O ๋ช…๋ น์–ด๋กœ OS ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Œ - 100% ์‹ ๋ขฐ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ฐธ๊ณ ํ• ๋งŒํ•œ ์ž๋ฃŒ ์ด๊ธด ํ•˜๋‹ค. 

4. ๋ถˆํ•„์š”ํ•œ ํฌํŠธ ์Šค์บ”, ๋‘ ๋ฒˆ์งธ

nmap

nmap ์—์„œ๋Š” NSE ๋ฅผ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ๋ฐ, ์ด๋Š” ๊ณต๊ฒฉ๊นŒ์ง€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ.

  • -sV ์˜ต์…˜์œผ๋กœ ์—ด๋ฆฐํฌํŠธ๋ฅผ ์กฐ์‚ฌํ•˜์—ฌ ์„œ๋น„์Šค/๋ฒ„์ „ ์ •๋ณด ํ™•์ธ
sudo nmap -p1-65535 -sV 192.168.0.18
sudo nmap -p(port range) -sV (target IP )
  • -A ์˜ต์…˜์œผ๋กœ ์šด์˜์ฒด์ œํƒ์ง€, ๋ฒ„์ „ํƒ์ง€, ์Šคํฌ๋ฆฝํŠธ ์Šค์บ๋‹, traceroute ์‚ฌ์šฉ ๊ฐ€๋Šฅ
sudo nmap -p1-65535 -A 192.168.0.18

Zenmap

๊ณต์‹ nmap GUI ๋„๊ตฌ๋กœ CLI ํ™˜๊ฒฝ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ถœ์‹œ ํ•จ.

 

5. Exploit

  • Exploit DB

์นจํˆฌ ๋ฐ์ดํ„ฐ์™€ ์ทจ์•ฝ์  ์—ฐ๊ตฌ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐœ๋ฐœ ๋œ ๊ณต๊ฐœ ๋œ ๊ณต๊ฒฉ ๋ฐ ์ทจ์•ฝ ์†Œํ”„ํŠธ์›จ์–ด์˜ CVE ์ €์žฅ์†ŒOffensive Security's Exploit Database Archive์„œ๋น„์Šค์™€ ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด,์•…์„ฑ์ฝ”๋“œ๋ฅผ ๋‹ค ์•Œ๋ ค์ค€๋‹ค.

    • ์‹ค๋ฌด์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉ ๋จ.Exploit DB

 

  • Searchsploit

Exploit-DB ์šฉ ๋ช…๋ น ์ค„ ๊ฒ€์ƒ‰๋„๊ตฌ - ์˜คํ”„๋ผ์ธ์—์„œ๋„ ์ ‘๊ทผ(๊ฒ€์ƒ‰) ๊ฐ€๋Šฅ ํ•จ.

 

sudo searchsploit proftpd 1.3.3c
sudo searchsploit (service) (service version)

์กฐํšŒ๊ฒฐ๊ณผ๊ฐ€ ์›๊ฒฉ์ฝ”๋“œ ์‹คํ–‰์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์œผ๋‹ˆ, ์›๊ฒฉ์—์„œ ์‰˜๋กœ ๋ช…๋ น์–ด ์ฃผ๋Š” ๊ฑธ๋กœ ๋ญ”๊ฐ€ ์ต์Šคํ”Œ๋กœ์ž‡์ด ๊ฐ€๋Šฅํ•˜๊ตฌ๋‚˜ ~ ์ƒ๊ฐํ•ด์•ผ ํ•จ.

6. Exploit, ๋‘๋ฒˆ ์งธ

์˜ค๋ฅธ์ชฝ์— ๋‚˜์™€์žˆ๋Š” Path ๋กœ ์ƒ์„ธ ๋‚ด์šฉ์„ ํ™•์ธ ๊ฐ€๋Šฅ ํ•จ.

sudo searchsploit -x 40962

7. ์ •๋ณด ์ˆ˜์ง‘ ๋งˆ๋ฌด๋ฆฌ

 

 

!! ํ•™์Šต์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”. ํƒ€์ธ์˜ ๋„คํŠธ์›Œํฌ์—์„œ IP ์Šค์บ” ํ•˜๋Š”๊ฒƒ์กฐ์ฐจ ๋ถˆ๋ฒ•์ž…๋‹ˆ๋‹ค. !! 

728x90
728x90

์‚ฌ์‹ค ์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ํ’€์–ด๋ฒ„๋ ธ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ’€์ด๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ๋‹ค. 

 

pyc ํŒŒ์ผ์„ ํ•˜๋‚˜ ์คฌ๋‹ค. ์„œ๋ฒ„ ์‹œ๊ฐ„๋„ ์คฌ๋Š”๋ฐ ์ž…๋ ฅ๊ฐ’์ด ์—†๋Š”๊ฑฐ๋กœ ๋ณด์•„ ํŒŒ์ผ์•ˆ์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์„œ๋ฒ„์— ์ง์ ‘ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผํ•  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

pyc ,, ๋””์ปดํŒŒ์ผ ํ•˜๋ผ๋Š” ๋“ฏ ํ•˜๋‹ค. ํŒŒ์ด์ฌ ์ปดํŒŒ์ผ ํŒŒ์ผ์ธ๋ฐ, c ์˜ exe ๊ฐ™์€ ๋А๋‚Œ์ด๋‹ค. ์ด๋ฏธ ๋งŒ๋“ค์–ด ๋‘” ์‹คํ–‰ํŒŒ์ผ์€ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์•„์ฃผ ์ ˆ์•ฝํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

pyc ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์—ด๋ฉด

์•Œ์•„๋ณผ ์ˆ˜ ์—†๋‹ค. ๋•Œ๋ฌธ์— ๋””์ปดํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค.

 

๋””์ปดํŒŒ์ผ์€ uncompyle6 ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์„ค์น˜๋„ ๊ฐ„ํŽธํ•˜๋‹ˆ ์„ค์น˜๋ฅผ ํ•ด๋‘์ž.

pip install uncompyle6
uncompyle6 bughela.pyc

์„ ์‹คํ–‰ํ–ˆ๋”๋‹ˆ, 

์ด์ œ ์ฝ”๋“œ๊ฐ€ ๋ณด์ธ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด flag ๊ฐ€ http ๋กœ ์ง์ ‘ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฒฝ์šฐ์— die ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋“ฏ ํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  sha512 ํ•ด์‹œ๋ฅผ ์ด์šฉํ•˜์—ฌ flag ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. ์ € ์ฝ”๋“œ๋งŒ ์ด์šฉํ•ด์„œ flag ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜์ž.

 

ํ•ด์‹œ ๋œ ok ๋ณ€์ˆ˜๋งŒ์„ ์ถœ๋ ฅํ•˜๋Š” ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค. ์‹คํ–‰์‹œํ‚ค๋ฉด 

์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜จ๋‹ค. flag ๋กœ ์ „์†ก์„ ์‹œ์ผœ์ฃผ๋ฉด ๋.

 

 

์ธ ์ค„ ์•Œ์•˜์œผ๋‚˜ ํ‹€๋ ธ๋‹ค. ์™œ์ธ๊ณ  ํ•˜๋‹ˆ, ์šฐ๋ฆฌ๋Š” ํ•ด์‹œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ปดํ“จํ„ฐ์˜ ์‹œ๊ฐ„์„ ์ด์šฉํ–ˆ๋‹ค.

์„œ๋ฒ„์‹œ๊ฐ„์ด ๋กœ์ปฌ ์‹œ๊ฐ„๋ณด๋‹ค 3๋ถ„ ์ •๋„ ๋น ๋ฅธ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ์—์„œ ์‹œ๊ฐ„์„ ์กฐ์ •ํ•ด์ค€ ๋’ค ๋‹ค์‹œ flag ๋ฅผ ๋ณด๋‚ด๋ฉด 

 

 

flag ๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

728x90

'Hacking > Wargame' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Wargame ) EASY_Crackme  (0) 2020.07.12
Wargame ) Web Chatting  (2) 2020.07.11
Wargame ) Type Confusion  (0) 2020.07.09
Wargame ) tmitter  (1) 2020.07.09
Wargame ) Fly me to the moon  (2) 2020.07.07
728x90

๋ฆฌ๋ฒ„์‹ฑ ๋ฌธ์ œ์ด๋‹ค. ๋ฆฌ๋ฒ„์‹ฑ ํ•  ๋•Œ๋งˆ๋‹ค ์œˆ๋„์šฐ ๊ฐ€์ƒํ™˜๊ฒฝ์— ๋“ค์–ด๊ฐ€๋Š”๊ฒŒ ๊ท€์ฐฎ๋‹ค. ๊ทธ๋žจ์„ ์™œ ํŒ”์•„๋ฒ„๋ ธ์„๊นŒ ํ•˜๋Š” ์ƒ๊ฐ๋„ ,,,,,

 

์–ด์จŒ๋“  , ๊ฐ„๋‹จํ•˜๋‹ค๋‹ˆ๊นŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ๋ฒˆ ํ’€์–ด๋ณด๊ฒ ๋‹ค.

 

 

๋“ค์–ด๊ฐ€๋ณด๋ฉด exe ํŒŒ์ผ์„ ์ฃผ๊ณ , ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ฐพ์•„๋ณด๋ผ๊ณ  ํ•œ๋‹ค.

 

์‹คํ–‰์‹œํ‚ค๋ฉด ์ด๋Ÿฐ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ณ , ์ž„์˜์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด  nono ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฐ•์Šค๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ƒํ•˜๊ฑด๋ฐ, ์ž…๋ ฅํ•œ ๊ฐ’๊ณผ ๋น„๊ตํ•˜๋Š” ๋ช…๋ น์–ด ์ดํ›„ ์˜ณ์€ ๊ฐ’์ด ์ž…๋ ฅ๋œ๋‹ค๋ฉด correct ! ์ฏค์ด ๋‚˜์˜ค๋ฉฐ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์˜ค๊ฒ ๊ณ  ์˜ณ์ง€ ์•Š์€ ๊ฐ’์ด ์ž…๋ ฅ๋œ๋‹ค๋ฉด nono ๋กœ jump ํ•ด์„œ ๋ฉ”์‹œ์ง€ ๋ฐ•์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ ์ฏค์ด ๋˜๊ฒ ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์˜ค๋‹ต์ผ ๊ฒฝ์šฐ nono ๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋จ์„ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ string ๊ฒ€์ƒ‰์„ ์ด์šฉํ•ด ํ•œ๋ฒˆ์— ๊ทธ ๋ช…๋ น์–ด๋กœ ์ด๋™ํ•˜์—ฌ ์—ฟ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ๋””๋ฒ„๊ฑฐ๋Š” x32Dbg ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

 

๋ญ”๊ฐ€, ์ค‘์š”ํ•œ string ๋“ค์ด ๋งŽ์ด ๋ณด์ธ๋‹ค. _my_b , birth ๊ฐ€ ์ด๊ณณ์—์„œ ์˜๋ฏธํ•˜๋Š” ์–ด๋–ค password ์ฏค์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

์ค‘๋‹จ์ ์„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ•œ๋ฒˆ ์ญ‰ ๊ฐ€๋ณด์ž.

์˜ค๋‹ต์„ ์ž…๋ ฅํ•œ ๋’ค ๋””๋ฒ„๊น…์„ ๊ณ„์†ํ–ˆ๋‹ค.

 

์ค‘์š”ํ•œ ์žฅ๋ฉด์ด๋‹ค. crackme1st.1122DAE ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ์„œ nono ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ์ง€ ์•„๋‹ˆ๋ฉด nono ๋ฅผ ๋„˜์–ด๊ฐ€ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋“ค์„ ๊ณ„์† ์‹คํ–‰ํ• ์ง€ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ call crackme1st.1122DAE ์— ์ค‘๋‹จ์ ์„ ๋งŒ๋“ค๊ณ  jmp ์—์„œ nono ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ์ฃผ์†Œ๋ฅผ ์ˆ˜์ •ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

nono ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋กœ ์ ํ”„ํ•˜๋Š” ๋ถ„๊ธฐ๋ฌธ์„ ๊ทธ๋ƒฅ ๋ฐ”๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ˆ˜์ •ํ•ด๋ณด๊ฒ ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  nono ๋ฅผ ๋„˜์–ด์„œ ์ญ‰ ์‹คํ–‰์‹œ์ผฐ๋‹ค.

๋‘˜๋‹ค ๋‚˜์™”๋‹ค. ๋ญ”๊ฐ€ ์ž˜ ๋ชป๋œ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ผ๋‹จ good ์ด ๋‚˜์˜จ๊ฑธ๋กœ ๋ณด์•„, ์ธ์ฆ์ ˆ์ฐจ๋Š” ๋„˜์–ด๊ฐ„๊ฒƒ๊ฐ™์€๋ฐ ์„œ๋ฒ„์—์„œ ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

 

but you clear this crackme !

 

 

 

728x90

'Hacking > Wargame' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Wargame ) pyc decompile  (0) 2020.07.13
Wargame ) Web Chatting  (2) 2020.07.11
Wargame ) Type Confusion  (0) 2020.07.09
Wargame ) tmitter  (1) 2020.07.09
Wargame ) Fly me to the moon  (2) 2020.07.07
728x90

function getchatlog(type){
  xmlhttp = new XMLHttpRequest();
  if(type==0){xmlhttp.onreadystatechange=getni;xmlhttp.open("GET","chatlog.php?t=1");
  }else if(type==1){xmlhttp.onreadystatechange=chatprint;xmlhttp.open("GET","chatview.php?t=1&ni="+ni + " union select 1,table_name,3,4,5 from information_schema.tables--");}
  xmlhttp.send(null);
 }

๊ฐ„๋‹จํ•œ SQL Injection ์ด๋ž€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ ๊ฐ™๋‹ค. on developer's perspective.

 

ID ๋ฅผ ์ž…๋ ฅํ•œ ํ›„์— ์ฑ„ํŒ… ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐ์ด ๋œ๋‹ค. ์ด๊ณณ์—์„œ ์–ด๋–ค SQL ์ทจ์•ฝ์ ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜๋Š” ์—†์—ˆ๋‹ค. db table ์— ๊ด€ํ•ด์„œ ์–ด๋–ค ์ •๋ณด๋„ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋กœ๊ทธ์ธ ํ•œ ํ›„ ์ฑ„ํŒ…์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

์ด๋Ÿฐ UI์— ์—ญ์‹œ ๋‹จ์ˆœํ•œ Injection ์€ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋‹ค. ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋กœ ์†Œ์Šค๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ JS ๊ฐ€ ๋ณด์˜€๋‹ค,

<style>
 textarea {padding-left:10px; font-size:15px; font-family:verdana;}
 body {background-color:#aaa;}
</style>
<script src="./blueh4g_js.js"></script>
<script>
 var xmlhttp,ni,iq=0,brtype=1;
 function getchatlog(type){
  xmlhttp = new XMLHttpRequest();
  if(type==1){xmlhttp.onreadystatechange=getni;xmlhttp.open("GET","chatlog.php?t=1");
  }else if(type==2){xmlhttp.onreadystatechange=chatprint;xmlhttp.open("GET","chatview.php?t=1&ni="+ni);}
  xmlhttp.send(null);
 }
 function chatprint(){
  if(xmlhttp.readyState==4 && xmlhttp.status==200){
   var temp=xmlhttp.responseText;
   if(brtype==2){cwifr.document.body.innerHTML+=temp;}else{cwifr.document.write(temp);}
   cwifr.document.body.scrollTop=cwifr.document.body.scrollHeight;
  }
 }
 function getni(){
  if(xmlhttp.readyState==4 && xmlhttp.status==200){
   var tni=parseInt(xmlhttp.responseText);
   if(tni!=ni && iq!=0){getchatlog(2);}
   ni=tni;iq=1;
  }
 }
 function sayf(f){
  var xmlhttp2 = new XMLHttpRequest();
  var pdata="chatlog.php?"+encodeURI("data="+f.saydata.value);
  xmlhttp2.open("GET",pdata);
  xmlhttp2.send(null);
  f.saydata.value="";
  f.saydata.focus();
  return false;
 }
 function init(){
  cwifr = document.getElementById("ifr").contentWindow;
  cwifr.document.body.style.backgroundColor="fff";
// cwifr.document.designMode="on";
  var temp=get_br_blue();
  if(temp=="CHR" || temp=="SAF"){brtype=2;}
  getchatlog(1);
  setInterval("getchatlog(1)",1000);
  document.getElementById("firstf").focus();
 }
</script>
<body onload="init();" style="text-align:center;">
<form method="post" action="chatlog.php" onsubmit="return sayf(this);">
<table align=center>
<tr><td>
<h3>[ BlueCHAT v0.9 ] - <span style="font-size:60%;">์›Œ๊ฒŒ์ž„์šฉ ์ฑ„ํŒ…์ด๋ผ ๋ฐ์ดํ„ฐ ๋ฆฌํ”„๋ ˆ์‰ฌ๋Š” ์ข€ ๋А๋ฆฌ๊ฒŒ ํ•ด๋’€์Šต๋‹ˆ๋‹ค~</span></h3>
<iframe id="ifr" style="width:850px; height:500px;"></iframe>
</td></tr>
<tr><td align=center><input type="text" style="width:120px; text-align:center; font-weight:bold;" value="ใ…‡ใ„น" readonly><input type="text" name="saydata" style="width:500px" id="firstf"><input type="submit" value="say">&nbsp;&nbsp;&nbsp;<span style="font-size:9px; color:#000;">made by BlueH4G</span><input type="button" value="logout" onclick="window.location='./';"></td></tr>
</table>
</form>
</body>

 

๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ์—๋Š” ์ง€์†์ ์œผ๋กœ 

chatlog.php ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์—ˆ๋‹ค. ์–ด๋–ค ์ฟผ๋ฆฌ๋ฌธ์„ ํ†ตํ•ด ์ด๋Ÿฐ php ๊ฐ€ ๊ฐ€์ ธ์™€์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

JS ์— ์žˆ๋Š” ์†Œ์Šค๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

getchatlog ๋ผ๋Š” ํ•จ์ˆ˜์— GET ๋ฐฉ์‹์œผ๋กœ t ๋ณ€์ˆ˜์— 1 ์„ ๋„ฃ์–ด chatlog ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  getchatlog ์˜ ์ธ์ž์ธ type ์ด 2 ๋ผ๋ฉด GET ๋ฐฉ์‹์œผ๋กœ chatview.php ๋ผ๋Š” php ๋ฅผ t=1 ๋ณ€์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ni ๋ผ๋Š” ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Burpsuite ๋ฅผ ์ด์šฉํ•ด์„œ ํŒจํ‚ท์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

์•„๊นŒ ๋ณด์•˜๋˜ php ์š”์ฒญ ํŒจํ‚ท์ด๋‹ค. type ๋ณ€์ˆ˜๋ฅผ 1์—์„œ 2๋กœ ๋ฐ”๊ฟ”์„œ ์š”์ฒญํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊ฒƒ๊ฐ™๋‹ค.

 

ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์ฝ˜์†”๋กœ ์ˆ˜์ •ํ•˜์—ฌ type 1 ์ผ๋•Œ chatview ๋ฅผ ์š”์ฒญํ•˜๋„๋ก ์ˆ˜์ •ํ•˜๊ฒ ๋‹ค.

 function getchatlog(type){
  xmlhttp = new XMLHttpRequest();
  if(type==0){xmlhttp.onreadystatechange=getni;xmlhttp.open("GET","chatlog.php?t=1");
  }else if(type==1){xmlhttp.onreadystatechange=chatprint;xmlhttp.open("GET","chatview.php?t=1&ni="+ni);}
  xmlhttp.send(null);
 }

์ด๋ ‡๊ฒŒ ์ˆ˜์ •ํ•˜๋ฉด ํŒจํ‚ท์—์„œ 

 

chatview ๋ฅผ ์š”์ฒญํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ni ๋ผ๋Š” ๊ฐ’์€ 55940 ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒจํ‚ท์— ์–ด๋–ค ๋ณ€์ˆ˜๋งŒ ๋ฐ”๋€Œ์—ˆ์„ ๋ฟ, UI ์— ๋ˆˆ์— ๋„๋Š” ๋ณ€ํ™”๋Š” ๋ณด์ด์ง€ ์•Š์•˜๋‹ค. 

 

์ฑ„ํŒ…์„ ์ž…๋ ฅํ•ด๋ณด๊ฒ ๋‹ค.

 

chatview.php ๋Š” ์ฑ„ํŒ…๊ธฐ๋ก์„ ๋ณด์—ฌ์ฃผ๋Š” ๋“ฏ ํ•˜๋‹ค. ๊ทธ ์™ธ์—๋Š” ์–ด๋–ค ๋‹ค๋ฅธ๊ฒƒ์ด ๋ณด์ด์ง„ ์•Š์•˜๋‹ค. ํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ๋‹ค์‹œํ•œ๋ฒˆ ์‚ดํŽด๋ณด์•„์•ผ๊ฒ ๋‹ค. ํŽ˜์ด์ง€ ์†Œ์Šค์—๋„ '55940' ์ด๋ผ๋Š” ๊ฐ’ ๋ง๊ณ ๋Š” ๋‹ค๋ฅธ๊ฒƒ์ด ์—†๋‹ค. ๊ทธ๋ ‡๋‹ค 55940 ์€ ํŒจํ‚ท์—์„œ ์š”์ฒญํ•˜๋˜ ni ๋ณ€์ˆ˜์˜ ๊ฐ’์ด๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ๊ฐ’์ด ๊ณ„์† load ๋˜๊ณ  ์žˆ๋Š”๊ฑฐ๋กœ ๋ณด์•„, ni ๊ฐ’์ด ๋‚˜์˜ ์ฑ„ํŒ… ๋‚ด์—ญ์— ๊ด€ํ•ด์„œ ์–ด๋–ค ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. 

ni ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ๋ณด๋‚ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

55940 -> 55941 ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์ž…๋ ฅํ–ˆ๋˜ ์ฑ„ํŒ…์ด ์—ฌ๋Ÿฌ๊ฐœ ๋ณด์—ฌ์ง„๋‹ค. ๊ณ„์† ๋ฐ”๊พธ์–ด๋ณด๊ฒ ๋‹ค.

 

TEST ๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฌธ์ž๋ฅผ ์ฑ„ํŒ… ์„œ๋ฒ„์— ๋ณด๋‚ด๊ณ  ni ๋ฅผ 55940 -> 55939 ๋กœ ๋ฐ”๊พธ์—ˆ๋”๋‹ˆ

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฑ„ํŒ…์ด ๋ณด์—ฌ์ง„๋‹ค. ni ๋Š” user ์˜ id ๊ฐ™์€ ์—ญํ• ์„ ํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ํ•ด๋‹น ์ฟผ๋ฆฌ๋Š” select <์ฑ„ํŒ…๋‚ด์—ญ > from < table name > where ni = 55940 ; ์ด๋Ÿฐ์‹์ด ๋  ๊ฒƒ์ด๋‹ค.  ๊ทธ๋ ‡๋‹ค๋ฉด ni ๊ฐ’์„ ์กฐ์ž‘ํ•จ์œผ๋กœ์จ ๋‹ค๋ฅธ ์œ ์ €์˜ ์ฑ„ํŒ… ๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ์™”์œผ๋‹ˆ '์ทจ์•ฝํ•œ ์ธ์ฆ' ์— ํ•ด๋‹นํ•˜๋Š” ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ni ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์ ์…˜์„ ์‹œ๋„ํ•ด๋ณด๊ฒ ๋‹ค.

 

์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๋ณด๊ฒ ๋‹ค.

 

packet ์„ ์ด์šฉํ•ด์„œ๋Š” ์•ˆ๋˜๊ธธ๋ž˜ ๊ทธ๋ƒฅ ํ•จ์ˆ˜๋ฅผ ๊ณ ์ณ์„œ ๋ธŒ๋ผ์šฐ์ € ์•Œ์•„์„œ ์ธ์ฝ”๋”ฉํ•˜๋„๋ก ํ–ˆ๋‹ค.

 

function getchatlog(type){
  xmlhttp = new XMLHttpRequest();
  if(type==0){xmlhttp.onreadystatechange=getni;xmlhttp.open("GET","chatlog.php?t=1");
  }else if(type==1){xmlhttp.onreadystatechange=chatprint;xmlhttp.open
  ("GET","chatview.php?t=1&ni="+ni + " union select 1,table_name,3,4,5 from information_schema.tables--");}
  xmlhttp.send(null);
 }

 

์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•ด์„œ ๋ณด๋ƒˆ๋”๋‹ˆ

 



์ด๋Ÿฐ ํ…Œ์ด๋ธ”๋“ค์ด ๋‚˜์™”๋‹ค.

 

secret ์ด๋ผ๊ณ  ํ•˜๋ฉด ๊ดœํžˆ ๋ณด๊ณ ์‹ถ์–ด์ง„๋‹ค. ์‚ฌ์‹ค ์ €๊ฒŒ ์ œ์ผ ์ˆ˜์ƒํ•˜๋‹ค. select ๋ฌธ์„ ๋‹ค์‹œ ์ˆ˜์ •ํ•ด์„œ chat_log_secret ์„ ์กฐํšŒํ•ด๋ณด๊ฒ ๋‹ค.

ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜์—ฌ, ์ง์ ‘ ์ ‘๊ทผํ–ˆ๋”๋‹ˆ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์™”๋‹ค.

 

 

์ด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ํ…Œ์ด๋ธ”๊ณผ ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋„ˆ๋ฌด ์‹ฌํ•ด์„œ type ์„ ๊ฐ•์ œ๋กœ ๋ฐ”๊ฟ”์„œ chatview ์— ์ ‘๊ทผํ•˜๋Š”๊ฒƒ์€ ์ถ”์ฒœํ•˜์ง€ ์•Š๋Š”๋‹ค...

 

728x90

'Hacking > Wargame' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Wargame ) pyc decompile  (0) 2020.07.13
Wargame ) EASY_Crackme  (0) 2020.07.12
Wargame ) Type Confusion  (0) 2020.07.09
Wargame ) tmitter  (1) 2020.07.09
Wargame ) Fly me to the moon  (2) 2020.07.07
728x90

๊ฐ„๋‹จํ•œ Compare ์— ๊ด€ํ•œ ์ทจ์•ฝ์ ์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค. 

 

ํŽ˜์ด์ง€ ์ž์ฒด๋Š” ๋ณผ ํ’ˆ ์—†๋‹ค. ์†Œ์Šค๋ฅผ ์‚ดํŽด๋ณด์ž.

php ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ key ๋กœ ์‚ฌ์šฉํ•˜๊ณ  json ํ˜•ํƒœ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  submit_check ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๊ฐ’ ๊ฒ€์ฆ๋„ ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์—ฌ์ง„๋‹ค.

์ด ๋ถ€๋ถ„์„ ๋ณด๋ฉด, POST ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก ๋œ json ํ˜•ํƒœ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ key ๊ฐ’๊ณผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ์— ๋ณด๋‚ธ ๊ฐ’์„ '==' ๋™๋“ฑ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„๊ตํ•œ๋‹ค. ๋น„๊ต์™€ ๊ด€๋ จ ๋œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•„์•ผ๊ฒ ๋‹ค. 

์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜จ js ์—์„œ๋Š” submit๊ณผ submit_check ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. submit ํ•จ์ˆ˜์—์„œ๋Š” submit_check ์—์„œ ๊ฒ€์ฆํ•œ ์ž…๋ ฅ๊ฐ’์„ ์ธ์ž๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ์‚ฌ์ด์—์„œ ๋ฐœ์ƒ๊ฐ€๋Šฅํ•œ ์ทจ์•ฝ์ ์ด๋‹ค. submit_check ์—์„œ submit ์œผ๋กœ ๋„˜๊ธฐ๋Š” ์ค‘์— ๋ฐ์ดํ„ฐ์˜ ๋ณ€์กฐ (key = true ; )๊ฐ€ ์ผ์–ด๋‚œ๋‹ค๋ฉด ์ž…๋ ฅ๊ฐ’์„ ํ•œ๋ฒˆ๋” ๊ฒ€์ฆํ•˜์ง€ ์•Š๋Š” submit ํ•จ์ˆ˜์—์„œ๋Š” ๊ทธ๋Œ€๋กœ true ๊ฐ’์œผ๋กœ ์ธ์‹ํ•  ๊ฒƒ ์ด๊ณ , ํ”Œ๋ž˜๊ทธ๋ฅผ ๋„˜๊ฒจ์ค„ ๊ฒƒ์ด๋‹ค.

 

ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ๋ชจ๋‘ ๋ณต์‚ฌํ•˜์—ฌ, ์ฝ˜์†”์—์„œ ์žฌ ์ •์˜ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

์‚ฌ์‹ค ์ด๋Ÿฐ์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์žฌ ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ๋ชฐ๋ž๋‹ค. ๋ฌผ๋ก  submit ์€ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋ถ€๋ถ„์ด์ง€๋งŒ submit_check ๋Š” ๋กœ์ปฌ์—์„œ ๊ฐ€์ ธ์˜จ ๊ฐ’์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— submit_check ์—์„œ key ๊ฐ’์„ ์ „์†ก์ „์— true ๋กœ ๋ฐ”๊พธ์–ด์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•œ๋‹ค๋ฉด , ์–ด๋–ค ๊ฐ’์„ ์ž…๋ ฅ์ฐฝ์— ์ž…๋ ฅํ•ด๋„ ์„œ๋ฒ„์— ์ „์†ก ์ง์ „์— true ๋กœ ๋ฐ”๊พธ์–ด ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ๋Š” ํ•ญ์ƒ true ๊ฐ’๋งŒ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.

 

ํ’€๊ธดํ–ˆ์ง€๋งŒ ์‚ฌ์‹ค type confusion ์ด๋ผ๊ธฐ ๋ณด๋‹ค, input validation ์ทจ์•ฝ์ ์„ ์ด์šฉํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ type confusion ๋ฌธ์ œ๋ฅผ webgoat 8.0 ์—์„œ ํ’€์–ด๋ณธ์ ์ด ์žˆ๋‹ค. XXE(XML Externel Entity ) ์—์„œ Modern REST framework ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด JSON ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด XXE ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Json ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋ คํ–ˆ๋˜ ์„œ๋ฒ„์—์„œ XML ๊ฐ์ฒด๋ฅผ ๋ณด๋‚ด๋„ ์ž‘๋™์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.  ๋ญ ์–ด์จŒ๋“  type confusion ์˜ ์˜๋ฏธ๋ฅผ ๋‹ค ์‚ด๋ฆฌ์ง€ ๋ชปํ•œ ํ’€์ด์—ˆ๋˜๊ฒƒ ๊ฐ™๋‹ค.

728x90

'Hacking > Wargame' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Wargame ) EASY_Crackme  (0) 2020.07.12
Wargame ) Web Chatting  (2) 2020.07.11
Wargame ) tmitter  (1) 2020.07.09
Wargame ) Fly me to the moon  (2) 2020.07.07
Wargame ) MD5 Compare  (0) 2020.07.06
728x90

tmitter ๋ฌธ์ œ์ด๋‹ค. admin ์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋œ๋‹ค๋Š”๋ฐ ์ฒ˜์Œ์— ํ…Œ์ด๋ธ”์„ ๋ณด์—ฌ์ฃผ๊ธธ๋ž˜ ์ธ์ ์…˜ ๋ฌธ์ œ์ธ๊ฐ€ ํ–ˆ๋‹ค.

 

๋“ค์–ด๊ฐ€๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ์šด ๊ณ„์ •์„ ๋งŒ๋“ค๊ฒƒ์ธ์ง€, ๊ณ„์ •์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด์„œ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ” ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ธ์ ์…˜์„ ์‹œ๋„ํ•ด๋ณด๊ฒ ๋‹ค.

 

ID ์— admin ์„ ๋„ฃ๊ณ 

password ์— 'select ps from tmitter_user where id='admin' ; -- ๋ฅผ ๋„ฃ๊ณ  ๋กœ๊ทธ์ธ์„ ์‹คํ–‰ํ–ˆ๋‹ค. 

์‹คํŒจ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์™€์„œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•˜๋”๋‹ˆ maxlength ๊ฐ€ 32๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ์—ˆ๋‹ค . ์ด๊ฒƒ์„ 50์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค.

 

 

 

์—ญ์‹œ ์‹คํŒจํ–ˆ๋‹ค. ์‚ฌ์‹ค sql ์ธ์ ์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ ๋’ค์— ํ•ด์•ผํ•œ๋‹ค. ์–ด๋–ค ์ฟผ๋ฆฌ๋ฌธ์ธ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์Œ์œผ๋กœ ์‹œ๋„ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์€ char() ์ทจ์•ฝ์ ์ด๋‹ค. char() ๊ฐ™์€ ๊ฒฝ์šฐ ๊ณต๋ฐฑ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ '~~~~         ' ๊ณผ '~~~~' ๋Š” ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ํ…Œ์ด๋ธ”์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์•Œ ๊ณ  ์žˆ๊ณ , id ์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 32์ž„์„ ์•Œ๊ณ  ์žˆ๋‹ค. sql ์—์„œ ์ •ํ•ด์ง„ ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ 33์˜ ๊ธธ์ด๋ฅผ ๊ฐ€์ง€๋Š” "~~~~~                                  1" ๊ณผ "~~~~" ๋Š” ๊ฐ™๋‹ค. ์ด ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ํšŒ์›๊ฐ€์ž… ํ›„ ๋กœ๊ทธ์ธ์— ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์šฐ์„  sql ์—์„œ char ์™€ varchar ๋ฅผ ๋น„๊ตํ•ด๋ณด๊ณ  ๊ฐ€๊ฒ ๋‹ค.

 

์ถœ์ฒ˜ : https://goodgid.github.io/JS-char-vs-varchar/

 

๋จผ์ € ์ž…๋ ฅ๊ฐ€๋Šฅํ•œ ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

ID ์— ๋“ค์–ด๊ฐ„ ๋ฌธ์ž์—ด์€ ์ตœ๋Œ€ ๊ธธ์ด๋ณด๋‹ค 1๋งŒํผ ๋” ๋งŽ๋‹ค.

 

๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜๊ณ  join ์„ ํด๋ฆญํ•˜๋‹ˆ, 'admin' is exist ์—๋Ÿฌ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ํšŒ์›๊ฐ€์ž…์— ์„ฑ๊ณตํ–ˆ๋‹ค.

๋กœ๊ทธ์ธํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

admin ๊ณ„์ •์œผ๋กœ ํšŒ์›๊ฐ€์ž… ํ›„ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜์˜€๊ณ , Flag ๋ฅผ ํš๋“ํ–ˆ๋‹ค.

 

728x90

'Hacking > Wargame' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Wargame ) Web Chatting  (2) 2020.07.11
Wargame ) Type Confusion  (0) 2020.07.09
Wargame ) Fly me to the moon  (2) 2020.07.07
Wargame ) MD5 Compare  (0) 2020.07.06
Wargame ) DB is really GOOD  (1) 2020.07.06

+ Recent posts