안녕하세요. 저는 회사에서 사용하는 독점적 인 웹 서버 프로그램을 중단시키려는 임무를 맡았습니다. 실제로 운이 좋지는 않습니다. 그것은 c에 내장되어 있습니다.웹 서버 해킹
루트로 실행되며 명령을 실행하려고합니다. 웹 서버는 URL에 게시 된 명령을 취해 이러한 접두사가있는 명령을 실행합니다. 이제 '& _cmd = gettimeout'또는 '& _cmd = rm'과 같은 명령을 전달할 수 있습니다. 프로그램은 실제로 "접두어 rm"을 실행합니다
접두사 프로그램은 유용한 UNIX 명령이없는 일련의 디렉토리에서 해당 명령을 실행하려고하므로 다시 명령을 찾을 수 없다는 것을보고합니다. '& _cmd = rm % 20-f'와 같이 공백을 +로 변환하기 때문에 URL에 공백을 넣을 수도 없습니다. 어쨌든 & _cmd 문자열을 포맷하여 실제 유닉스 명령을 실행합니까?
이상한 일이지만 나는 보안 강좌를 수강중인 배치 학생이고 나의 일은 내 과정과 관련하여 나를 위해 몇 가지 일을 찾으려고하고있다. 당신의 도움이
& _ cmd = rm; pwd? 그것은 pwd 명령을 실행합니까? ".."가있는 상위 디렉토리에 액세스 할 수 있습니까? "/ usr/bin"과 같은 절대 경로에 액세스 할 수 있습니까? "rm % 20-rf % 20 /"과 같은 하나 이상의 인수를 전달할 수 있습니까? – vaugham
왜 태그가 C입니까? 태그가 삭제되었습니다. – pmg
커맨드 rm; pwd를 찾을 수 없다 그냥 전체 텍스트를 취해서 하나의 커맨드로 해석하는 것처럼 보입니다. –