목록분류 전체보기 (205)
Bace
flag가 바로 나와있다. 이미지를 저장한다. 저장된 파일을 확인해보면 flag가 보인다. HackCTF{w3lc0m3_70_f0r3n51c_w0rld!}
32비트 프로그램이다. IDA로 main을 보면 아래와 같이 있다. sup shell sup이 puts로 받은 s를 return 시켜주는거니까 sup에다가 shell의 주소를 넣어주면 된다. s가 ebp-8Ch이고, v5가 ebp-Ch 이므로 sup인 v5를 bof 해서 shell을 실행시키려면 8C-C인 0x80 뒤에 shell 주소를 보내주면 된다. 0x80을 10진수로 바꿔서 128로 보내주었다. # Exploit flag가 떴다. HackCTF{h3y_dud3_600d_f0r_y0u}
문제를 들어가서 파일을 다운로드 받는다. 파일 형식을 보면 32비트이다. IDA로 파일을 연다. main을 보면 s의 사이즈가 0x34 (10진수로 52) 인데 fget로는 45를 받는다. 만약 v5 가 -559038737 이면 /bin/dash를 준단다. gdb로 main문을 확인해보았다. deadbeef이면 shell을 주는거 같다. s가 ebp-34h 이고 v5가 ebp-Ch 이므로 v5를 덮기 위해서는 34-C인 0x28 뒤에 붙여서 주면 된다. 0x28을 10진수로 바꿔서 40 뒤에 deadbeef를 줬더니 이겼다고 뜬다. 이때 deadbeef 는 리틀 엔디안으로 써야한다. -> payload에 p32(0xdeadbeef) 라고 써서 넘겨줘도 된다. # Exploit flag가 떴다. HackC..
이전 문제인 gremlin에서 구한 cobolt와 PW인 hacking exposed를 이용해 로그인한다. ID : cobolt PW : hacking exposed 파일 목록을 보면 코드를 보면 버퍼가 16바이트이고 이번엔 strcpy가 아니라 gets로 buffer에 입력 받아서 출력한다. 여기서도 buffer 크기 + SFP 크기인 20글자를 입력하면 segmentation fault 가 뜬다. 파이썬으로 문자열을 보내봤다. python -c 'print "a"*100' | ./goblin a가 100개가 들어가도 segmentation fault가 뜨진 않지만 실제로는 fault가 났다. core 파일이 생겼다. 다음 명령어로 gets에 인자를 주고 argv 에 쉘코드를 넣는다. python -c '..