[์›นํ•ดํ‚น] Dreamhack beginner: php7cmp4re
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/1113 php7cmp4reDescription php 7.4๋กœ ์ž‘์„ฑ๋œ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ์•Œ๋งž์€ Input ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ํ”Œ๋ž˜๊ทธ ํ˜•์‹์€ DH{} ์ž…๋‹ˆ๋‹ค.dreamhack.io 2. ํ•ด๊ฒฐ ๊ณผ์ •๋ฌธ์ œ ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋ฉด ๋‘๊ฐœ์˜ input๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ์นธ์ด ๋œฌ๋‹ค. ์ด ๊ฐ’์— ๋”ฐ๋ผ try again ๋“ฑ์ด ๊ฒฐ๊ณผํ™”๋ฉด์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค. (1) ์ฝ”๋“œ ๋ถ„์„  php7cmp4re Index page "7.9"){ if(strlen..
[wargame.kr] counting query
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/342 [wargame.kr] counting queryDescription Error based SQLi Challengedreamhack.io 2.ํ•ด๊ฒฐ ๊ณผ์ •id๋Š” ip์ฃผ์†Œ์˜ ํ˜•์‹์œผ๋กœ ๋˜์–ด ์žˆ๊ณ  id๋Š” ์ž…๋ ฅ์ฐฝ์—์„œ๋Š” ๋”ฐ๋กœ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํŒจ์Šค์›Œ๋“œ์— ์•„๋ฌด๋‚ด์šฉ์ด๋‚˜ ์ž…๋ ฅํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. (1) ์ฝ”๋“œ ๋ถ„์„ํ”Œ๋ž˜๊ทธ๋Š” ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•œ ๋’ค, ํŒจ์Šค์›Œ๋“œ๋ฅผ ํ•œ ๋ฒˆ ๋” ํ™•์ธํ•˜๊ณ  ์ถœ๋ ฅํ•ด์ค€๋‹ค. -> ๊ฒฐ๊ตญ ๋ฌธ์ œ๋Š” ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ •ํ™•ํ•œ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ= 4){ pw_change($id); count_init($id); err("SECURITY : bruteforcing detected - password is..
[Dreamhack] beginner: bof
ยท
CTF, War game
1. ๋ฌธ์ œhttps://dreamhack.io/wargame/challenges/1111 bofDescription Buffer overflow is one of the basics of pwnable ๐Ÿฑ The path of the flag file is /home/bof/flag.dreamhack.ioThe path of the flag file is /home/bof/flag.2. ํ’€์ด(1) ์ฝ”๋“œ ํ™•์ธmain(): ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ read_cat()ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ž…๋ ฅ์„ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ด๋•Œ ./cat ์ด ์ €์žฅ๋˜๋Š” v5๋ณ€์ˆ˜๋Š” 16๋ฐ”์ดํŠธ์ด๊ณ , ์ž…๋ ฅ๊ฐ’์€ 128 ๋ฐ”์ดํŠธ์˜ ํฌ๊ธฐ์ด๋‹ค. ์ฆ‰,  v4์˜ ํฌ๊ธฐ๊ฐ€ 128๋ฐ”์ดํŠธ์ธ๋ฐ, scanf๋กœ ์ตœ๋Œ€ 144๋ฐ”์ดํŠธ๋ฅผ ์ฝ์–ด๋“ค์ด๋ฏ€๋กœ, bof๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ..
[Dreamhack] beginner: baby-bof
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/974 baby-bofDescription Simple pwnable 101 challenge Q. What is Return Address? Q. Explain that why BOF is dangerous.dreamhack.io Q. What is Return Address?Q. Explain that why BOF is dangerous.2. ํ’€์ด๋ฌธ์ œ์— ๋‘๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์ œ์‹œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ํ•ด๊ฒฐํ•˜๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณผ ๊ฒƒ์ด๋‹ค. ๋จผ์ € ๋ฌธ์ œ ์‹คํ–‰ํŒŒ์ผ์„ ida๋ฅผ ํ†ตํ•ด ๋””์Šค์–ด์…ˆ๋ธ” ํ•ด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๋ณด์—ฌ์ง„๋‹ค.  the main function doesn't call win function (0x4012..
[Dreamhack] Level2: web-deserialize-python
ยท
CTF, War game
1. ๋ฌธ์ œ https://dreamhack.io/wargame/challenges/40 web-deserialize-pythonSession Login์ด ๊ตฌํ˜„๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Python(pickle)์˜ Deserialize ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ํ”Œ๋ž˜๊ทธ๋Š” flag.txt ๋˜๋Š” FLAG ๋ณ€์ˆ˜์— ์žˆ์Šต๋‹ˆ๋‹ค.dreamhack.io ๋ฌธ์ œ์—์„œ Python(pickle)์˜ Deserialize ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€๋ผ๊ณ  ์ œ์‹œ๋˜์–ด์žˆ๋‹ค. ํ•ด๋‹น ์ทจ์•ฝ์ ์— ๋Œ€ํ•ด์„œ๋Š” ์ฒ˜์Œ ๋“ค์–ด๋ด์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. โ–ผ๋”๋ณด๊ธฐhttps://mnzy.tistory.com/2012. ํ•ด๊ฒฐ ๊ณผ์ • (1) ๋ฌธ์ œ ํŽ˜์ด์ง€ ์ ‘์†  - create Session >  ์ •๋ณด ์ž…๋ ฅ > create - sessionID ๋ณต์‚ฌ ํ›„ check sessi..
[ํŒŒ์ด์ฌ] pickle module (Deserialize ์ทจ์•ฝ์ )
ยท
Study/WebHacking
1. Serialization & DeserializationํŒŒ์ด์ฌ์˜ pickle ๋ชจ๋“ˆ์€ ๊ฐ์ฒด ๊ตฌ์กฐ์˜ ์ง๋ ฌํ™”(serialization)์™€ ์—ญ์ง๋ ฌํ™”(deserialization)๋ฅผ ์œ„ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, pickle ๋ชจ๋“ˆ์€ ํŒŒ์ด์ฌ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€ํ™˜ํ•˜๊ณ , ๋‹ค์‹œ ๊ทธ ๊ฐ์ฒด๋กœ ๋ณต์›ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์ด๋‹ค.serialization : ํŒŒ์ด์ฌ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ -> ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ = picklingdeserialize : ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ -> ํŒŒ์ด์ฌ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ  = unpickling์ฆ‰, ์ง๋ ฌํ™”๋ฅผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ/DB์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์„ธ์…˜์— ๊ฑธ์ณ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.  2. Pickle ..
[Dreamhack] Level 2: blind-command
ยท
CTF, War game
1. ๋ฌธ์ œhttps://dreamhack.io/wargame/challenges/73 blind-commandRead the flag file XD Reference Web Hackingdreamhack.ioflag file์„ ์ฝ์œผ๋ผ๊ณ  ๋˜์–ด์žˆ๋‹ค. 2. ํ•ด๊ฒฐ ๊ณผ์ •(1) ๋ฌธ์ œ ํŽ˜์ด์ง€ ํ™•์ธ?cmd=hi๋ฅผ ์ฃผ๋ฉด ํ™”๋ฉด์— ๊ทธ๋Œ€๋กœ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋œ๋‹ค. (2) ์ฝ”๋“œ ํ™•์ธcmd์˜ ์ฟผ๋ฆฌ๊ฐ’์„ ๋ฐ›์•„ ์‹คํ–‰ํ•˜๋Š” ์ „ํ˜•์ ์ธ command injection ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ GET ์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›์•„์˜ฌ ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ cmd๊ฐ’์„ ์ค„ ๋•Œ๋งŒ ์ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.#!/usr/bin/env python3from flask import Flask, requestimp..
[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 ๋ฒ„์ „์—์„œ ํ…Œ..
mnzy๐ŸŒฑ
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)
-->