[System] command_injection / 100
Download: vuln 64bit ELF 바이너리 파일이다. 간단하게 IDA로 디컴파일해서 내용을 확인한다. isSafe 함수로 문자열을 검사하고 조건에 들어맞을 경우 print를 통해 출력한다. print를 간단히 정리하면 최종적으로는 다음을 호출한다는 것을 알 수 있다. system("echo \"Hello! {s}! Have a nice day!\""); s에 사용자의 입력이 들어간다. Command Injection이 가능한 형태 중 하나다. isSafe에서는 Byte 값이 32, 48~57, 65~90, 96~122 에 해당되지 않는 경우 false를 return한다. 대충 보면 잘 눈치채지 못하겠지만, 모든 글자는 공백, 숫자, 대문자, 소문자여야 한다. 놀랍게도 Off-by-one 버그로..