I made a skeleton interface for one time password authentication system. I guess there are no mistakes. could you take a look at it? hint : not a race condition. do not bruteforce. ssh otp@pwnable.kr -p2222 (pw:guest) Analysis /* otp.c */ int fd = open("/dev/urandom", O_RDONLY); if(fd==-1) exit(-1); if(read(fd, otp, 16)!=16) exit(-1); close(fd); sprintf(fname, "/tmp/%llu", otp[0]); FILE* fp = fo..
Can you get authentication from this server? Download : http://pwnable.kr/bin/login Running at : nc pwnable.kr 9003 Mitigation Analysis auth()에 들어오는 input의 길이는 최대 0xc입니다. 그런데 이 input을 ebp-0x8에 위치한 v4의 위치에 복사합니다. 따라서 ebp에 저장된 값을 원하는 값으로 덮어쓸 수 있습니다. auth()의 ebp에 저장된 값은 auth()가 return된 후에 진행되는 main()의 ebp가 됩니다. main()의 return address는 ebp+0x4에 위치하기 때문에, 이를 이용하여 실행 흐름을 조작할 수 있습니다. Exploit correct()에..
We made a simple MD5 calculator as a network service. Find a bug and exploit it to get a shell. Download : http://pwnable.kr/bin/hash hint : this service shares the same machine with pwnable.kr web service Running at : nc pwnable.kr 9002 Mitigation Analysis Buffer overflow in process_hash() g_buf에는 0x400바이트까지 입력할 수 있는데, 최대로 입력할 경우 base64 decode하면 0x300바이트가 됩니다. 하지만 decode한 문자열을 저장하는 v3의 size는 0x..
I made a simple brain-fuck language emulation program written in C. The [ ] commands are not implemented yet. However the rest functionality seems working fine. Find a bug and exploit it to get a shell. Download : http://pwnable.kr/bin/bf Download : http://pwnable.kr/bin/bf_libc.so Running at : nc pwnable.kr 9001 Mitigation Analysis 연산을 처리할 때 p가 tape의 범위를 벗어나지 않는지 검사하는 과정이 없어서 OOB가 발생할 수 있습니다. t..
Voldemort concealed his splitted soul inside 7 horcruxes. Find all horcruxes, and ROP it! author: jiwon choi ssh horcruxes@pwnable.kr -p2222 (pw:guest) Mitigation Analysis ropme()의 gets(s)에서 발생하는 buffer overflow를 이용하여 return address를 덮어쓸 수 있습니다. Exploit ropme()의 return address를 플래그를 읽어와서 출력하는 코드의 주소로 덮으면 될 것 같지만, 주소에 0x0a가 포함되기 때문에 불가능합니다. 대신 A()부터 G()까지 모두 호출하여 a부터 g까지의 값을 알아낸 후 sum을 알맞게 입력하면 플..
'Wargame/pwnable.kr' 카테고리의 글 목록