[pwnable.xyz] door
Wargame/pwnable.xyz
Door To Other RealmS Mitigation Analysis 1. Choose a door.에서 realm을 door의 값과 같게 맞추면 AAW가 가능합니다. door_의 값을 바꿀 수 있는 유일한 방법입니다. 3. Enter the door.에서 realm이 door의 주소이면 door_의 초깃값인 0을 넣어서 random value를 제거할 수 있지만, 그렇게 하면 door의 값이 0이 되어 2. Open the door.를 사용할 수 없게 됩니다. Exploit door가 아니라 door + 1에 0을 넣어서 random value를 1바이트만 남길 수 있습니다. 남은 1바이트는 brute force로 맞출 수 있습니다. AAW로는 한 번에 4바이트만 쓸 수 있기 때문에 GOT를 한 번..
[pwnable.kr] simple login
Wargame/pwnable.kr
Can you get authentication from this server?Download : http://pwnable.kr/bin/loginRunning at : nc pwnable.kr 9003AttachmentBugauth()에 들어오는 input의 길이는 최대 0xc이다. 그런데 이 input을 ebp-0x8에 위치한 v4의 위치에 복사한다.따라서 ebp에 저장된 값을 원하는 값으로 덮어쓸 수 있다.auth()의 ebp에 저장된 값은 auth()가 return된 후에 진행되는 main()의 ebp가 된다.main()의 return address는 ebp+0x4에 위치하기 때문에, 이를 이용하여 실행 흐름을 조작할 수 있다.Exploitcorrect()에서 system("/bin/sh")을 호..
[pwnable.kr] md5 calculator
Wargame/pwnable.kr
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/hashhint : this service shares the same machine with pwnable.kr web serviceRunning at : nc pwnable.kr 9002AttachmentBugg_buf에는 0x400바이트까지 입력할 수 있는데, 최대로 입력할 경우 base64 decode하면 0x300바이트가 된다. 하지만 decode한 문자열을 저장하는 v3의 size는 0x200이므로 stack buffer overflow가 발생할 수 있다.ExploitL..
[pwnable.kr] brain fuck
Wargame/pwnable.kr
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/bfDownload : http://pwnable.kr/bin/bf_libc.soRunning at : nc pwnable.kr 9001AttachmentBug와 > 연산을 처리할 때 p가 tape의 범위를 벗어나지 않는지 검사하는 과정이 없어서 OOB가 발생할 수 있다.tape의 앞쪽에 있는 ..
[pwnable.kr] horcruxes
Wargame/pwnable.kr
Voldemort concealed his splitted soul inside 7 horcruxes.Find all horcruxes, and ROP it!author: jiwon choissh horcruxes@pwnable.kr -p2222 (pw:guest)AttachmentBugropme()의 gets(s)에서 stack buffer overflow가 발생한다.Exploitropme()의 return address를 플래그를 읽어와서 출력하는 코드의 주소로 덮으면 될 것 같지만, 주소에 0x0a가 포함되기 때문에 불가능하다. 대신 A()부터 G()까지 모두 호출하여 a부터 g까지의 값을 알아낸 후 sum을 알맞게 입력하면 플래그를 획득할 수 있다.# ex.pyfrom pwn import *r =..
h0meb0dy_
'Wargame' 카테고리의 글 목록 (20 Page)