-
[Webhacking.kr] Challenge 24Wargame/Webhacking.kr 2023. 4. 9. 10:56반응형
Challenge 24를 풀어보자.
문제 화면을 보면 client ip와 agent가 표시되어 있으며 Wrong IP!라는 문구가 출력되어 있다.
특별한 힌트는 없는 것 같으므로, 소스 코드를 보도록 하자.

<Challenge 24의 문제 화면> 소스 코드를 보면 ip 변수가 '127.0.0.1'이 되면 문제가 해결된다.
ip는 REMOTE_ADDR에서 가져 오는데, str_replace 함수로 인해 필터링을 거친다.
그리고 이 문제에서 가장 중요한 것은 extract 함수이다.
SERVER와 COOKIE에 대해 사용하고 있는데, 이 함수는 보안에 취약해 현재 사용하지 않는 함수라고 한다.
취약한 점으로는 이 함수를 이용하여 변수 선언을 하면, 내부의 변수를 덮어버릴 수 있다고 한다.

<Challenge 24의 소스 코드> extract 함수를 좀 더 이해하기 위해 아래의 사진을 보면서 문제를 진행하자.
COOKIE에 대해 extract를 하고 있는데, 내부의 변수를 덮어버릴 수 있다고 했다.
COOKIE에서 받아오는 변수에 대해 ip가 REMOTE_ADDR 값을 가진다.
그래서 COOKIE에 REMOTE_ADDR이라는 이름의 쿠키를 만들고, 값을 넣으면 ip에 그 값이 들어가게 된다.
아래 사진에서 REMOTE_ADDR에 127.0.0.1의 값을 넣으면 화면에 client ip가 다르게 출력된 것을 볼 수 있다.

<ip 값 조작> 이것을 이용해 str_replace 함수가 적용되더라도 ip에 127.0.0.1을 입력할 수 있도록 값을 바꿔주면 된다.
REMOTE_ADDR이 '112277...00...00...1'의 값을 가지도록 해 ip를 조작해주면 문제가 해결된다.

<str_replace 우회> 
<Challenge 24 문제 완료> 반응형'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 32 (0) 2023.04.09 [Webhacking.kr] Challenge 38 (0) 2023.04.09 [Webhacking.kr] Challenge 18 (0) 2023.04.09 [Webhacking.kr] Challenge 17 (0) 2023.04.09 [Webhacking.kr] Challenge 14 (0) 2023.04.09