일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- AdaGrad
- C언어
- flag
- PICO CTF
- Python Challenge
- PostgreSQL
- 코딩
- 역전파
- Python
- 기울기
- Apache2
- 소프트맥스 함수
- picoCTF
- CTF
- 딥러닝
- sgd
- 오차역전파법
- 파이썬
- 우분투
- 신경망
- 설치
- 백준
- 순전파
- 리뷰
- 책
- FastAPI
- PHP
- HTML
- 신경망 학습
- 아파치
- Today
- Total
목록공부/Pwnable (7)
Story of CowHacker
pwnable.kr 사이트 문제 중 input이라는 문제를 풀어볼 것이다. 출처 : http://pwnable.kr/play.php http://pwnable.kr/play.php pwnable.kr 문제 서버에 접속을 해봤다. 드래그 한 부분에 대충 /tmp 아래에 파일은 언제든 지울 수 있고, /tmp 아래에 나의 디렉터리를 만들라는 소리인 거 같았다. 다음은 문제 서버에 c파일이 있길래 열어 봤다. c파일의 내용은 엄청 길었다. 중간중간에 Stage 1 clear!라고 위 코드를 만족시키면 클리어를 시켜 주는 듯했다. 총 5개 보였다. 먼저 나는 Stage 1 위에 printf 문을 봤다. 출처 : https://papago.naver.com/ 네이버 파파고 번역을 부탁해 파파고 papago.nav..
포너블 random 문제를 풀어볼것이다. 한 아이가 아빠한테 프로그래밍할때 랜덤값을 어떻게 사용하는지 묻는 문제였다. 문제 서버로 접속해서 파일 목록을 보니 c파일이 있었다. c파일을 열어서 보니 random이라는 변수값을 선언하고 scanf로 받는 구조로 시작했다. 그리고 scanf한 key값과 random값을 ^ ( XOR ) 한 값이 0xdeadbeef랑 같으면 flag를 볼수있는 문제였다. 먼저 random값이 무엇인지알아야만 했다. 먼저 intel 문법으로 쉽게 보기 위해 설정을 했다. call한 부분에서 random변수를 선언한걸 알수있다. 저 부분에 break를 걸고 실행해봤다. eax에 random값이 들어간걸 볼수있었다. eax에 6b8b4567값이 들어간걸 드디어 확인할수 있었다. 이제..
포너블 5번 문제를 풀어 볼것이다. ssh 로 접속 주소가 있었다. ls 해본 결과 플래그 passcode, passxode.c 가 있었다. passcode.c 파일을 cat으로 보았다. 크게 두개의 함수와 그리고 main 함수가 있었다. 먼저 main 함수를 보면 프린트문을 출력하고 welcome함수로 넘어 갔다. 그리고 나서 login함수로 넘어가고 나서 두번째 프린트 문을 출력했다. welcome함수를 보았다. char name[100]을 보아 name 이라는 변수에 버퍼 100을 준것이였다. 그리고 scanf로 값을 받아 name에 넣고 프린트 문을 출력할려는 모습이였다. login함수를 보았다. int passcode1 int passcode2 두개의 passcode변수를 선언하고 passcod..
포너블 4번 문제를 풀어 볼것이다. flag라는 4번문제, 아빠가 선물을 줬다는 글이랑 리버싱이라는 글과 바이너리가 필요하다는 글이 있었다. 또 나는 다운로드 링크를 통해 받은 flag라는 파일을 cat 으로 열어봤다. 깨진 글이 였다. gdb로 열어봤다. disassemble main 으로 main 구문을 어셈블리어로 볼려고 했는데 로드가 되지 않았다. 권한을 줘 봤다. 실행 권한이 없어서 그런가 싶어서 이다. x, 실행권한을 준걸 확인하고, 음...똑같은 현상이였다. 이번에는 flag파일을 실행 시켜 봤다. malloc이라는 함수에 플레그가 있는 듯 한 말이 떳다. IDA프로그램으로 파일을 열어봤다. main 구문도 없고 별 건질 건 없었다. 그래서 이 파일은 도대체 뭘까 해서 봤다. 구글링 결과 컨..
포너블 3번째 문제를 풀어 볼것이다. 버퍼오버플로우가 소프트웨어의 취약점이라는게 사실 이라고 묻는 질문에 다운로드 링크 2개가 있고 ,nc 접속 주소가 있다. bof.c 링크 부터 들어가 c파일을 확인해봤다. 일단, main함수 부터 봤다. 메인 함수 인자에는 argc라는 변수에 argv형식으로 값을 넣어 주는 거 같았다. 그리고 main함수 안에 func해놓고 0xdeadbeef값을 반환하게 해 놓았다. 이제 위로 가서 func 함수를 봤다. 여기서는 overflowme[32]라고 overflowme라는 변수에 32 바이트를 준다는걸 알수 있었다. 그리고 gets로 값을 받아 if 문으로 또는 else문으로 가는 형식이였다. 여기서 if 문으로 가기 위해선 overflowme의 값이 oxcafebabe..
포너블 2번 문제를 풀어볼거다. 해석을 대충 해봤다. 아들이 아빠한테 MD5 충돌에 대해 들었다. 나도 하고싶다?? ( 아버지 대단하신거 같다. MD5도 아시고;; ) 번역기를 돌려 봤다. 대충 맞게 해석 한거 같았다. MD5 해시 충돌이 뭔지 구글링 해봤다. 서로 다른 두 개의 입력값에 대해 동일한 출력값을 내는 상황을 해시 충돌이라고 나와있다. 이 정보를 알고난 후 문제에 있는 shh로 접속을 해봤다. 역시나 제작자의 나름 디자인한 pwnablee.kr이 보였다. password는 guest를 입력하고 들어갔다. 들어간후 일단 뭐가 있는지 ls를 쳐보니 col, col.c flag 가 있었다. 1번 문제인 fd와 똑같은 구조의 파일이였다. 호기심에 col을 cat으로 열어 보았다. ㅎㅎ 역시나 외계어..
포너블 1번 문제를 풀어 볼거다. 사이트를 들어 가봤다. 문제를 풀려면 회원가입은 필수다. http://pwnable.kr/play.php# http://pwnable.kr/play.php pwnable.kr 일단 난 영어가 부족해서 번역기를 돌려 봤다. ( 문제를 알아야 문제를 풀던가 말던가 하기 떄문이다. ) 난 구글 번역기 말고 파파고 번역기를 사용했다. ( 후배가 알려준 좋은 사이트 인거 같다. ) https://papago.naver.com/ 네이버 파파고 번역을 부탁해 파파고 papago.naver.com 리눅스 설명자가 뭐라는 어떤 아이의 질문이였다. 엄마는 과연 알고 계실까 궁금했다. " * " 해놓고 밑에 참고 영상 이래서 들어 가봤다. 후기 : 어떤 외국인 남성이 문제 푸는 영상이였다...