접속하면 col이랑 col.c, flag가 보인다.
flag는 당연히 권한이 없어서 못 읽는다.
col.c를 읽어보면, argv[1]로 받은 20바이트를 4바이트 int로 쪼개서 res에 더하는 것을 알 수 있다.
res가 0x21dd09ec면 된다.
편하게 0x21dd09ec를 5로 나눠서 조건을 만족하게 만들어주면 된다.
나머지가 4니까 나중에 더해주면 된다.
int로 쪼갤때마다 6c5cec8을 만족하면 조건문을 통과할 수 있다.
그리고 마지막에 나머지를 더해주면 hashcode와 같아진다.
0x6c5cec8을 리틀 엔디언으로 변환해주면, \xc8\xce\xc5\x06가 되고, 이걸 내게 복붙 한 다음, 마지막에 4를 더해주면 된다.
\xc8\xce\xc5\x06\xc8\xce\xc5\x06\xc8\xce\xc5\x06\xc8\xce\xc5\x06\xc8\xce\xc5\x06의 마지막을 \xcc\xce\xc5\x06로 바꿔서 \xc8\xce\xc5\x06\xc8\xce\xc5\x06\xc8\xce\xc5\x06\xc8\xce\xc5\x06\xcc\xce\xc5\x06를 argv[1]로 주면 된다.
'WARGAME > pwnable.kr' 카테고리의 다른 글
pwnable.kr random write-up (0) | 2022.08.20 |
---|---|
pwnable.kr passcode write-up (0) | 2022.08.16 |
pwnable.kr flag write-up (0) | 2022.08.15 |
pwnable.kr bof write-up (0) | 2022.08.15 |
pwnable.kr fd write-up (0) | 2022.08.14 |