목록HackCTF (40)
Bace

문제는 다음과 같다. 딱 봤을때는 sql injection 문제인가 해서 admin / 'or'1 을 넣어보았다. Invalid creds 라고 뜬다. 페이지 소스를 봐보았다. user 이름을 받아서 함수를 거쳐 로그인하는 것 같다. 일단 아래쪽에 id가 cresponse라고 나와있으므로 chrome의 console 기능을 통해 user 이름에 cresponse를 넣어보았다. function a(h) { if(h.length != 2) { h = "\x30" + h; } return "\x5c\x78" + h; } function x(d) { if(d < 0) { d = 0xFFFFFFFF + d + 1; } return d.toString(16).toUpperCase(); } var k = "cresp..

32비트 프로그램이다. 보호기법이 안걸려있다. 프로그램을 실행하면 다음과 같이 나온다. IDA로 봐보았다. scanf로 s를 받은 다음 %p로 주소를 출력해준다. 보호기법이 안걸려있으므로, 아무 글자나 넣고 맨처음 주소를 알아내고 Again을 통해 다시 돌아가서 s, sfp의 크기인 0x88 + 4를 쉘코드와 \x90으로 다 채워주고 처음 주소를 ret으로 주면 된다. # exploit Data에 a를 넣어 맨처음 주소를 알아내고, Again으로 돌아와서 쉘코드를 넣고, \x90으로 나머지를 채우고 ret에 data를 주고 Again을 n으로 넣어 끝냈다. # 결과 flag가 떴다. HackCTF{y0u_d1d_7h3_45516nm3n7_5ucc355fully!} # Auth

파일은 32비트 파일이다. 보호기법은 NX와 PIE가 걸려있다. 프로그램을 실행하면 다음과 같이 나온다. aaaa를 넣어봤다. Nah... 가 나온다. IDA를 통해 확인해보았다. welcome j0n9hyun 주소 bof_pie 프로그램을 실행하면 앞의 5자리만 바뀌고, 뒤의 3자리는 welcome의 주소인 909가 그대로 박혀있다. 이 909를 j0n9hyun의 주소인 890으로 바꾸면 문제가 풀릴 것이다. # exploit p.recvuntil로 welcome의 j0n9hyun is 까지 받은 후 뒤의 주소를 받아서 data에 넣어준다. 그리고 data에서 welcome의 주소인 0x909를 빼준 후 j0n9hyun의 주소인 0x890 을 더해주면 된다. 그리고 welcome의 v1의 크기인 0x1..