60번 문제는 다음과 같은 문구로 환영(?)해준다.
우선 코드를 먼저 분석해보도록 하자.
코드를 보았을 때, 세션 ID(PHPSESSID)에 숫자가 아닌 다른 문자가 포함되어 있으면 Access Denied를 출력하며 코드를 탈출한다는 것을 알 수 있다.
위와 같은 사실을 알고난 뒤 우리의 세션 ID를 보면 알파벳과 숫자가 섞여있는 것을 볼 수 있다.
그럼 조건을 맞춰주기 위해 저 세션 ID를 모두 지우고 아무 숫자로 바꿔주고 다시 로그인하여 활성화시켜주자.
이렇게 숫자로만 이루어지도록 만들어주면 비로소 제대로 반겨준다.
auth를 해주기 위해 주소에 ?mode=auth를 넣어주면 1초동안 sleep상태에 있다가 로드됩니다.
하지만 아무런 값도 나오지 않고 Auth~만 나오게 됩니다.
코드를 확인해보면 접속한 사용자의 IP($_SERVER['REMOTE_ADDR'])가 127.0.0.1이 아니면 sleep된 1초 안에 파일을 지워버린다는것을 확인할 수 있습니다.
그럼 여기서 우리는 1초안에 플래그를 확인해야겠죠?
저는 이 문제를 해결하기 위해 크롬의 시크릿모드를 활용하였습니다.
일반 모드와 시크릿모드를 동시에 해당 문제에 들어가고,
동시에 새로고침하여 하나가 로드하고 sleep될 동안에 다른 하나가 플래그를 가져오는거죠.
위같은 방식으로 시도했더니 문제가 풀렸습니다 :)
'보안공부 > Webhacking.kr 풀이' 카테고리의 다른 글
Webhacking.kr 36번 문제 풀이 (0) | 2019.09.17 |
---|---|
Webhacking.kr 8번 문제 풀이 (0) | 2019.09.17 |
Webhacking.kr 48번 문제 풀이 (0) | 2019.09.14 |
webhacking.kr 44번 문제 풀이 (0) | 2019.09.13 |
webhacking.kr 11번 문제 풀이 (0) | 2019.06.03 |