Webhacking.kr 48번
·
Webhacking.kr
"webhackingkr.hwp" 파일을 업로드 하려고 하면 파일명 길이 제한이 걸린다. 파일명을 "123" 으로 만들고 업로드를 하면 성공적으로 업로드 되고, 업로드 된 파일의 경로와 삭제 버튼을 볼 수 있다. 내용이 없기 때문에 당연히 "null"이 나타난다. "Delete" 버튼을 눌러서 파일을 지운 뒤, 다시 한번 해당 파일 경로 (http://webhacking.kr~~~~/upload/123) 를 누르면 404 not found가 나타난다. 아마 "r m 파일명" 명령어를 이용해서 파일을 지우는 듯 하다. 즉, 공격 포인트는 바로 "Delete" 버튼을 눌렀을 때 발생되는 명령어 부분이다. 바로 명령어 인젝션! 파일명을 ";ls"로 만들고 업로드 한다. 당연히 파일 내용은 없다. 지우는 순간 ..
Webhacking.kr 47번
·
Webhacking.kr
소스를 보면 POST 메소드로 전송하는 email 파라미터 부분이 이메일 내 "FROM" 에 들어간다. "test"를 입력한다 email=test 패킷이 날라가게 된다. 그렇게 되면 test 라는 메일이 admin@webhacking.kr 메일에 flag가 포함된 이메일이 전송되게 된다. 하지만 flag 이메일이 본인 이메일에 전송되야 문제가 풀리게 된다. 문제 클리어를 위해 이메일에서 사용되는 태그를 이용한다. "cc" 태그는 이메일에서 "참조"를 의미한다. 위 사진처럼 "email=test \n cc:bob@gmail.com" 처럼 입력하면 메일 헤더 내에 "cc:bob@gmail.com" 주소가 포함되어 "bob@gmail.com" 주소로 flag가 담긴 이메일이 전송 될 것이다.
Webhacking.kr 46번
·
Webhacking.kr
GET 메소드로 전송되는 lv 파마리터 값에서 공백,'/', '*', '%' 문자가 들어오면 삭제해 버린다. 그리고 "union, select, from, challenge, 0x, limit, cash" 문자열이 들어오면 아예 오류가 발생된다. 그리고 $q 변수에 lv 파라미터 값과 함께 실행되는 쿼리의 값이 저장되는데, 쿼리 결과 내 id 값이 "admin" 일 때만 문제가 클리어 된다. 공백 우회는 %0a를 사용하면 된다. 위에서 보이는 0b0110000101100100011011010110100101101110 정수값은 "admin" 문자열을 2진수로 나타나낸 것이다. (이상하게 admin 을 입력하면 클리어가 안됨, 필터링 하는듯) 위 쿼리에서는 lv 값이 1로 세팅되어 "zzibong" id ..