분류 전체보기

· 웹해킹
문제 구성 해당 문제에 접속해보면 이러한 홈페이지가 나온다. 물론 문제 힌트에 /api/flag 를 가져오면 된다는 정보와 문제 제목에 path traversal이라는 정보를 주어줬다. Get User Info 에 들어가보자. userid 파라미터로 들어간 값이 post 로 넘어간다. script 단에서 guest라면 0, admin이라면 1이라고 값을 고치고 넘기게 된다. burpsuite를 통해서 해당 요청을 확인해보자. userid=0 이라는 값이 넘어간다. 브라우저에서 form 위치에 admin이나 guest 이외의 값을 작성한다면? undefined라는 값으로 넘어가게 된다... 여기서 생각할 수 있는건 2가지 해결책이다. 1. userid 위치에 undefined로 바뀌는것을 방지하기 위해 s..
from pwn import * #p = process('./sunshine') p = remote('chal.2023.sunshinectf.games', 23003) p.recvuntil(b'>>> ') p.sendline(b'-9') p.recvuntil(b'>>>') p.sendline(p64(0x40128f)) p.interactive() p.close() sunshine 파일을 실행시키면 요래요래 실행이 된다. 해당 문제에선 배열에 오렌지 , 사과, 배 , 바나나가 저장이 되어있고, 인덱스에 번호를 입력해서 해당 부분의 값을 바꿀 수 있는 문제이다. 하지만 여기서 인덱스 값이 초과로 입력되도, 해당 부분에 값을 바꿀 수 있다. 따라서 fruits 배열의 위치를 보면0x405080에 존재한다. e..
· 웹해킹
문제 설명 robots 만 접속할 수 있는 fast-food industry 라고 한다. 어… 당황스러운 창이 나온다. 해당 url로 접속하면 이러한 로그인 창이 나온다. 이곳은 사람을 위한 공간이 아닌, robot 만을 위한 공간이라고 한다... 해결 방법 찾기 일단 해당 로그인 값들을 유추하기 위해 bruteforce를 해야하는 건줄 알았지만 아니였다. 내가 아이디어를 얻은 곳은 크롤링을 할때 user-agent를 통해 봇이라는걸 알 수 있다는 것이였다. 익스플로잇 따라서 처음에는 bot이 사용하는 user-agent값을 사용하여 접속하면 그냥 접속이 되나? 싶었다. 그러면 어떤 값들에 접속이 되고 안되는지 궁금했고, 보통 크롤링 하는대로 robots.txt 파일이 존재하나 들어가봤다. 호오... 그..
· 웹해킹
현재는 열리지 않지만, 해당 블로그에 들어가면 로봇이 작성한 매우 많은 글들이 있다. 해당 글들에는 #000 과 같은 번호로 글이 작성되어있다. 힌트에 있듯이 초안에 flag가 있다고 했는데, #000은 보이지 않았다. /post/0 으로 직접 데이터를 받아왔는데 req header에 hidden 속성이 있었다. hidden : false 인 글들만 보이는걸로 보아 hidden:True 인 걸 찾으면 되지 않을까 했다. 따라서 총 글의 수가 1023이니, 1023까지 get을 하며 hidden 이 true인 것을 찾으면 되겠다고 생각했다. 익스플로잇 코드 import requests import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureR..
· 포렌식
low_effort wave 의 힌트는 의미 없는것 같다. 문제의 파일을 다운받아보면 low_effort wave라는 파일이 다운받아진다. 하지만 해당 파일은 재생도 안되고, 파형 분석 프로그램을 사용해도 의미없는 값만 나오게 된다. hex editor를 사용해서 파일을 열어봤다. 파일 시그니처가 PNG이다! 그렇다면 이 파일은 PNG 파일이라는 뜻이고 그 밑에 chunk와 ihat 등이 보인다. 일단 확장자를 png로 바꿔보자. 디스코드의 캡쳐 파일이 나온다. 아마 잘린 부분 외적으로 플래그가 써있을거라고 예상 됐다. png 파일의 구조를 이번에 처음 알았고, chunk 이후에 IHAT부분이 실제 데이터를 나타낸다는 것을 알았다. 추가적으로 PNG 파일의 푸터가 파일 중간에 있었다! 윈도우 캡쳐도구로 ..
익스플로잇 상대 시스템을 공격하는 것 셸코드 익스플로잇을 위해 제작된 어셈블리 코드조각 셀을 획득하기 위한 목적으로 셸코드를 사용 해커가 rip를 자신이 작성한 셸코드로 옮기면 원하는 어셈블리 코드가 실행되게 할 수 있다. 어셈블리어는 기계어와 거의 1:1 대응이기에 모든 명령을 CPU에 내릴 수 있게 된다. 자주 사용되는 셸코드 모음이 있지만 이는 범용적으로 작성 되었기 때문에 시스템 환경을 완전히 반영 못함. 따라서 최적의 셸코드는 일반적으로 직접 작성해야 함 orw 셸코드 작성 파일 열고 읽은 뒤 화면에 출력해주는 셸코드 구현하려는 기능: char buf[0x30]; int fd = open("/tmp/flag", RD_ONLY, NULL); read(fd, buf, 0x30); write(1, b..
wget을 이용해서 파일을 받아 gdb로 실행시켰더니 debug 심볼도 안찾아지고 이상하게 실행됐다. 보통 실행 파일에 패킹이 되어있는 경우가 많으니 exeinfo를 통해 확인해봤다. 오... upx로 패킹이 돼어 있다고 한다 해당 해킹을 풀기 위해선 upx -d flag 를 통해 언패킹을 할 수 있다. 이후 gdb를 실행 시키니 됐다! main 32열을 보면 flag값을 rdx에 저장하고 있다. 해당 부분을 실행 후 rdx값을 확인해봤다. 해결~
· 머신러닝
보호되어 있는 글입니다.
Redhat 6.2 버전의 구닥다리 환경에서 실습을 진행했다... 처음 배우는 뉴비의 글이니 틀린 정보들이 수두룩 할 것이다... sample.c #include void main(){ int c; c = function(1, 2); } int function(int a, int b){ char buffer[10]; a = a + b; return a; } 해당 코드의 동작은 main() int c 변수 선언 c 변수에 function(1, 2) 값 대입 function(int a, int b) char buffer[10] 선언 a 변수에 a와 b를 더한 값을 저장 a값을 반환 으로 동작한다 sample.c의 어셈블리 코드이다. 해당 어셈블리는 intel 기반이 아닌 at&t 문법을 사용하기 때문에 mo..
세종대학교 S.S.G / WHS 2기
'분류 전체보기' 카테고리의 글 목록 (3 Page)