반응형 분류 전체보기42 [Toddler's Bottle] blukat blukat? 이름이 이상하다...헛소리하다??#include #include #include #include char flag[100]; char password[100]; char* key = "3\rG[S/%\x1c\x1d#0?\rIS\x0f\x1c\x1d\x18;,4\x1b\x00\x1bp;5\x0b\x1b\x08\x45+"; void calc_flag(char* s){ int i; for(i=0; i flag[i] = s[i] ^ key[i]; } printf("%s\n", flag); } int main(){ FILE* fp = fopen("/home/blukat/password", "r".. 2024. 5. 11. [Toddler's Bottle] leg leg@pwnable.kr으로 접속하면 다음과 같이 출력된다.평소와 같이 쉘이 실행되는 모습이 아니다.그래서 직접 다운로드 링크에 접속하여 코드를 확인했다. 복붙하면 개행처리 되지 않아 예쁘게 나오지 않으므로 부득이하게 캡처를 했다.쉘 내부에서 몇가지 명령어가 되는 것을 확인했다. leg 파일이 있는 걸로 봐서 입력 후에 flag가 열리는 구조 인것 같다.그렇다면 위의 코드를 열심히 분석해보자leg.c의 코드를 보면 key1()+key2()+key3() 가 key과 같을 시에 flag를 열 수 있는 구조이다.0x00008d84 : add r2, r4, r30x00008d8c : cmp r2, r3해당 부분을 보면 r2에 key가 저장되어 있는 것 같다. 모르는 것을 잠깐 정리해보자.sp(Stack Poi.. 2024. 5. 11. [Toddler's Bottle] input #include #include #include #include #include int main(int argc, char* argv[], char* envp[]){ printf("Welcome to pwnable.kr\n"); printf("Let's see if you know how to give input to program\n"); printf("Just give me correct inputs then you will get the flag :)\n"); // argv if(argc != 100) return 0; if(strcmp(argv['A'],"\x00")) return 0; if(strcmp(a.. 2024. 5. 11. [Toddler's Bottle] asm #include #include #include #include #include #include #include #include #define LENGTH 128 void sandbox(){ scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_KILL); if (ctx == NULL) { printf("seccomp error\n"); exit(0); } seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(open), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SY.. 2024. 5. 11. 이전 1 2 3 4 5 6 7 8 ··· 11 다음 반응형