다음과 같은 창이 나와 눌러보았다.
다음과 같이 코드가 나왔다.
이것을 해석해 보면 먼저 get방식으로 받은 id변수값이 admin인지 검사하여 참이면 no!를 출력한 후 종료되게 한다. - (1
그리고 id변수값을 urldecode를 해 주어 id변수에 다시 저장한다.
urlencode란 url을 통해 데이터를 전송하고자 할 때 인코딩을 해야 하는 경우에 사용된다. urlencode()함수는 인자로 전달받은 문자열 데이터를 16진수 ASCII코드로 변환하고 그 앞에 %기호를 붙인 형식으로 인코딩하여 반환한다.
그 값이 "admin"과 같으면 문제가 해결된다.
이 문제를 풀기 위해서는 admin을 urlencode 해 놓는다면 (1 에 걸리지 않고 $_GET[id] 값이 admin이 되어 문제가 풀린다.
다음 표에 맞춰서 url인코딩을 하였다.
admin -> %61%64%6d%69%6e
이때 주의해야 할 점은 url에 인코딩 된 값을 적어 넣을 때 웹브라우저에서 한 번 디코딩 된 상태로 인식되므로 두 번 인코딩 해 주어야 문제가 풀린다.
admin -> %61%64%6d%69%6e -> %2561%2564%256d%2569%256e
다음과 같이 문제가 풀렸다.
'워게임 > webhacking.kr' 카테고리의 다른 글
webhacking.kr 17번 (0) | 2016.09.01 |
---|---|
webhacking.kr 6번 (0) | 2016.09.01 |
webhacking.kr 14번 (0) | 2016.09.01 |
webhacking.kr 18번 (1) | 2016.09.01 |
webhacking.kr 16번 (0) | 2016.09.01 |