요렇게 보입니당..
저 빈칸에 무언가를 입력하면 맨 밑에서 키값을 줄 것으로 보임.
일단 아무거나 입력해봄.
aaaa
이렇게 입력했더니 위에 저렇게 나온당.
이제 코드를 분석해보쟈.
F12를 눌러 살펴보자.
이걸 보니 asp파일이라는 것을 알 수 있다.
* ASP (Active Server Pages)
: 동적으로 서버에서 작동하는 페이지
마이크로소프트 사에서 동적인 웹 페이지 생성을 위해 개발된 스크립트 언어임
ASP의 경우 html 페이지와 달리, 사용자가 어떤 페이지를 요청했을 때 그 페이지를 사용자의 브라우저에게 그냥 보내주지 않는다.
사용자에게 보내주기 이전에
-> 서버 내에서 어떠한 처리를 한 뒤
-> 그 결과를 태그로 만들어
-> html 형식으로 변환한 뒤
-> 만들어진 페이지를 사용자의 브라우저에게 보내준다.
ASP 소스는 일반 클라이언트들이 해킹을 하지 않는 한 절대 볼 수 없다.
***이 문제를 풀기 위해 알아야 하는 함수
- request 함수
: 사용자로부터 정보를 전달받을 때 사용되는 함수
"요청한다"라는 의미의 단어 request -> 서버측에서 "요청한다"라는 의미로 해석할 수 있다.
즉, 사용자가 -> 서버로 보내오는 요청/데이터를 전달받는 역할을 함
- replace 함수
: 변수에 저장된 값 중 특정 문자를 원하는 값으로 변경해 주는 함수
-> 사용 형태
: Replace(변수, " ", " ")
Replace(변수, 변경 대상 문자, 변경하려는 값)
- mid 함수
: 문자열에서 지정한 개수의 문자를 반환해 주는 함수
-> 사용 형태
: Mid("문자열", start, length)
Mid(반환될 문자가 들어 있는 문자식, 문자열에서 반환을 시작하는 문자 위치, 반환할 문자 개수)
length 인수의 문자 > start인수의 문자를 포함한 실제 문자 개수 / length 인수 생략
-> 해당 문자열의 마지막 문자까지 모두 반환
- response.write()
: 출력
c언어의 printf와 비슷하다고 보면 된다.
변수와 문자열을 함께 출력할 경우에는 &을 사용해서 ()에 연결해서 써주면 된다.
[ASP] 문자열 함수 정리
출처 : http://heouk.tistory.com/35 문자열 관련 함수 1. UCASE, LCASE 문자열의 내용을 대문자, 소문자로 변환시켜준다. 2. LEN 문자열의 길이를 반환한다. 3. LEFT, RIGHT, MID 문자열의 좌, 우, 중간에서 지정..
dualist.tistory.com
이걸 한번 읽어보면 도움이 될듯!
암튼 다시 코드 분석으로 돌아와서....
일단 str라는 변수로 내가 입력창에 입력한 값을 받는다.
(아까 위에서 "aaaa"라고 입력한 것처럼, 그렇게 입력한 값을 받는 역할)
그리고 입력한 것이 공백이 아니라면
-> replace, 즉 대체를 통해 입력받은 값을 바꿔서 result 변수에 다시 저장한다.
-> 이러쿵 저러쿵 해서 만들어진 값을 나중에 출력하고
-> 이 값이 "admin"이 되면 pw를 알려준다는 것 같음!
->
result = Replace(str,"a","aad") // a -> aad로 대체
result = Replace(result,"i","in") // i -> in으로 대체
result1 = Mid(result,2,2) // 두번째 문자부터 2개 뽑아냄
result2 = Mid(result,4,6) // 네번째 문자부터 6개 뽑아냄 (물론 문자열 길이랑 고려해보면 6개 아닐수도)
result = result1 & result2 //result 1과 2를 합친다.
그냥 코드 제일 밑에서부터 거꾸로 admin값을 바꿔나가면서 답을 찾으면 될 듯ㅅ!
ad -> result1
min -> result2
이렇게 먼저 시작
aadmin이 result 1과 2로 뽑아내기 전 값
이거를 replace 전으로 돌려보면 ami가 되는 것을 알 수 있다.
성공!
'웹 > SuNiNaTaS' 카테고리의 다른 글
# SuNiNaTaS 8 (0) | 2021.02.16 |
---|---|
# SuNiNaTaS 7 (0) | 2021.02.10 |
CTF_WEEK4_# SuNiNaTaS 5 (0) | 2021.02.08 |
CTF_WEEK3_# SuNiNaTaS 6 (0) | 2021.02.05 |
CTF_WEEK3_# SuNiNaTaS 2 (0) | 2021.02.05 |