systemhacking(4)
-
pwnable.xyz - two targets
int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int input; // eax char name[32]; // [rsp+10h] [rbp-40h] BYREF _QWORD v5[4]; // [rsp+30h] [rbp-20h] BYREF v5[3] = __readfsqword(0x28u); setup(argc, argv, envp); memset(name, 0, 0x38uLL); while ( 1 ) { while ( 1 ) { print_menu(); input = read_int32(); // read 1~4 if ( input != 2 ) break; printf("nationality: "); scanf_("..
2021.08.01 -
HackCTF - RTC
return에서 read로 0x200을 읽기 때문에 bof가 터집니다. 간단히 보면 rop로 풀이가 가능할 것 같습니다. 하..지..만 read, write를 사용해서 rop를 하려면 pop rdi, pop rsi, pop rdx 가젯이 있어야하는데.. 가젯이 없으니 문제 이름과 같이 RTC를 사용해서 풀이해보겠습니다. 간략하게 정리하면 이 부분을 이용해서 가젯을 조작하고, 이 부분을 이용해서 함수를 호출하면 됩니다. payload는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51..
2021.01.08 -
9. LOS - vampire
vampire문제입니다. str_replace명령어가 admin을 공백으로 변환하는 함수이니두가지 방법으로 풀 수 있습니다1. admin을 2번넣어주어서 사이를 공백으로 비워서 adadminmin->ad+""+min이 되게끔하기 2. ADMIN을 대문자로 넣어주셔서 그냥 프리패스하기! 페이로드입니다. 12345678910111213141516171819202122232425import requestsimport string URL = "http://los.eagle-jump.org/vampire_0538b0259b6680c1ca4631a388177ed4.php"payload = "?id=adadminmin"URL += payload cookies = dict(PHPSESSID = "dvs710ccqajr..
2018.08.06 -
pwnable.kr - collision
먼저 코드부터 확인해보면 다음과 같습니다. 프로그램상 실행하면서 인자값으로 데이터를 전달받기때문에 값은 인자로 넘겨주면될 것 같습니다. 조건1 : 인자1개이상 넣어주기조건2 : 길이 20byte로 맞추기조건3 : hashcode와 함수를 통과한 넣어준 값일치하게하기 함수를 보면 인자로 받은 값을을 4byte씩 끊는 것을 볼 수 있습니다. 이렇게 총 5번을 나눠서ㅁㅁㅁㅁ/ㅁㅁㅁㅁ/ㅁㅁㅁㅁ/ㅁㅁㅁㅁ/ㅁㅁㅁㅁ이렇게 만들고 이거를 배열로 가정하였을때[0] + [1] + [2] + [3] + [4] = hashcode가 되어야합니다. 그럼 hashcode를 5로 나누면 될 것 같습니다.이대로 exploirt코드 작성해서 익스해주면?? 왜 안되지...라고 생각했는데 프로그래머계산기는 나머지를 버릴수밖에 없어서 21..
2018.08.03