일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OSI 7계층
- C 언어
- CISCO #TALOS
- S시리즈
- 한국 진출
- RegEnumKeyA
- Kotlin
- 새로운 언어
- 이미지 화질 개선
- 프로그래밍
- LDAP
- Win32 apps
- 최신 버전
- 딥 러닝
- 기초 C
- 해설
- FTZ
- Bionic Beaver
- hackerschool
- Win32 #API
- 풀이
- RegEnumKeyExA
- EAPHost
- 18.04
- 컴포넌트
- Python
- C언어
- GDI+
- Challenge
- 사진 화질 개선
- Today
- Total
하나 하나 알아가는 프로그래밍
Suninatas WEB Level1 본문
보안 분야별 문제를 제공하는 사이트인 Suninatas WEB 1번 문제입니다.
WEB을 해봤던 분들이라면 문제 유형이 익숙하시고 난이도가 쉽기 때문에 바로 해결이 가능한 문제일 수 있겠지만, 저는 프론트 / 웹 쪽 관련 지식이 거의 전무한 상태나 다름이 없어 문제를 차분히 보면서 적절한(?) 구글 검색을 겸해서 문제를 해결했습니다.
일단 처음에 저는 웨일 브라우저를 사용하고 있어, F12를 눌러 개발자 모드에 들어갔습니다. 혹시나 문제의 힌트가 있지 않을까 하는 생각에 페이지 코드를 뒤져 보았지만 딱히 도움이 될 만한 정보는 존재하지 않았습니다.
그 다음에는 당연하겠지만, 화면에 떠있는 코드를 살펴보았습니다. 사이트 링크가 마지막에 asp로 끝나는 것을 보아 검색해보니 MS에서 개발한 서버 측 스크립트 엔진임을 알 수 있었습니다.
대충 일반적인 언어들의 구조와 거의 흡사한 듯하여 마지막 if 부분을 살펴보니 결과에 “admin”이 입력되어진다면 pw가 나온다는 것을 알 수 있었습니다.
다시 코드를 위에서부터 차분히 내려오면서 보면 입력된 문자열이 “” 즉 빈칸이 아니라면 하위 코드들을 수행한다는 것을 알 수 있었습니다. 그럼 이번엔 if 아래 하위 코드들을 자세히 보도록 하겠습니다.
처음 문자열로 result 값이 들어오면 그 문자열 값을 Replace 함수를 통해 “a”를 “aad”로 바꿉니다. 그 다음 다시 Replace가 된 result 값에서 i를 in으로 변경합니다.
그리고 result1에 Mid 함수를 통하여 2번째 자리부터 2칸인 4번째 자리까지의 글자를 담습니다. 마찬가지로 result2에도 Mid 함수를 통하여 4번째 자리부터 2칸인 6번째 자리까지의 글자를 담습니다.
마지막으로 and 연산을 진행한 값을 result의 값으로 넣고 asp에서 문자열을 화면에 출력시키기 위한 구문인 Response.write를 통해 result 값을 화면에 출력합니다.
코드 분석을 토대로 하였을 때 처음 입력하는 문자열은 ami가 되게 됩니다.
ami를 입력칸에 넣으면,
위와 같은 알림 메시지가 뜨면서 문제가 해결되게 됩니다.
'정보보안' 카테고리의 다른 글
AAA (computer security) (0) | 2020.11.02 |
---|---|
키 싸기 (Key-wrap) 알고리즘 (0) | 2020.09.28 |
해커스쿨 FTZ 3번 Write Up (0) | 2019.10.14 |
해커스쿨 FTZ 2번 Write Up (0) | 2019.10.13 |
(해킹캠프 2019) 김범수님 'OS 개발 공부를 왜 해야 할까?' 강의 내용 요약 (0) | 2019.08.26 |