목록CTF (59)
개발세발보안중

실행해보면 아래와 같은 프로그램이 실행된다. Name 과 Password를 입력받는다. 아마 Password를 구하는 것일것이다. 아무데나 BP를 걸고 따라가보니 시작 주소가 401390임을 알 수 있다. F9를 이용해서 401447로 갔다. 그리고 Name을 입력받는 주소인 401501에 BP를 걸고 F9를 입력하면 Name을 입력할 수 있다. 그리고 아래로 더 내려가면 Password를 입력받는 주소인 401589가 나온다. Password로 아무거나 입력해보니 성공과 실패로나뉘어지는 CMP 명령어오 ㅏ분기점을 찾을 수 있다. CMP명령어가 존재하는 40159F를 BP걸고 F9를 실행하면 현재 EBP가 70FF38이라는 것을 알 수 있고 Dump를 살펴보면 70FEFC ~ 70FEFF까지의 문자열이 ..

HD를 CD-rom으로 만들어달라고 한다. 계속 F9을 눌러보니 Nah..this is not a CD-ROM Drive라고 뜬다. 그리고 그 밑에 Ok, I really think that your HD is a CD-Rom이 있다. GetDriveTypeA의 리턴값을 구하자면, 리턴값을 담는 레지스터인 EAX의 값이 3임을 알 수 있다. EAX가 00401003이 되어야한다. 그러므로 GetDriveTypeA의 리턴값에 00401002를 더해야한다. (방법 1 함수 리턴값을 받는 레지스터의 값을 조작 2 어셈블리 코드 조작하여 인식된 결과를 출력)

select * from users where userid="admin" -- and userpassword="{userpassword}" 의 형식으로 만들어주면 FLAG가 뜬다