[Dreamhack] Level 1: baby-union
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/984 baby-unionDescription ๋กœ๊ทธ์ธ ์‹œ ๊ณ„์ •์˜ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. SQL INJECTION ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ init.sql ํŒŒ์ผ์˜ ํ…Œ์ด๋ธ”๋ช…๊ณผ ์ปฌ๋Ÿผ๋ช…์€ ์‹ค์ œ ์ด๋ฆ„๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ”Œ๋ž˜dreamhack.io 2. ํ•ด๊ฒฐ ๊ณผ์ •(1) ๋ฌธ์ œ ํŽ˜์ด์ง€ ํ™•์ธ  (2) ์ฝ”๋“œ ํ™•์ธ - app.py ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ํ•„ํ„ฐ๋ง์ด ์—†๋‹ค. import osfrom flask import Flask, request, render_templatefrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.env..
[Dreamhack] Level 1: Easy Login
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/1213 easy-loginDescription ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•˜์—ฌ ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”! ํ”Œ๋ž˜๊ทธ ํ˜•์‹์€ DH{...} ์ž…๋‹ˆ๋‹ค.dreamhack.io 2. ํ•ด๊ฒฐ ๊ณผ์ • (1) ๋ฌธ์ œ ํŽ˜์ด์ง€ ์ ‘์† - ์•„์ด๋”” / ํŒจ์Šค์›Œ๋“œ / OTP ์ž…๋ ฅ - admin์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ํŒจ์Šค์›Œ๋“œ์™€ OTP ๋ถ€๋ถ„์„ ์ฐพ๊ฑฐ๋‚˜ ์šฐํšŒํ•ด์„œ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•ด์•ผ ํ•œ๋‹ค.   (2) ์ฝ”๋“œ ๋ถ„์„- index.phpgeneratePassword ํ•จ์ˆ˜๋Š” 16์ง„์ˆ˜ ๋ฌธ์ž(0-9, a-f)๋กœ ๊ตฌ์„ฑ๋œ ์ง€์ •๋œ ๊ธธ์ด์˜ ์ž„์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.generateOTP ํ•จ์ˆ˜๋Š” 'P'๋กœ ์‹œ์ž‘ํ•˜๋Š” 6์ž๋ฆฌ์˜ ์ˆซ์ž OTP๋ฅผ ์ƒ์„ฑํ•œ๋‹คadmin_pw์™€ otp๋Š” ๊ฐ๊ฐ 32์ž๋ฆฌ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ OTP๋ฅผ ์ €..
[PHP] strcmp ํ•จ์ˆ˜ ์ทจ์•ฝ์ 
ยท
Study/WebHacking
strcmp ํ•จ์ˆ˜ ์ž์ฒด๋Š” PHP์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.PHP์—์„œ strcmp ํ•จ์ˆ˜๋Š” ๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์œผ๋ฉด 0์„, ๋‹ค๋ฅด๋ฉด 0์ด ์•„๋‹Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.(strcmp($a, $b) ๋ฅผ ์‹คํ–‰ ํ•  ๋•Œ, $a๊ฐ€ ์ž‘์œผ๋ฉด ์Œ์ˆ˜, $b๊ฐ€ ์ž‘์œผ๋ฉด ์–‘์ˆ˜, ๊ทธ๋ฆฌ๊ณ  $a์™€ $b๊ฐ€ ๊ฐ™์œผ๋ฉด 0 ์ด ๋ฐ˜ํ™˜)์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์˜ ๊ฐ’๊ณผ ํƒ€์ž…์„ ์—„๊ฒฉํ•˜๊ฒŒ(strict) ๋น„๊ตํ•œ๋‹ค. ํ•˜์ง€๋งŒ strcmp๋Š” ์ธ์ž๊ฐ’์œผ๋กœ ๋ฌธ์ž์—ด์ด ๋“ค์–ด์˜ค์ง€ ์•Š์„ ๊ฒฝ์šฐ(๋ฐฐ์—ด๋กœ ์ธ์ž๊ฐ’์„ ์ฃผ๊ฒŒ ๋  ๊ฒฝ์šฐ), NULL์„ ์ถœ๋ ฅํ•˜๋Š” ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ์ œ GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›์•„ admin์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•  ๋•Œ,test = 1์„ ์ฃผ๋ฉด no๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๊ณ  test=admin์„ ์ž…๋ ฅํ•˜๋ฉด yes๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.  (php 7.1 ๋ฒ„์ „์—์„œ ํ…Œ..
[PHP] Type Juggling ์ทจ์•ฝ์ 
ยท
Study/WebHacking
PHP๋Š” ๋น„๊ต ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด == ์—ฐ์‚ฐ์ž์™€  === ์—ฐ์‚ฐ์ž๋ฅผ ์ง€์›ํ•œ๋‹ค.์ด๋•Œ, PHP๋Š” ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜๊ธฐ ์ „์— ํ•„์š”์— ๋”ฐ๋ผ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•œ๋‹ค.์ด๋Ÿฌํ•œ ๋ณ€ํ™˜์€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. loose (๋Š์Šจํ•œ) ๋น„๊ต ==     vs    strict (์—„๊ฒฉํ•œ) ๋น„๊ต === ==: ๋‘ ๊ฐ’์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•œ ํ›„ ๋น„๊ต (์ฆ‰, ๊ฐ’๋งŒ ๋น„๊ต)===: ๋‘ ๊ฐ’์˜ ํƒ€์ž…๊ณผ ๊ฐ’ ๋ชจ๋‘ ๊ฐ™์•„์•ผ TRUE ๋ฆฌํ„ด ๊ธฐ๋ณธ ์˜ˆ์ œ var_dump(0 == '0'); // truevar_dump(0 == '0.0'); // truevar_dump(0 == ''); // truevar_dump(0 == null); // truevar_dump(0 == 'string'); // true (PHP..
[Dreamhack] Level 3: chocoshop
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/106 chocoshopDescription ๋“œ๋ฆผ์ด๋Š” ๋นผ๋นผ๋กœ๋ฐ์ด๋ฅผ ๋งž์•„ ํ‹ฐ์˜ค๋ฆฌ์ œ๊ณผ์—์„œ ๋นผ๋นผ๋กœ ๊ตฌ๋งค๋ฅผ ์œ„ํ•œ ์ฟ ํฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์€ FLAG! ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฐ, FLAG๋Š” ๋„ˆ๋ฌด ๋น„์‹ธ ์‚ด ์ˆ˜๊ฐ€ ์—†๋„ค์š”... ์ฟ ํฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ๊ธ‰dreamhack.io ๋“œ๋ฆผ์ด๋Š” ๋นผ๋นผ๋กœ๋ฐ์ด๋ฅผ ๋งž์•„ ํ‹ฐ์˜ค๋ฆฌ์ œ๊ณผ์—์„œ ๋นผ๋นผ๋กœ ๊ตฌ๋งค๋ฅผ ์œ„ํ•œ ์ฟ ํฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์€ FLAG! ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฐ, FLAG๋Š” ๋„ˆ๋ฌด ๋น„์‹ธ ์‚ด ์ˆ˜๊ฐ€ ์—†๋„ค์š”...์ฟ ํฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ๊ธ‰๋ฐ›๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ด๊ฒƒ๋„ ๋ถˆ๊ฐ€๋Šฅํ•ด์š”. ๋‚ด๋ถ€์ž ๋ง์— ์˜ํ•˜๋ฉด ์‚ฌ์šฉ๋œ ์ฟ ํฐ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋กœ์ง์ด ์ทจ์•ฝํ•˜๋‹ค๋Š”๋ฐ,๋“œ๋ฆผ์ด๋ฅผ ๋„์™€ FLAG๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š”!2. ํ•ด๊ฒฐ ๊ณผ์ •secret.pyfrom os impor..
[Dreamhack] Level 2: Dream Gallery
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/552 Dream Gallery๋“œ๋ฆผ์ด๋Š” ๊ฐค๋Ÿฌ๋ฆฌ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™ธ๋ถ€๋กœ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•ˆ์ „ํ•œ ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๊ณ  ํ•˜๋„ค์š”... ๊ฐค๋Ÿฌ๋ฆฌ ์‚ฌ์ดํŠธ์—์„œ ์ทจ์•ฝ์ ์„ ์ฐพ๊ณ  flag๋ฅผ ํš๋“ํ•˜์„ธ์š”! flag๋Š” /flag.txt์— ์žˆ์Šต๋‹ˆ๋‹ค.dreamhack.io 2. ํ•ด๊ฒฐ ๊ณผ์ •/ -> /view๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋œ๋‹ค. /view์—์„œ๋Š” mini_database ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. @app.route('/')def index(): return redirect(url_for('view'))@app.route('/view')def view(): return render_template('view.html', ..
[Dreamhack] Level 2: Relative Path Overwrite Advanced
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/440 Relative Path Overwrite AdvancedDescription Exercise: Relative Path Overwrite์˜ ํŒจ์น˜๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ์ˆ˜์ • ๋‚ด์—ญ 2023.08.10 bot.py ์ˆ˜์ •, Dockerfile ์ œ๊ณตdreamhack.io 2. ํ•ด๊ฒฐ ๊ณผ์ • ๊ธฐ๋ณธ์ ์ธ ์ฝ”๋“œ๋Š” Relative Path Overwrite์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค.  index.php์˜ ์ฝ”๋“œ์ด๋‹ค. GET๋ฐฉ์‹์œผ๋กœ page๋ฅผ ๋ฐ›๊ณ , ์ด page์— ..์ด๋‚˜ : ๋˜๋Š” / ์ด ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ include ํ•œ๋‹ค.  Relative-Path-O..
[Dreamhack] Level 2: sql injection bypass WAF Advanced
ยท
CTF, War game
1. ๋ฌธ์ œhttps://dreamhack.io/wargame/challenges/416 sql injection bypass WAF AdvancedDescription Exercise: SQL Injection Bypass WAF์˜ ํŒจ์น˜๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ์ˆ˜์ • ๋‚ด์—ญ 2023.07.24 Dockerfile ์ œ๊ณตdreamhack.io2. ํ•ด๊ฒฐ ๊ณผ์ •init.sql admin์˜ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ํ”Œ๋ž˜๊ทธ ๊ฐ’์ด๋‹ค. INSERT INTO user(uid, upw) values('abcde', '12345');INSERT INTO user(uid, upw) values('admin', 'DH{**FLAG**}');INSERT INTO user(uid, upw) values('guest', 'guest');INSERT INT..
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋” ์•Œ์•„๋ณด๊ธฐ
ยท
Study/CS
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - MySQL CRUD
ยท
Study/CS
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
mnzy๐ŸŒฑ
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)
-->