์‰˜์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ (2)
ยท
Study/Pwnable
1.execve ์‰˜์ฝ”๋“œ์‰˜์€ ์šด์˜์ฒด์ œ๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๊ป์งˆ์ด๋‹ค.์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์šด์˜์ฒด์ œ์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ,  ์‰˜์„ ํš๋“ํ•˜๋ฉด ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฏ€๋กœ ํ†ต์ƒ์ ์œผ๋กœ ์…ธ ํš๋“์„ ์‹œ์Šคํ…œ ํ•ดํ‚น์˜ ์„ฑ๊ณต์œผ๋กœ ์—ฌ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. execve ์…ธ์ฝ”๋“œ๋Š” ์ž„์˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์‰˜์ฝ”๋“œ์ธ๋ฐ, ์ด๋ฅผ ์ด์šฉํ•ด์„œ execve("/bin/sh") ์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œ์ผœ ์„œ๋ฒ„์˜ ์‰˜์„ ํš๋“ํ•  ์ˆ˜ ์žˆ๋‹ค.//๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์–ธ๊ธ‰์—†์ด ์…ธ์ฝ”๋“œ๋ผ๊ณ  ํ•˜๋ฉด ์ด๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ตœ์‹ ์˜ ๋ฆฌ๋ˆ…์Šค๋Š” ๋Œ€๋ถ€๋ถ„ sh, bash๋ฅผ ๊ธฐ๋ณธ ์…ธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ํƒ‘์žฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ์™ธ์—๋„ zsh, tsh ๋“ฑ์˜ ์…ธ์„ ์œ ์ €๊ฐ€ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.  Ubuntu 22.04์—๋„ /bin/sh๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ, ์ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” execve..
์‰˜์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ (1)
ยท
Study/Pwnable
1. ์‰˜์ฝ”๋“œ๋ž€์‰˜์ฝ”๋“œ(Shellcode)๋Š” ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ(๊ธฐ๊ณ„์–ด) ์ฝ”๋“œ ์กฐ๊ฐ์„ ์˜๋ฏธํ•œ๋‹ค.pwnable์—์„œ๋Š” ์‰˜์„ ํš๋“ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‰˜์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ๋œ๋‹ค. ๋งŒ์•ฝ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์œ„์น˜(rip)๋ฅผ ์ž์‹ ์ด ์ž‘์„ฑํ•œ ์‰˜์ฝ”๋“œ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค๋ฉด ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋Š” ๊ธฐ๊ณ„์–ด์™€ ๊ฑฐ์˜ ์ผ๋Œ€์ผ ๋Œ€์‘๋˜๋ฏ€๋กœ ์‚ฌ์‹ค์ƒ ์›ํ•˜๋Š” ๋ชจ๋“  ๋ช…๋ น์„ CPU์— ๋‚ด๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‰˜์ฝ”๋“œ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ๊ตฌ์„ฑ๋˜๋ฏ€๋กœ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์™€ ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ, ๊ทธ๋ฆฌ๊ณ  ์…ธ์ฝ”๋“œ์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑ๋˜๋ฏ€๋กœ, ์ง์ ‘ ์ž‘์„ฑํ•  ์ค„ ์•Œ์•„์•ผ ํ•œ๋‹ค. 2. orw ์‰˜์ฝ”๋“œ ์ž‘์„ฑ “/tmp/flag”๊ฒฝ๋กœ์˜ ํŒŒ์ผ์„ readํ•˜๋Š” ์‰˜์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž์ด์ฒ˜๋Ÿผ ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ์‰˜์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ํ•„์š”ํ•œ syscall์€ open(), read(), writ..
pwntools ์„ค์น˜
ยท
Study/Pwnable
https://github.com/Gallopsled/pwntools GitHub - Gallopsled/pwntools: CTF framework and exploit development libraryCTF framework and exploit development library. Contribute to Gallopsled/pwntools development by creating an account on GitHub.github.com  pwntools๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ์ต์Šคํ”Œ๋กœ์ž‡ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ํ•จ์ˆ˜๋“ค์„ ๋ชจ์•„๋‘” ๊ฒƒ์ด๋‹ค.(ex. ์ •์ˆ˜๋ฅผ ๋ฆฌํ‹€ ์—”๋””์–ธ์˜ ๋ฐ”์ดํŠธ ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๋Š” ํŒจํ‚น ํ•จ์ˆ˜, ๊ทธ ์—ญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ธํŒจํ‚น ํ•จ์ˆ˜ ๋“ฑ  ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ๊นƒํ—ˆ๋ธŒ์— ๊ฐ€์ด๋“œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. sudo ..
gdb ์ •๋ฆฌ
ยท
Study/Reversing
1. pwndbg ์„ค์น˜ (ubuntu 22.04) https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made EasyExploit Development and Reverse Engineering with GDB Made Easy - pwndbg/pwndbggithub.com 2. ๋””๋ฒ„๊น…(1) ํŒŒ์ผ ์ƒ์„ฑ// Name: debugee.c// Compile: gcc -o debugee debugee.c -no-pie#include int main(void) { int sum = 0; int val1 = 1; int val2 = 2; sum = val1 + v..
[ํŒŒ์ด์ฌ] pickle module (Deserialize ์ทจ์•ฝ์ )
ยท
Study/WebHacking
1. Serialization & DeserializationํŒŒ์ด์ฌ์˜ pickle ๋ชจ๋“ˆ์€ ๊ฐ์ฒด ๊ตฌ์กฐ์˜ ์ง๋ ฌํ™”(serialization)์™€ ์—ญ์ง๋ ฌํ™”(deserialization)๋ฅผ ์œ„ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, pickle ๋ชจ๋“ˆ์€ ํŒŒ์ด์ฌ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€ํ™˜ํ•˜๊ณ , ๋‹ค์‹œ ๊ทธ ๊ฐ์ฒด๋กœ ๋ณต์›ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์ด๋‹ค.serialization : ํŒŒ์ด์ฌ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ -> ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ = picklingdeserialize : ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ -> ํŒŒ์ด์ฌ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ  = unpickling์ฆ‰, ์ง๋ ฌํ™”๋ฅผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ/DB์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์„ธ์…˜์— ๊ฑธ์ณ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.  2. Pickle ..
[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..
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋” ์•Œ์•„๋ณด๊ธฐ
ยท
Study/CS
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - MySQL CRUD
ยท
Study/CS
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] MySQL ํ…Œ์ด๋ธ”์˜ ์ƒ์„ฑ
ยท
Study/CS
ํ•ด๋‹น ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. [๋ฌด๋ฃŒ] DATABASE 1&2 - MySQL - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜์ •๋ณด๊ธฐ์ˆ ์˜ ์‹ฌ์žฅ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ์†Œ๊ฐœ๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณธ์งˆ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MYSQL ์„ ํ•™์Šตํ•ด ๋ด…๋‹ˆ๋‹ค., [์ž„๋ฒ ๋”ฉ ์˜์ƒ] ๊ฐ•์ขŒwww.inflearn.com1. ํ…Œ์ด๋ธ” ์ƒ์„ฑ์ฐธ๊ณ ํ•œ cheat sheet: https://windtrap.tistory.com/m/119 (1) ํ…Œ์ด๋ธ” ์ƒ์„ฑCREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…INT: ์ •์ˆ˜VARCHAR: ์ •ํ•ด์ง„ ๊ธธ์ด๋งŒํผ๋งŒ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•จ DATATIME: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•ด์คŒ ('0000-00-00 00:00:00')(): ๋ฐ์ดํ„ฐ๋ฅผ ๋ช‡ ์ž๋ฆฌ๊นŒ์ง€ '์ถœ๋ ฅ'ํ• ๊ฒƒ์ธ์ง€_VARCHAR์€ ์ €์žฅ!N..
mnzy๐ŸŒฑ
'Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก
-->