Webhacking.kr 37번
·
Webhacking.kr
"tmp-xxxxxxxx" 형태의 문자열이 꽤 많이 보이고, 아래쪽에는 "127.0.0.1:777" 문자열과 파일 업로드 기능을 볼 수 있다. time() 함수는 1970년 1월 1월 00시 00분 00초를 기준으로 현재 초까지의 시간을 초로 나타낸다. 해당 초가 $time 변수에 저장된다. 그리고 $f 변수에는 tmp/tmp-$time 이라는 파일명을 쓰기 모드로 연다. 파일을 열고 "127.0.0.1" 문자열을 작선하고 닫는다. $fck 변수는 크게 중요하지 않은 부분이니 넘어간다. 사용자가 업로드한 파일명에 '', '.', ' ' 문자가 포함되면 해당 문자를 삭제한다. tmp 디렉토리 이하에서 업로드 된 파일명을 쓰기 모드로 열고 클라이언트의 공인 IP를 작성하고 닫는다. $ck 변수에 파일 객체를..
Webhacking.kr 36번
·
Webhacking.kr
힌트로 vi와 blackout이 주어진다. 해석해보면 "vi를 사용하던 중 정전이 일어나서 프로그램이 꺼졌다" 뭐 그런 소린로 추정할 수 있다. vi 에디터를 사용해본 사람은 알겠지만 예기치 못한 이유로 프로그램이 종료되면 vi 에디터는 현재 경로에 ".파일명.swp" 파일을 생성시킨다. - "index.php" => ".index.php.swp" 비밀번호는 "공인IP + dlseprtmvpdl~~~~" 문자열의 md5 해쉬 결과이다. 파이썬에서 str 변수에 공인IP + dlse~~ 값을 저장하고 md5 해쉬를 뽑아낸다.
Webhacking.kr 35번
·
Webhacking.kr
GET 메소드로 전송되는 "phone" 파라미터 값에 필터링이 적용되어 있다. 그 다음에는 쿼리가 실행되는데, 각 변수의 의미는 아래와 같다. - SESSION[id] = id 값 - SERVER[REMOTE_ADDR] = 클라이언트 공인 IP 값 - GET[phone] = 사용자가 입력한 값 내 환경상 아마 "VALUES ('wraith', '58.xx.xx.xx', 정수_입력값)" 쿼리가 실행될 것이다. 그리고 id 값이 "admin" 이면서 ip 값이 내 공인 IP와 동일한 컬럼이 존재하면 해당 결과에서 id 를 보여줄 것이다. 공인 IP는 바뀌지 않으니 쉽게 말하면 (SESSION[id]) 값이 "admin" 일 때만 클리어 된다는 소리다. 문제는 해당 값은 가입할 때 세팅되고 변경할 수 없다는 ..