티스토리 뷰

1. 24번 메인화면

- 겉만 보기에는 현재 사이트에 접속해있는 ip와 agent를 가져오네요.

2. index.phps로 들어가보면 소스가 나옵니다.

- 첫 번째 소스를 보시면 extract는 배열속의 키의 값들을 변수화 시키는데, 예를 들어서 

ex) extract($_GET); -> $_GET['a'] == $a 같이 배열속의 a를 변수화 시킵니다.

$_SERVER와 $_COOKIE 배열속의 무언가를 변수화 시키겠죠?

밑에 $REMOTE_ADDR는 클라이언트의 IP주소를 가져오고, $HTTP_USER_AGENT는 클라이언트의 접속환경 정보를 가져오는 PHP의 환경변수에요. 

여기서 중요한 것은 $_SERVER 보다 $_COOKIE가 나중에 처리되었기 때문 $REMOTE_ADDR, $HTTP_USER_AGENT 같은 쿠키를 조작할 수가 있습니다. 많이 쓰이니까 찾아서 공부하시는 것도 좋을 겁니다.

if문을 보시면 만약 쿠키 중에서 이름이 "REMOTE_ADDR"인 값이 있으면, str_replace함수로 인해서 값이 변경됩니다.

그 밑의 if문을 보시면 $ip 값이 127.0.0.1이되면 성공이라고 뜨는데, (12/7./0.)을 공백으로 바꿔버리니 127.0.0.1로 ip를 쿠키변조해도 남는 것은 '1'이 될 것입니다. 전체적인 소스 설명은 이렇구요. 쿠키 변조를 해보겠습니다.


3. 저 같은 경우는 크롬을 쓰다보니 EditThisCookie 확장프로그램을 사용해요. 편리하기도 하구요.

EditThisCookie를 열고서 REMOTE_ADDR 쿠키값을 생성해줍니다.

4. 값을 SUSPECT로 바꿨더니 client ip가 SUSPECT로 바뀌는 것을 볼 수가 있습니다. 쿠키 변조가 통한다는 것을 의미하는데, 이 것을 응용해서 client ip를 루프백 주소(127.0.0.1)로 변경을 해보겠습니다.


5. 예상대로 str_replace로 필터링을 당해서 1만 남은 것을 볼 수가 있습니다.

 


6. (12/7./0.)가 필터 된다는 것을 유의하고 127.0.0.1에 우회할 수 있는 숫자를 추가해보면 밑의 그림과 같이 빨간 색 부분이 필터링 되고 남은 검정 색 부분 127.0.0.1이 남는 것을 볼 수가 있습니다.

 

7. 우회 값을 만들었으니, REMOTE_ADDR 쿠키 값에 넣어 보겠습니다.


8. client ip가 127.0.0.1이 된 것을 볼 수가 있습니다. Clear!







'Wargame > webhacking.kr' 카테고리의 다른 글

Webhacking.kr 42번 문제 풀이  (0) 2015.07.03
Webhacking.kr 5번 문제 풀이  (2) 2015.07.03
Webhacking.kr 38번 문제 풀이  (0) 2015.06.30
Webhacking.kr 26번 문제 풀이  (0) 2015.06.30
Webhacking.kr 58번 문제 풀이  (0) 2015.06.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함