CTF 문제의 목표
본 CTF 문제는 인증인가 취약점을 활용해 인증인가 과정을 우회하는 공격을 실습해 보기 위한 문제입니다.
실습 환경
본 문제는 아래와 같은 환경과 도구를 통해 테스트하였습니다.
- Windows 10
- Burp Suite
풀이 단계
- 웹페이지 접근 및 분석
- 권한 체크 작동 원리 리버싱
- goMenu 함수 위치 파악
- goMenu 함수 분석 - 난독화 파악(실패)
- user_auth_check 함수를 분석, 단서 획득
- intercept/response 변조로 권한 획득(클라이언트 측)
상세한 문제풀이
1) 이전 문제들과 마찬가지로 발사 버튼이 나오며 클릭할 시에 권한이 없다고 합니다. 이번에도 작동원리를 분석할 필요가 있습니다.
2-1) goMenu함수를 호출하고 9999를 인자로 보냅니다.
2-2) goMenu 함수에 접근하면 난독화가 되어있습니다.
3) 난독화를 풀기 위해 인터넷 상의 다양한 툴을 살펴보았습니다. 하지만 난독화가 잘 해제되지 않는 것을 볼 수 있었습니다. 따라서 정적분석을 통해 우선 코드에서 어떤 부분을 볼 수 있는지 살펴보겠습니다. 먼저, user_auth_check가 true라면 뒤에가 어떤 내용이든지 간에 else가 실행되지 않고 if문을 쭉 지나가면서 실행이 될 것입니다. 따라서 가장 중요한 것은 user_auth_check의 함수가 true를 return 하도록 하면 되는 것입니다. 다행히도 user_auth_check의 함수 부분은 난독화를 하지도 않았으며 구성 자체도 매우 단순합니다. needLevel과 userLevel의 값이 같으면 됩니다. needLevel과 userLevel은 둘다 인자로 받습니다. 그렇다면 힌트는 다시 goMenu의 코드를 살펴보면 됩니다. userLevel이라는 인자를 받아서 비교하는 것인데, 우리의 웹페이지를 보면 해당 부분이 비어있습니다. 그래서 작동하지 않았던 것입니다. 빈 부분에 'admin'값을 넣어주면 통과할 수 있습니다.
4) 인터셉트로 페이지를 새로고침하고 response의 값을 받아서 goMenu의 두 번째 인자에 'admin'을 넣어줬습니다. 그리고 나타난 페이지에서 'fire' 버튼을 누르면 플래그가 나타납니다.
'🚩CTF Write up' 카테고리의 다른 글
authorization 5 - SegFault Web Hacking CTF Write up (0) | 2024.02.24 |
---|---|
authorization 4 - SegFault Web Hacking CTF Write up (0) | 2024.02.24 |
authorization 2 - SegFault Web Hacking CTF Write up (0) | 2024.02.24 |
authorization 1 - SegFault Web Hacking CTF Write up (0) | 2024.02.24 |
Get Flag File 2 - SegFault Web Hacking CTF Write up (1) | 2024.02.24 |