[linux] gdb에서 core사용하기 포스팅 썸네일 이미지

Coding_Algorithm/Operating System

[linux] gdb에서 core사용하기

GDB에서 core 사용하기 gdb로 분석을 하다보면, 내가 맞다고 생각했던 payload가 답이 아닐 때가 있습니다. 특히 Segmentation Fault같은 에러가 발생하면 뒷목잡기를 유발하죠. 이는 파일이 직접 실행되면서 실제 동적 프로세서 주소와 차이가 있기 때문입니다. 이럴 때 사용할 수 있는 core파일 이라는 게 있습니다. 간단히 설명하자면, 어떤 프로그램이 각종 crash를 발생하면서 프로그램을 종료했을 때, 종료하기 전 상황을 core라는 파일로 남깁니다. 그럼 이 core파일 기준으로 분석을 해준다면, 이는 동적 프로세서가 직접 할당한 주소이기 때문에, 오차가 발생할 일이 없다는 것이죠. 우선 문제 예시는 LOB wolfman입니다. 우선 파일을 복사해줍니다. 복사를 해주는 이유는 자..

2020.07.17 게시됨

[해커스쿨 LOB] Level6: Wolfman >> Darkelf 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level6: Wolfman >> Darkelf

Level 6. Wolfman >> Darkelf Theme: Egghunter + Buffer Hunter + check length of argv[1] 로그인! id: wolfman pw: love eyuna bash2 잊지 마시고, 코드 분석해봅시다. [wolfman@localhost wolfman]$ bash2 [wolfman@localhost wolfman]$ nl darkelf.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - darkelf 4 - egghunter + buffer hunter + check length of argv[1] 5 */ 6 #include 7 #include 8 extern char **environ; 9 ..

2020.07.17 게시됨

[PuTTY/LOB] "Stack is still your friend"; 분명 맞는 페이로드를 짰는데 틀렸을 때 포스팅 썸네일 이미지

나의 고혈압걸리는 에러일기

[PuTTY/LOB] "Stack is still your friend"; 분명 맞는 페이로드를 짰는데 틀렸을 때

LOB를 풀다보면 Segmentation Fault도 아니고 "stack is still your friend"가 뜰 때가 있다. 결론부터 얘기하면 bash2입력하세요. 자 갈길갈사람들은 가시고 "왜?"가 궁금하신 분들은 나머지 글을 읽읍시다. 아니 난 스택 잘 맞춰줬는데 도대체 뭐가 문제지? gdb로 한번 분석을 해봅시다. 문제는 lob wolfman 일부를 가져왔습니다. [orc@localhost orc]$ gdb -q lolfman (gdb) disas main Dump of assembler code for function main: 0x8048500 : push %ebp 0x8048501 : mov %esp,%ebp 0x8048503 : sub $0x2c,%esp 0x8048506 : cmpl ..

2020.07.16 게시됨

[pwnable.kr] coin1(6 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] coin1(6 pts) :: Write-Up

Mommy, I wanna play a game! (if your network reponse time is too slow, try nc 0 9007 inside pwnable.kr server) Running at : nc pwnable.kr 9007 보니까 진짜 동전은 무게가 10이고, 가짜 동전은 무게가 9인데, 무게의 합을 통해 가짜 동전을 찾아달라는 게임이네요. 두개씩 비교를 한다면 N/2번 비교를 해야하지만, 주어지는 C는 N/2보다 터무니없이 값이 작습니다. 따라서 이원탐색, Binary Search를 사용하면 좋을 것 같네요. Binary Search에 대한 기본적인 내용은 다음과 같습니다: https://dokhakdubini.tistory.com/175?category=847037 [..

2020.07.12 게시됨

[pwnable.kr] shellshock(1 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.kr

[pwnable.kr] shellshock(1 pts) :: Write-Up

Mommy, there was a shocking news about bash. I bet you already know, but lets just make it sure :) ssh shellshock@pwnable.kr -p2222 (pw:guest) bash에 대한 문제인가봅니다. #include int main(){ setresuid(getegid(), getegid(), getegid()); setresgid(getegid(), getegid(), getegid()); system("/home/shellshock/bash -c 'echo shock_me'"); return 0; } 단순히 bash를 실행시킨 후, 명령어를 실행합니다. shellshock를 실행시켜 얻은 bash권한으로 flag를..

2020.07.09 게시됨

[castorsCTF2020] ::pwnable:: abcbof풀이 포스팅 썸네일 이미지

CTF

[castorsCTF2020] ::pwnable:: abcbof풀이

일단 castorsctf는 정말 초보자/입문자를 위한 ctf이고, 난이도는 모두 매우 쉬웠다. (일단 최소한 포너블) 몇달정도 시스템 해킹을 건드리지 못했고, 다 까먹은 상태에서 풀기 좋았다. 시간이 된다면 다른 분야도 다 풀고 풀이를 올릴 예정~ 아무튼 시작해보면, 뭐 아무것도 없네요. 윾시 입문자 문제 gets로 v4에 입력을 받고는 s2에있는 값을 비교를 하네요. 이거는 스택구조만 확인하면 끝나는 부분이져? gdb로 main함수 까보니까 rbp-0x110에 입력을 받고, rbp-0x10에 있는 값을 비교하니까 bof를 이용해서 값을 조작해주면 될듯 합니다. 끝! 참고로 설명하면 ;cat부분은 argv로 매개변수 받는게 아니고 gets함수로 기다리고있는거기때문에 그거뜰때까지 기다리는 부분이고 |은 g..

2020.06.01 게시됨

[C로 쓴 자료구조론] 1장 연습문제-12번(멱급수) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-12번(멱급수) 풀이

12번 문제 S가 n개의 원소로 된 집합일 때 S의 멱집합(powerset)은 모든 가능한 S의 부분 집합이다. 즉, S = {a, b, c}이면 powerset(S) = { {}, {a}, {b}, {c}, {a, b}, {b, c}, {a, c}, {a, b, c} } 이다. powerset(S)를 계산하는 순환 함수를 계산하여라. 문제가 약간 1장 3번같은 느낌이네요. 이 풀이도 참고하면 좋을 것 같습니다. https://dokhakdubini.tistory.com/186 [C로 쓴 자료구조론] 1장 연습문제-3번(Boolean출력) 풀이 1장 연습문제-3번(Boolean출력) 풀이입니다. 3. n개의 Boolean 변수 x1, x2, x3, ... ,xn이 주어졌을 때, 이 변수들이 가질 수 있는..

2020.05.17 게시됨