Webhacking.kr 49번
·
Webhacking.kr
"union, from, select, or, and, (), limit, (,), /, by, desc, asc, cash, 공백, %, %09" 문자열이 필터링 된다. 그리고 $q 변수에 GET 메소드로 전송되는 lv 파라미터 값을 포함하는 쿼리의 실행 결과가 나타난다. "or" 필터링을 " || " 로 우회할 수 있다. (소스에는 안 보이는데 admin 문자열도 필터링 하는듯) 위와 같이 입력하면 lv 값이 '1'인 "zzibong" id 값이 리턴된다. 뒤의 0x61646d696e hex 값은 "admin"을 의미한다. 따라서 lv 값을 조절하여 값이 리턴되지 않게 하고 (| |) 연산자를 이용해서 id like admin 결과와 함친다.
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가 담긴 이메일이 전송 될 것이다.