Webhacking.kr 31번
·
Webhacking.kr
$port 변수에 10000 ~ 10100 사이의 임의의 정수값이 대입된다. $socket 변수에는 fsockopen 함수를 통해 GET 메소드로 입력받은 server 파라미터의 IP 주소와, port 변수 값에 소켓 연결을 시도하고, 연결되지 않으면 오류가 발생한다. 우선 공유기해서 DMZ/Twin IP 기능을 이용해서 모든 통신에 대해 넘겨 받는다. 포트 변수에 랜덤하게 100개 정수 중 하나가 대입되니, 컴퓨터에서는 100개의 포트를 열어여 한다. nc와 배치파일(.bat)을 이용하여 100 개의 포트를 연다. 100개의 포트를 열고, 문제 페이지를 다시 요청하면 랜덤한 포트 번호로 연결이 들어온다. 위 사진의 경우 10014 포트 번호로 연결이 들어오고 GET 메소드로 password를 출력했다.
Webhacking.kr 30번
·
Webhacking.kr
어떤 파일을 올려서 푸는 문제인듯 하다. mysql_connect() 함수의 인자값이 없는 경우에는 웹 서버 설정값에서 DB 연결 대상 정보를 가져온다. 28번 문제와 동일하게 ".htaccess" 파일을 통해 웹 서버 설정 값을 변경할 수 있다. 즉, ".htaccess" 파일을 통해 db 연결 대상 정보를 변경해서 개인 서버에 접속하면 된다. 우선 개인 서버에 데이터베이스, 테이블을 만들고 해당 테이블에 'bob' 문자열을 넣는다. ".htaccess" 파일 내용을 위과 같이 설정한다. "host=외부 IP", "user=로그인_유저", "password="유저_비밀번호"
Webhacking.kr 29번
·
Webhacking.kr
파일을 몇개 올려보면 위 사진처럼 "시간 | ip | 파일이름+확장자" 형식으로 나타남 아마도 db에 insert -> select 과정을 거치는 듯 한데 예상되는 insert 쿼리는 다음과 같음 "insert into upload(time,ip,fname) valkues ('$time', '$ip', '$fname'); 일단 사용자가 변조할 수 있는 값은 파일명이기 때문에, 파일명에 해당하는 컬럼이 몇 번째 삽입되는지 확인해야 함 => 웹 프록시를 이용하여 파일명을 변경하면서 테스트 에러 발생 에러 발생 에러 발생하지 않음 그런데 insert -> select 쿼리가 실행되면 우측의 결과쪽에 파일명을 변조한 것에 대한 값이 나타나야 하는데 나타나지 않음 => 아마도 클라이언트의 ip에서 올려진 파일만 ..