Webhacking.kr 39번
·
Webhacking.kr
(\) 문자를 지운다. (') 문자를 ('') 으로 치환한다. substr 함수를 통해 15번째 글자까지 자른다. 문제가 발생하는 부분은 쿼리 부분이다. 잘 보면 ("select ~~~ id='$_POST[id]") 로 작성되어 있다. 끝 부분에 싱글 쿼테이션이 하나 빠져 있어서 무조건 오류가 난다. 오류가 난다고 입력 부분에 (')을 입력해 버리면 str_replace 함수 때문에 ('') 로 변경되서 똑같이 오류가 난다. 핵심은 바로 substr 함수를 통해 15번째 글자까지 자른다는 것이다. " admin(공백 9개)' " 를 입력한다. 입력값 입력값 길이 치환값 치환값 길이 admin(공백 8개)' 14글자 admin(공백 8개)'' 15글자 admin(공백 9개)' 15글자 admin(공백 9개..
Webhacking.kr 38번
·
Webhacking.kr
bob 를 입력 후 로그인을 한다. 로그인이 누르면 로그가 보여지는데 "IP:입력값" 형식으로 저장된다. 주어진 힌트 "admin" 을 입력하고 로그인을 한다. 로그인이 실패한다. 추론을 해보자, 'bob'를 입력하면 "58.xxx.xx.xxx:bob" 라고 로그에 기록이 된다. 그러면 로그에 '58.xxx.xxx.xx:admin'
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 변수에 파일 객체를..