아이티고 ctf에서 나온 문제였는데, 서버가 닫혀 문제 사진은 없다. id는 admin이였고 pw값이 1~10000 중 하나였다. 브루트포싱 문제였다. 코드이다12345678910111213import requests URL = 'http://problem.seoulit.kr/web/nv74vbcv/1.php'for i in range(0,10000) : data = {'id' : 'admin', 'pw' : i} res = requests.post(url=URL, data=data) print (i) print ("번째\n") if(not"not" in res.text): print("=") print(i) break Colored by Color Scriptercs id는 계속 admin을 넣어주고 ..
[pwnable.kr] Toddler's Bottle - random (1 pt) write-up 폰케알 random 문제입니다. 서버에 접속 해보겠습니다. ls명령으로 확인 해보니, flag파일, 실행파일, 코드가 있습니다. 코드를 보겠습니다. 코드는 단순합니다.random변수는 rand함수로 부터 난수를 받아오고, key값은 입력을 받습니다.그러고 난 후, key와 random을 xor연산을 합니다. xor연산 후 0xdeadbeef와 같으면 플래그를 띄어줍니다. 코드에는 srand함수가 없습니다.그래서, 프로그램을 실행할 때 마다 random변수의 값은 일정합니다. 그렇다면, gdb를 이용해 브레이크포인트를 걸어놓고 random변수의 값을 찾으면 되겠네요. main+56에서 rbp-0x8과 rbp-..
[pwnable.kr] Toddler's Bottle - flag (7 pt) write-up 폰케알 flag문제입니다. 바이너리 파일을 다운받겠습니다.. 문제에 packed라는 힌트가 있습니다. 일단, 바이너리 파일을 ida로 열어보겠습니다. 그리고 컨트롤 + 1 을 눌러서 퀵 뷰를 열고 string을 검색하겠습니다. 음 upx. 어쩌구가 있군요. 문제의 내용과 같이 upx로 패킹이 되어있는 파일 같습니다. UPX(Ultimate Packer for eXecutables)는 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램입니다. 먼저 컴퓨터에 upx를 깔고 바이너리 파일을 언패킹 하도록 하겠습니다. 이렇게 있습니다. 환경변수를 등록하여 cmd에서 해보려고 하니 오류가 ..
[pwnable.kr] Toddler's Bottle - collision(3 pt) write-up 폰케알 collision 문제 입니다. 서버에 접속해보겠습니다. ls명령으로 파일을 확인해보니, 실행파일 col, 코드 col.c, flag파일이 있네요. 코드를 확인해보겠습니다. 먼저, main함수부터 보겠습니다. argc가 2아래 일 경우, 프로그램은 종료 됩니다. 또, argv[1]의 길이가 20바이트가 아닐 경우 종료됩니다. 따라서 입력은 argv[1] 의 문자열로 받겠군요. 그리고 해쉬코드인 0x21DD09EC와 check_password(argv[1])의 값을 비교해서 참일시 플래그가 출력됩니다. 그럼이제, check_password() 함수를 보겠습니다. 입력받은 argv[1]의 값을 가져오..
[pwnable.kr] Toddler's Bottle - fd(1 pt) write-up 폰케알에 제일 첫 번째로 있는 문제입니다. 자기 자신 혼자서 풀라고 하네요. ssh로 접속을 해보면,간단한 pwnable.kr의 설명과 함께 접속이 됩니다. ls 명령어로 어떤 파일이 존재하는지 확인 해 보겠습니다. fd 실행파일과, fd.c 코드 파일, flag 파일이 존재합니다. C 코드를 해석하기 앞서 문제의 힌트인 문제제목 fd (파일 디스크립터)에 대해서 알아야 합니다. 파일 디스크립터란, 리눅스에서 시스템으로부터 할당받은 파일이나 소켓에 부여 된 정수 입니다. 윈도우의 핸들 개념과 비슷하다고 합니다. 하지만 차이점은 1씩 순서대로 추가가 된다고 합니다.파일 디스크립터는 0,1,2를 제외하고 3부터 정수를 ..
[pwnable.kr] Toddler's Bottle - bof(5 pt) write-up 폰케알 버퍼 오버 플로우 문제입니다. gets함수에서 오버플로우가 가능하겠군요. 메모리 구조는 func()의 전달인자 | sfp | ret | key | 더미 |overflowme[32] 이 될 듯 합니다. key의 값이 0xcafebabe 이면 자동으로 쉘을 띄어 줍니다. 버퍼 오버 플로우로 key의 값을 변조 해주면 되겠습니다. 먼저 gdb로 바이너리 파일을 분석하겠습니다. ebp-02c가 overflowme 버퍼의 시작주소가 되겠군요. 그리고 ebp+8 과 0xcafebabe를 비교합니다. ebp-02c 에서 ebp+8 의 거리는 수학시간에 배웠 듯이 뒤에서 앞을 빼면 거리가 나옵니다. 52이군요. 그럼 52..
12월 16일 (토) 교내 교육 봉사 프로그램인 Hello Coding에 참여했다.헬로 코딩은 저소득층 아이들, 중학생들을 상대로 1대 1 멘토, 멘티로코딩교육을 하는 프로그램이다. 나는 동아리 TeamLog 소속으로 이 프로그램에 참여했다.주제는 '마인크래프트로 배우는 파이썬 프로그래밍' 이다. 이 것은 책으로 만들어져 있다. 우리 동아리에선 이 책을 공부하여 코딩을 처음 접하거나 할 줄 알더라도 초보자 친구들에게좀 더 쉽게 코딩을 배울 수 있게 노력하였다. 그리고 마인크래프트는 7개의 정품을 이용하였다. (예산으로 사줌) 나는 봉사를 위해 동아리에서 근 2개월 파이썬 공부를 하였고, 이 책에 소개 되어있는 모듈을 이용하여 마인크래프트에서 다양한 것을 해보았다. 헬로코딩은 10시 ~ 6시 8시간 동안 ..
FTZ level3pw : Can you fly? level3입니다. 힌트가 있습니다. 음.. 먼저 100바이트의 cmd 배열이 선언 되어있고, 인자가 2개 입력되지 않으면 에러가 출력되고 프로그램이 종료됩니다. Strcpy()함수와 strcat()함수를 이용해서 코드를 보면 dig @”인자로받은값”+version.blind chaos txt가 될 것 입니다. 그리고 이 조합된 명령어가 system함수로 실행이 됩니다. 힌트에 있는 동시에 여러 명령어를 사용하려면? 문자열 형태로 명령어를 전달하려면?을 참고하여 문자열 형태로 동시에 여러 명령어를 사용한다는 조건을 충족하면 되는 것 같습니다. 그리고 이 코드의 실행파일은 level4의 setuid가 걸려있습니다. 이 실행파일을 찾아보면, 실행파일은 /bi..
- pwnable
- stack reusing
- overflow
- ebp change
- fastbin
- fsop
- rt_sigreturn
- 본선가고싶다
- hacking
- oob
- exit
- SQLi
- 해킹
- shellcoding
- pwnable.tw
- pwable
- fastbindup
- HackCTF
- tcache
- codegate
- glibc
- srop
- heap
- FSB
- TLS
- Total
- Today
- Yesterday