본문 바로가기

[webhacking.kr] Challenge 37 :: 포트 포워딩 2 [ 본 문제풀이에 앞서, 제 블로그에 "Challenge 31 :: 포트 포워딩 1" 을 참고하시면 도움이 됩니다. ] http://limjunyoung.tistory.com/61 ▼ Challenge 37은 다음과 같습니다. 소스는 크게 3부분으로 나누어서 설명하겠습니다. ▼ 첫 번째, 시스템에 시간을 "$time" 이라는 변수에 넣고 "tmp" 디렉터리에 "tmp-$time" 이라는 파일을 만들어서 "127.0.0.1"을 Write 합니다. 첫 페이지에서 새로고침 했을 때, 생성되는 파일들 입니다. "tmp/.number" 파일은 파일의 갯수를 측정하는 파일로써, file() 함수로 한줄씩 읽어서 배열로 반환하고 숫자를 증가시킨 값을 다시 파일에 Write 합니다. ( @는 php에서 오류 제어 연산.. 더보기
[webhacking.kr] Challenge 43 :: 파일 업로드 취약점 1 (Content-Type) ▼ Challenge 45는 다음과 같습니다. 이미지 파일을 전송해보면 정상적으로 업로드가 됩니다. ▼ 이미지 파일을 전송했을 때, Request Header는 다음과 같습니다. 이번에는 webshell 파일 (확장자가 php)을 업로드 해보면 Access Denied가 뜹니다. ▼ webshell파일을 전송했을 때, Request Header는 다음과 같습니다. 문제에서 hint를 보면 File Type이라고 나와 있는데, Request Header의 Content-Type을 보고 필터링을 하고 있다고 추측을 해볼 수 있습니다. Content-Type : 전자 우편의 파일 형식을 알리기 위해 사용되었지만, 이제는 HTTP, SIP와 같은 인터넷 프로토콜에도 사용되고 있습니다. 그렇다면 webshell .. 더보기
[webhacking.kr] Challenge 51 :: Raw MD5 ▼ Challenge 51은 다음과 같습니다. ▼ 소스코드는 다음과 같습니다. 위 코드에서 pw값이 md5(pw, true) 형식으로 반환됩니다. md5() 함수는 다음과 같은 Option이 존재합니다. md5(pw, false) : 기본값으로, 32자리의 16진수(Hex)로 출력md5(pw, ture) : 16자리의 바이너리 형태로 출력 ▼ 다음과 같이 Output을 보면 이해하기 쉬울 겁니다. Input Output echo md5("test") 900150983cd24fb0d6963f7d28e17f72 echo md5("test", true) �P� 더보기