감자 텃밭

Double (URL) Encoding (이중 인코딩) 본문

IT(보안)

Double (URL) Encoding (이중 인코딩)

g2h 2023. 2. 5. 13:17

What is Double (URL) Encdoing?

Double URL Encoding란 동일한 인코딩 체계 (URL Encoding)을 사용하여 이중으로 인코딩한 것을 의미한다.
이는 이중으로 인코딩하여, 길고 해석하기 어려운 인코딩 결가값을 도출해낸다. 
URL에서 안전하지 않은 문자 (공백, 특수문자)등은 url인코딩을 통해 안전하게 전송된다.

Why?

보통 이중 인코딩을 하는 이유는 보안 메커니즘을 우회하기 위해 주로 사용된다.
url인코딩 된 값을 필터링에 한번 적용시킨 경우 이중 인코딩을 통해 인증체계를 무력화시킬 수 있다.

 

Example

위와 같은 url 인코딩 표를 보고 알아보자.

예를 들어, admin 이라는 문자열이 필터링되고 있다고 가정해 보자.

URL을 통해 GET 요청을 보내는 쿼리문이 존재할 때 http://127.0.0.1/admin와 같이 SSRF 형식의 공격을 할 수 있다.

이때 admin이라는 문자열이 필터링되어있으면 이를 우회해야 한다. url인코딩 표에서 a는 %61을 나타낸다.

 

이를 한번 더 인코딩할 경우. %2561와 같이 변환된다. 이를 통해 admin이라는 문자열을 전부 이중 인코딩할 경우

%2561%2564% 256d%2569% 256e와 같이 변환된 URL 인코딩 값을 얻을 수 있다.

이를 통해 URL인코딩 필터링 값을 우회할 수 있다.

 

 

 

 

※ 내용이 이상하거나 문제가 있을경우, 또는 설명에 부족한 내용이 있으시면 알려 주시면 감사합니다.

'IT(보안)' 카테고리의 다른 글

RequestsBin (+Using requestsbin with XSS)  (0) 2023.01.27