view-source 를 확인해보자.
extract()
배열 속의 키 값들을 변수화 시키는 함수
$_SERVER 와 $_COOKIE 값을 변수화
$REMOTE_ADDR
클라이언트의 IP를 가져오는 PHP의 환경변수
$REMOTE_ADDR 값을 $ip 에 저장
$HTTP_USER_AGENT
클라이언트의 접속 환경 정보를 가져오는 PHP의 환경변수
$HTTP_USER_AGENT 값을 $agent 에 저장
htmlspecialchars()
특수 문자를 HTML 엔티티로 변환해주는 함수. 특정 문자는 HTML에서 특별한 의미가 있으며, 의미를 보존하려면 HTML 엔티티로 표시해야 함.
ex) & -> & / " -> " / ' -> ' / < -> < / > -> >
$REMOTE_ADDR 값이 존재한다면,
$REMOTE_ADDR 값에서 특수 문자를 HTML 엔티티로 변환해서 ip에 저장,
ip 값에서 .. 을 . 으로 치환,
ip 값에서 12 를 공백으로 치환,
ip 값에서 7. 을 공백으로 치환,
ip 값에서 0. 을 공백으로 치환
ip 가 127.0.0.1 과 같다면 문제가 해결되는 것 같다.
우선 개발자 도구로 REMOTE_ADDR 이라는 쿠키를 추가, 127.0.0.1 을 값으로 저장해주었다.
그리고 새로고침을 하면,
str_replace() 로 인해 client ip 가 127.0.0.1 이 아닌 (12)(7.)(0.)(0.)1 이 되어 문제가 해결되지 않는다.
따라서 str_replace() 실행 후의 결과가 127.0.0.1 인 값을 생각해보면,
1(12)27(7.)(.. -> .)0(0.)(.. -> .)0(0.)(.. -> .)1 즉, 112277...00...00...1 을 쿠키 값으로 저장하면 될 것 같다.
새로고침을 하면,
해결!
'Web > wargame' 카테고리의 다른 글
[Webhacking.kr] old-05 (0) | 2022.01.16 |
---|---|
[Webhacking.kr] old-25 (0) | 2021.11.28 |
[Webhacking.kr] old-01 (0) | 2021.11.21 |
[Webhacking.kr] old-12 (0) | 2021.11.11 |
[HackCTF] Login (0) | 2021.11.09 |