728x90

[๋ฌธ์ œ]

 

๊ฐ ์ฑŒ๋ฆฐ์ง€ SSH ์ ‘๊ทผ๋ฒ•: ssh rcity<๋ฒˆํ˜ธ>@ctf.redraccoon.kr -p 31338

 

 

https://ctf.redraccoon.kr/challenges#Operation%20RCity4-7


[๋ฌธ์ œ ํ’€์ด]

  • ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ flag.txt ํŒŒ์ผ ๋‚ด์šฉ์„ ๋จผ์ € cat ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋‚ด์šฉ์„ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋ฌธ์ž์—ด์ด ๋„ˆ๋ฌด ๋งŽ์•˜๋‹ค..
  • ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ˆ ํ”Œ๋ž˜๊ทธ๋Š” 'flag is here'๋ฌธ์ž์—ด ๊ทผ์ฒ˜์— ์žˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ฐพ์•„๋ณด๋‹ˆ ํŒŒ์ผ ์†์— ํŠน์ • ๋ฌธ์ž์—ด์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” grep ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
  • ๋˜, ํžŒํŠธ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ 'flag is here'๋ฌธ์ž์—ด์€ ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค..

  • ๊ทธ๋ž˜์„œ, grep -i 'flag is here' flag.txt ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ๋‹ค.
    • -i: ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ์ฐพ์•„์ฃผ๋Š” ์˜ต์…˜
    • grep [์˜ต์…˜] [์ฐพ์„ ๋ฌธ์ž์—ด] [๋Œ€์ƒํŒŒ์ผ๋ช…]
  • ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋ฐ”๋กœ ๋’ค์— ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ํ”Œ๋ž˜๊ทธ์ธ ๊ฑฐ ๊ฐ™์•„ ๋‹ต์„ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ๋”๋‹ˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
728x90

[๋ฌธ์ œ]

๊ฐ ์ฑŒ๋ฆฐ์ง€ SSH ์ ‘๊ทผ๋ฒ•: ssh rcity<๋ฒˆํ˜ธ>@ctf.redraccoon.kr -p 31338

 

https://ctf.redraccoon.kr/challenges#Operation%20RCity3-6


[๋ฌธ์ œ ํ’€์ด]

  • ์šฐ์„  ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๋””๋ ‰ํ† ๋ฆฌ๋ž‘ ํŒŒ์ผ ๋ชฉ๋ก๋“ค์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์—ญ์‹œ๋‚˜ ๋ฌธ์ œ๋Œ€๋กœ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค..
  • ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐพ๊ธฐ ํž˜๋“ค ๊ฑฐ ๊ฐ™์•„ ํžŒํŠธ๋ฅผ ๋ณด๋‹ˆ ์ž˜ "์ฐพ์•„์•ผ"ํ•œ๋‹ค๊ณ  ํ•ด์„œ find ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

  • ์šฐ์„  ํŒŒ์ผ ํ˜•์‹์ด "<ํ”Œ๋ž˜๊ทธ-ํŒŒ์ผ>.txt" ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ น์–ด๋ฅผ find ./ -name *. txt๋กœ ํ•ด์„œ ๊ฒ€์ƒ‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
    • ์ด ๋ช…๋ น์–ด๋Š” ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ๋Œ€์ƒ์œผ๋กœ ํ™•์žฅ์ž๊ฐ€ txt์ธ ๋ชจ๋“  ํŒŒ์ผ์„ ์ฐพ์•„์ฃผ๋Š” ๋ช…๋ น์–ด๋‹ค.
  • ๊ทธ๋žฌ๋”๋‹ˆ flag๋กœ ๋ณด์ด๋Š” ํŒŒ์ผ์„ ์ฐพ์•˜๊ณ  ๋‹ต์„ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ๋”๋‹ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค!
728x90

[๋ฌธ์ œ]

 

๊ฐ ์ฑŒ๋ฆฐ์ง€ SSH ์ ‘๊ทผ๋ฒ•: ssh rcity<๋ฒˆํ˜ธ>@ctf.redraccoon.kr -p 31338


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ls ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ํŒŒ์ผ ๋ชฉ๋ก์„ ํ™•์ธํ–ˆ๋Š”๋ฐ ํŒŒ์ผ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ, ๋ฌธ์ œ์— ํžŒํŠธ๋ฅผ ์ด์šฉํ•ด ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ๊นŒ์ง€ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด์ธ ls -alh์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

  • ๊ทธ๋žฌ๋”๋‹ˆ ๋ˆ„๊ฐ€ ๋ด๋„ ์ˆ˜์ƒํ•œ ํŒŒ์ผ์ธ '...catthisfile.txt' ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ๊ทธ๋ž˜์„œ cat ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ ๋‚ด์šฉ์„ ํ™•์ธํ–ˆ๋”๋‹ˆ ํ”Œ๋ž˜๊ทธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
728x90

[๋ฌธ์ œ]

๊ฐ ์ฑŒ๋ฆฐ์ง€ SSH ์ ‘๊ทผ๋ฒ•: ssh rcity<๋ฒˆํ˜ธ>@ctf.redraccoon.kr -p 31338


[๋ฌธ์ œ ํ’€์ด]

  • ๊ฐ ํ”Œ๋ž˜๊ทธ๋Š” ๋‹ค์Œ ๋ ˆ๋ฒจ SSH ์œ ์ €์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด rcity0 ์—์„œ ํ”Œ๋ž˜๊ทธ ํš๋“ "ssh rcity1@ctf.redraccoon.kr -p 31338" ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ ๋‹จ๊ณ„์—์„œ ์–ป์€ ํ”Œ๋ž˜๊ทธ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์ ‘์†์„ ํ–ˆ๋‹ค.

  • ์ ‘์† ํ›„ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋Š” ls ๋ช…๋ น์–ด๋ฅผ ํ™•์ธํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํด๋”๊ฐ€ ์žˆ๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค.
  • ๋จผ์ € flag ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐ€์„œ flag.txt ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ดค๋Š”๋ฐ ์•„๋ฌด๋Ÿฐ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์•˜๋‹ค.

  • ๊ทธ๋ž˜์„œ, 'maybe here' ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋„˜์–ด๊ฐ€์„œ ๋ชฉ๋ก์„ ํ™•์ธํ•  ๊ฒฐ๊ณผ 'fl ag.txt' ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค.
  • ๊ทธ ๊ฒฐ๊ณผ, ๋‹ค์Œ ๋ ˆ๋ฒจ์˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
728x90

[๋ฌธ์ œ]

๊ฐ ์ฑŒ๋ฆฐ์ง€ SSH ์ ‘๊ทผ๋ฒ•: ssh rcity<๋ฒˆํ˜ธ>@ctf.redraccoon.kr -p 31338


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € SSH ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

  • ์„œ๋ฒ„์— ์ ‘์† ์„ฑ๊ณตํ•œ ํ›„ ํŒŒ์ผ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด ls์„ ์‚ฌ์šฉํ–ˆ๋”๋‹ˆ flag ํŒŒ์ผ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.
  • cat ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ flagํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค!
728x90

[๋ฌธ์ œ]

https://dreamhack.io/wargame/challenges/768

 

command-injection-chatgpt

ํŠน์ • Host์— ping ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Command Injection์„ ํ†ตํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ํ”Œ๋ž˜๊ทธ๋Š” flag.py์— ์žˆ์Šต๋‹ˆ๋‹ค. chatGPT์™€ ํ•จ๊ป˜ ํ’€์–ด๋ณด์„ธ์š”! Reference Webhacking Roadmap

dreamhack.io


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € ํŽ˜์ด์ง€๋ฅผ ๋ถ„์„ํ•ด ๋ณด๋‹ˆ ํ˜ธ์ŠคํŠธ ์ž…๋ ฅ์„ ํ†ตํ•ด ping ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋˜์–ด์žˆ๋‹ค.
#!/usr/bin/env python3
import subprocess

from flask import Flask, request, render_template, redirect

from flag import FLAG

APP = Flask(__name__)


@APP.route('/')
def index():
    return render_template('index.html')


@APP.route('/ping', methods=['GET', 'POST'])
def ping():
    if request.method == 'POST':
        host = request.form.get('host')
        cmd = f'ping -c 3 {host}'
        try:
            output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5)
            return render_template('ping_result.html', data=output.decode('utf-8'))
        except subprocess.TimeoutExpired:
            return render_template('ping_result.html', data='Timeout !')
        except subprocess.CalledProcessError:
            return render_template('ping_result.html', data=f'an error occurred while executing the command. -> {cmd}')

    return render_template('ping.html')


if __name__ == '__main__':
    APP.run(host='0.0.0.0', port=8000)
  • ๊ทธ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด,  @APP.route('/ping', methods=['GET', 'POST']): ๋ถ€๋ถ„์—์„œ /ping ๊ฒฝ๋กœ์— ๋Œ€ํ•œ GET ๋ฐ POST ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ping ํ•จ์ˆ˜๋Š” POST ์š”์ฒญ์—์„œ host ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ping ๋ช…๋ น์„ ์‹คํ–‰ํ•œ๋‹ค. subprocess.check_output์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์–ด ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์บก์ฒ˜ํ•œ ๋’ค ๋ช…๋ น์–ด๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ping_result.html ํ…œํ”Œ๋ฆฟ์— ์ „๋‹ฌํ•œ๋‹ค.
  • ping ๋ช…๋ น์–ด๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ช…๋ น์–ด ์ฃผ์ž… ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜์—ฌ ์ด๋ฅผ ์ด์šฉํ•ด ;, & ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฌธ์ œ ์„ค๋ช…์—์„œ ํ”Œ๋ž˜๊ทธ๋Š” flag.py์— ์žˆ๋‹ค๊ณ  ํ–ˆ์œผ๋‹ˆ ;๋ฅผ ์ด์šฉํ•ด ์ถ”๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž.

  • ๊ทธ ๊ฒฐ๊ณผ, flag๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!
728x90

[๋ฌธ์ œ]

https://webhacking.kr/chall.php?order=v

 

Webhacking.kr

 

webhacking.kr


[๋ฌธ์ œ ํ’€์ด]

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 24</title>
</head>
<body>
<p>
<?php
  extract($_SERVER);
  extract($_COOKIE);
  $ip = $REMOTE_ADDR;
  $agent = $HTTP_USER_AGENT;
  if($REMOTE_ADDR){
    $ip = htmlspecialchars($REMOTE_ADDR);
    $ip = str_replace("..",".",$ip);
    $ip = str_replace("12","",$ip);
    $ip = str_replace("7.","",$ip);
    $ip = str_replace("0.","",$ip);
  }
  if($HTTP_USER_AGENT){
    $agent=htmlspecialchars($HTTP_USER_AGENT);
  }
  echo "<table border=1><tr><td>client ip</td><td>{$ip}</td></tr><tr><td>agent</td><td>{$agent}</td></tr></table>";
  if($ip=="127.0.0.1"){
    solve(24);
    exit();
  }
  else{
    echo "<hr><center>Wrong IP!</center>";
  }
?><hr>
<a href=?view_source=1>view-source</a>
</body>
</html>
  • ๋จผ์ € ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด ๋ณด์ž!
  • extract($_SERVER); ๋ฐ extract($_COOKIE);: ๋ถ€๋ถ„์—์„œ $_SERVER ๋ฐ $_COOKIE ๋ฐฐ์—ด์˜ ํ‚ค๋ฅผ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜๋กœ ์ถ”์ถœํ•œ๋‹ค.
  • htmlspecialchars() ํ•จ์ˆ˜๋กœ $REMOTE_ADDR๋ฅผ HTML ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌํ•œ๋‹ค. str_replace()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IP ์ฃผ์†Œ์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ IP๊ฐ€ "127.0.0.1"์ธ ๊ฒฝ์šฐ solve(24) ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
    • ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด client ip๊ฐ€ 127.0.0.1์ด๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
    • ๊ทธ๋ž˜์„œ, ์ฟ ํ‚ค์— REMOTE_ADDR ์ฟ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ IP๋ฅผ ๋ฐ”๊พธ๊ธฐ๋กœ ํ–ˆ๋‹ค.

  • REMOTE_ADDR ์ฟ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๊ฐ’์— 127.0.0.1์„ ๋„ฃ๊ณ  ์ƒˆ๋กœ๊ณ ์นจ์„ ํ–ˆ๋”๋‹ˆ client ip๊ฐ€ 1๋กœ ํ•„ํ„ฐ๋ง๋˜์—ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ, ip๊ฐ€ ํ•„ํ„ฐ๋ง๋˜์ง€ ์•Š๋„๋ก ๊ฐ’ 112277...00...00...1์„ ๋„ฃ๊ธฐ๋กœ ํ–ˆ๋‹ค.

  • ๊ทธ ๊ฒฐ๊ณผ, ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!
728x90

[๋ฌธ์ œ]

https://dreamhack.io/wargame/challenges/1401

 

baby-Case

Description Bypass ๐Ÿ‘ถfilter

dreamhack.io

 


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € ๋“ค์–ด๊ฐ€๋‹ˆ hi guest ๊ธ€์ž๋งŒ ๋‚˜์˜ค๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ถœ๋ ฅ๋๋‹ค.
  • ๊ทธ๋ž˜์„œ, ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
const express = require("express")
const words = require("./ag")

const app = express()
const PORT = 3000
app.use(express.urlencoded({ extended: true }))

function search(words, leg) {
    return words.find(word => word.name === leg.toUpperCase())
}

app.get("/",(req, res)=>{
    return res.send("hi guest")
})

app.post("/shop",(req, res)=>{
    const leg = req.body.leg

    if (leg == 'FLAG'){
        return res.status(403).send("Access Denied")
    }

    const obj = search(words,leg)

    if (obj){
        return res.send(JSON.stringify(obj))
    }
    
    return res.status(404).send("Nothing")
})

app.listen(PORT,()=>{
    console.log(`[+] Started on ${PORT}`)
})
  • Search ํ•จ์ˆ˜๋Š” words ๋ฐฐ์—ด์—์„œ leg ๊ฐ’์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ•ด๋‹น name ์†์„ฑ๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์ด ์ฝ”๋“œ๋Š” /shop ์—”๋“œํฌ์ธํŠธ์—์„œ POST ์š”์ฒญ์„ ๋ฐ›์•„ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • leg๋ผ๋Š” ์š”์ฒญ ๋ณธ๋ฌธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  leg๊ฐ€ 'FLAG'์ด๋ฉด, 403 Forbidden ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ "Access Denied"๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • search ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ leg์™€ ์ผ์น˜ํ•˜๋Š” ๊ฐœ์ฒด๋ฅผ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ณ  ๊ฐ์ฒด๋ฅผ ์ฐพ์œผ๋ฉด JSON ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™”ํ•˜์—ฌ ์‘๋‹ตํ•˜๊ณ  ์ฐพ์ง€ ๋ชปํ•˜๋ฉด 404 Not Found ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ "Nothing"์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์„œ๋ฒ„๊ฐ€ PORT ๋ฒˆํ˜ธ์—์„œ ๋ฆฌ์Šจ์„ ์‹œ์ž‘ํ•˜๋ฉฐ, ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜๋ฉด ์ฝ˜์†”์— ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
module.exports = [
    {
        "id": 1,
        "name": "FLAG",
        "description": "DH{fake_flag}"
    },
    {
        "id": 2,
        "name": "DRAG",
        "description": "To pull something along forcefully, often on the ground or another surface, causing friction or resistance. It also refers to the delay in performance or response time."
    },
    {
        "id": 3,
        "name": "SLAG",
        "description": "The waste material produced by the smelting process, which involves separating metal from its ore. Slag is typically a mixture of metal oxides and silicon dioxide."
    },
    {
        "id": 4,
        "name": "SWAG",
        "description": "Refers to stylish confidence in one's appearance or demeanor. It can also mean promotional goods or items given away for free as a form of advertising."
    }
]
  • ์ด ์ฝ”๋“œ๋Š” word์˜ ๋ฆฌ์ŠคํŠธ ์˜ˆ์‹œ์ด๋‹ค.
events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        listen [::]:80;
        server_name  _;
        
        location = /shop {
            deny all;
        }

        location = /shop/ {
            deny all;
        }

        location / {
            proxy_pass http://app:3000/;
        }

    }

}
  • nginx.conf ํŒŒ์ผ ์ฝ”๋“œ๋„ ๋ถ„์„ํ•ด ๋ณด๋ฉด /shop์— ๋Œ€ํ•œ ๋ชจ๋“  ์š”์ฒญ์ด deny ๋˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

  • postman์„ ํ†ตํ•ด ํ™•์ธํ•ด๋ณธ ๊ฒฐ๊ณผ, deny ๋˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

https://www.hahwul.com/2021/10/08/bypass-403/

 

403 forbidden์„ ์šฐํšŒํ•˜๋Š” 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค

๋•Œ๋•Œ๋กœ ๋ณด์•ˆ ํ…Œ์ŠคํŒ… ์‹œ WAF๋‚˜ Application์˜ ๋กœ์ง์— ๋”ฐ๋ผ 403 Forbidden ์œผ๋กœ ์ ‘๊ทผ์ด ์ œํ•œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต์€ ๋ฐฑ์—”๋“œ์˜ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋ด์•ผ ์ •ํ™•ํ•˜๊ฒŒ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํŠธ๋ฅผ ์žก๊ฒ ์ง€๋งŒ, ๋ช‡๊ฐ€์ง€

www.hahwul.com

  • ์ด ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด ์šฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ Letter Case๋ฅผ ์ด์šฉํ•ด shop์„ SHOP์œผ๋กœ ๋ณ€๊ฒฝํ•ด ํฌ์ŠคํŠธ ์š”์ฒญ์„ ํ•ด๋ณด์•˜๋‹ค.
  • ๊ทธ ๊ฒฐ๊ณผ, Flag๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

728x90

[๋ฌธ์ œ]

https://webhacking.kr/challenge/web-32/

 

Challenge 18

 

webhacking.kr

 


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด ๋ณด์ž!
    • ๋จผ์ € ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด ์ž…๋ ฅ๊ฐ’์— ํŠน์ • ๋ฌธ์ž์—ด์ด๋‚˜ ํŒจํ„ด์ด ํฌํ•จ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐ ์ฐจ๋‹จ ๋Œ€์ƒ์€ ๊ณต๋ฐฑ, ํŠน์ˆ˜๋ฌธ์ž, select, from ๊ฐ™์€ SQL ํ‚ค์›Œ๋“œ, 16์ง„์ˆ˜ ํ‘œํ˜„๋„ ์ฐจ๋‹จํ•œ๋‹ค.
    • ๊ทธ๋‹ค์Œ, chall18 ํ…Œ์ด๋ธ”์—์„œ id๊ฐ€ 'guest'์ด๊ณ  no๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ํ–‰์„ ์กฐํšŒํ•œ๋‹ค. ์ด๋•Œ admin์˜ no๋Š” 2์ด๋‹ค.
    • result['id'] ๊ฐ’์ด "admin"์ผ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
  • ์šฐ์„ , id๊ฐ€ guest๋กœ ๊ณ ์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ฐ’์„ ๊ฑฐ์ง“ ๊ฐ’์„ ๋„ฃ์–ด ์ด๋ฅผ ๋ฌดํšจํ™”ํ•˜๊ณ , or๋กœ admin์˜ no๋ฅผ ๋„ฃ์–ด์ฃผ์–ด admin ๊ฐ’์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ž˜์„œ, sql๋ฌธ์ด select id from chall18 where id='guest' and no=-1 or no=2๊ฐ€ ๋˜๋ฉด ๋œ๋‹ค. 
  • ํ•˜์ง€๋งŒ, ์œ„์—์„œ ๊ณต๋ฐฑ์€ ํ•„ํ„ฐ๋ง์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๋ฐฑ์˜ url encode ํ•œ ๊ฐ’์ธ %09๋ฅผ ๋„ฃ์–ด์„œ sql injection์„ ์‹œ๋„ํ•˜๋ฉด ๋œ๋‹ค.

  • ์ตœ์ข…์ ์œผ๋กœ, ์ด no=-1%09or%09no=2 ๊ฐ’์„ url์— ์ž…๋ ฅํ•ด ์ฃผ๋‹ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

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

[Webhacking.kr] old-24 write-up  (0) 2025.01.12
[์›นํ•ดํ‚น] | [๋“œ๋ฆผํ•ต]: baby-Case  (0) 2025.01.11
[Webhacking.kr] old-26 write-up  (0) 2025.01.05
[์›นํ•ดํ‚น] | [๋“œ๋ฆผํ•ต]-Broken Buffalo Wings  (0) 2025.01.01
[Webhacking.kr] old-16 write-up  (0) 2024.12.29
728x90

[๋ฌธ์ œ]

https://webhacking.kr/challenge/web-11/

 

Challenge 26

 

webhacking.kr


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด ๋ณด์ž!
    • ์ด ์ฝ”๋“œ๋Š” preg_match๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "admin"์ด๋ผ๋Š” ๋ฌธ์ž์—ด์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค,
    • id๊ฐ’์„  url decode ํ•˜๊ณ  ๊ทธ ๊ฐ’์ด "admin"์ด๋ฉด ๋ฌธ์ œ๊ฐ€ ํ’€๋ฆฌ๋Š” ๊ฑฐ ๊ฐ™๋‹ค.

 

https://www.freecodecamp.org/news/url-encoded-characters-reference/

 

HTML URL Encoded Characters Reference

A URL is an address for a website. Just like postal addresses have to follow a specific format to be understood by the postman, URLS have to follow a format to be understood and get you to the right location. There are only certain characters that ar...

www.freecodecamp.org

  • ๊ทธ๋ž˜์„œ, "admin"์„ ๋จผ์ € url encode๋ฅผ ํ•ด๋ดค๋‹ค. 
  • ์œ„ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด "admin"๊ฐ’์„ encode ํ–ˆ๋”๋‹ˆ %61%64%6D%69%6E ๋‚˜์™”๋‹ค.

  • encode ํ•œ ๊ฐ’์„ url์— ์ž…๋ ฅ์„ ํ–ˆ๋”๋‹ˆ ์ž๋™์œผ๋กœ admin์œผ๋กœ decode๋ฅผ ํ•ด์„œ ๋“ค์–ด๊ฐ€์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ์ด ์•ˆ ๋๋‹ค.

https://www.convertstring.com/ko/EncodeDecode/UrlEncode#google_vignette

 

URL ์ธ์ฝ”๋”ฉ - ์˜จ๋ผ์ธ URL ์ธ์ฝ”๋”

 

www.convertstring.com

  • ๊ทธ๋ž˜์„œ ์œ„ ์‚ฌ์ดํŠธ๋ฅผ ํ†ตํ•ด encode ํ•œ ๊ฐ’์„ ํ•œ๋ฒˆ ๋” encoding ํ–ˆ๋‹ค.

  • ๊ทธ ๊ฒฐ๊ณผ, %2561%2564%256D%2569%256E ๊ฐ’์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ด ๊ฐ’์„ ๋‹ค์‹œ url์— ์ž…๋ ฅํ•ด ์ฃผ์—ˆ๋”๋‹ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

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

[์›นํ•ดํ‚น] | [๋“œ๋ฆผํ•ต]: baby-Case  (0) 2025.01.11
[Webhacking.kr] old-18 write-up  (0) 2025.01.05
[์›นํ•ดํ‚น] | [๋“œ๋ฆผํ•ต]-Broken Buffalo Wings  (0) 2025.01.01
[Webhacking.kr] old-16 write-up  (0) 2024.12.29
[Webhacking.kr] old-15 write-up  (0) 2024.12.29

+ Recent posts