chipkkang9's story

[Suninatas] 1번 문제풀이 본문

CTF/Web

[Suninatas] 1번 문제풀이

chipkkang 2021. 10. 28. 18:49

SuniNatas 1번

 


 

SuniNatas 문제 1번 내용은 다음과 같다.

SuniNatas 1번 문제

 

첫 번째 문제이니만큼 어려운 문제같진 않다.

조건문을 읽어보니 result에 admin이라는 문자열이 입력되면 pw가 출력되는 형태인 듯하다.

 

다만, 위의 코드가 어떤 프로그램에서 실행되는 코드인지는 알 수 없었기 때문에,

개발자 툴을 이용했다.

 

개발자 툴로 페이지를 열어보았다.

 

해당 웹 페이지에 Sources 화면을 들어가 본 결과,

.asp의 확장자로 되어있는 페이지임을 알 수 있었다.

 


ASP란?

액티브 서버 페이지(Active Server Pages)의 줄임말로,

마이크로소프트사에서 동적으로 웹 페이지들을 생성하기 위해 개발한 서버 측 스크립트 엔진이다.

 

자세한 내용은 스핀오프로 다뤄보겠다.


 

우선 asp의 확장자로 이루어진 페이지임을 알게 되었으니,

해당 페이지에 적혀있는 Replace, Mid 함수와 & 연산자를 검색해보았다.

 

Replace함수는 '문자열 치환' 함수로써,

Replace(변수, 변경대상문자열, 변경하려는 문자열)

의 형식으로 사용하면 된다.

 

따라서,

result = Replace(str,"a","aad")라는 코드의 의미는

result에 이전에 입력받은 str속에 있는 a를 aad로 치환하라는 의미이다.

 

 

 

Mid함수는 '문자열 자르기' 함수로써,

Mid(변수, 자르기 시작할 위치, 개수)

의 형식으로 사용하면 된다.

이 밖에도, Left, Right 함수도 존재하는데 아마 사용 예를 보면 이해될 것이다.

 

예를 들어, 미리 입력받은 문자열 str이 존재할 때

Left(str,3)의 의미는 str의 왼쪽부터 3개의 문자열을 의미하고,

Mid(str, 4, 6)의 의미는 str의 4번째 위치부터 6개의 문자열을 의미하며,

Right(str, 4)의 의미는 str의 오른쪽부터 4개의 문자열을 의미한다.

 

 

 

마지막 &연산자는 문자열을 붙이는 연산자로써,

str1에 Hello, str2의 World!가 들어가 있다면,

str = str1&str2라는 코드로 작성이 되어있다 하면

str에는 HelloWorld! 문자열이 저장되게 된다.

 

 

코드가 위에서 아래로 흘러가면서 해독되므로,

우리는 admin 문자열을 만들어주기 위해 반대로 거슬러 올라가면서 역추적을 해주면

 

정답은 "ami"가 된다.

 

 

 

출처


https://h5bak.tistory.com/86

 

ASP 문자열 치환(Replace)

asp replace 함수입니다. 변수에 저장된 값을 중 특정 문자를 원하는 값으로 변경하기 위한 함수입니다. 따옴표 처리(SQL Injection 방어 소스) 시 많이 쓰입니다. ex) Replace(tmp, "'", "") 사용법은 아래와

h5bak.tistory.com

https://mrb18.tistory.com/entry/ASP-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9E%90%EB%A5%B4%EA%B8%B0-Mid-Left-Right

 

[ASP] 문자열 자르기 - Mid, Left, Right

str = "abcdefghijk" response.write LEFT(str, 3) & " " // 왼쪽에서 3개의 문자열을 가져온다 response.write MID(str, 5, 2) & " "  // 5번째위치부터 2개의 문자열을 가져온다. response.write RIGHT(str, 4..

mrb18.tistory.com

http://egloos.zum.com/paulownia/v/3869122

 

[ASP] ASP 기본문법 (비교연산자와 논리연산자)

연산자 : VB 스크립트의 연산자는 총 네 개의 그룹으로 산술연산자, 연결연산자, 비교연산자, 논리연산자등을 제공하고 있다. 1) 산술연산자 산술연산은 덧셈, 뺄셈 등의 사칙연산, 지수연산 그리

egloos.zum.com

https://ko.wikipedia.org/wiki/%EC%95%A1%ED%8B%B0%EB%B8%8C_%EC%84%9C%EB%B2%84_%ED%8E%98%EC%9D%B4%EC%A7%80

 

액티브 서버 페이지 - 위키백과, 우리 모두의 백과사전

액티브 서버 페이지(Active Server Pages, 줄여서 ASP, 과거 명칭: 클래식 ASP/Classic ASP, ASP 클래식/ASP Classic)는 마이크로소프트사에서 동적으로 웹 페이지들을 생성하기 위해 개발한 서버 측 스크립트 엔

ko.wikipedia.org

 

Comments