-
0601 써니나타스 : Level 12020/Write-Ups 2020. 5. 31. 15:54
S.W.F.S 디지털 포렌식 소학회> 써니스타: Level 1문제(목요일팀 이수현)
우선 이 소스에서 사용한 언어는 ASP언어이다. 그럼 ASP언어가 무엇일까?
ASP언어는 Active Server Pages의 약자로 웹 프로그래밍 언어라고 한다.
ASP언어는 여러가지 언어를 지원하는데 기본적으로 쓰이는 언어는 VBScript이지만 다른 언어도 불러서 사용할 수 있다. 이러한 점에서 언어보다는 기술에 가깝다는 의견이 있다.
ASP에 대해서 검색을 하고 찾아보던 중 ASP.NET을 연관 검색으로 많이 보았는데,
이는 ASP을 발전시키고 단점을 보완한 결과물이라고 한다.
str = Request ("str")
- 변수인 str에 입력칸에 입력한 문자열이 저장
If not str = "" then
End if
- str에 공백이 들어가면 프로그램을 종료하고 그렇지 않으면 실행하라는 의미
01> result = Replace(str, "a", "aad")
02> result = Replace(result, "i", "in")
- Replace(변수명, 바뀔 문자열, 바꿀 문자열)
처음에 입력한 변수 str의 값에서 "a"문자열이 있으면 "aad"로 바꾸고 result에 저장하라는 의미
01>에서 저장된 result에서 "i"문자열이 있다면 "in"으로 바꾸고 result에 저장하라는 의미
01> result1 = Mid(result,2,2)
02> result2 = Mid(result,4,6)- Mid(변수명, 시작할 값, 길이)
변수 result의 2번째 값부터 2개의 값을 result1에 저장
02>도 동일
result = result1 & result2
result1와 result2 의 합을 result에 저장
Response.write result
result의 값의 문자열을 화면에 출력
If result = "admin" Then
pw = "????????"
End if변수 result의 값이 "admin"이면 pw를 알아내는 것이 가능
"a"가 "aad"로 바뀌는 것을 보면 a가 반드시 입력되어야하고
"i"가 "in"으로 바뀌는 것을 보면 i도 반드시 처음에 입력되어야 한다.
마지막 변수의 값이 admin이여야 하는데 m은 중간에 바뀌는 과정이 소스에 없으니
시작부터 입력해주어야한다.
그러므로 결과적으로 꼭 입력해야하는 문자열은
"ami"
"ami"를 입력한다고 가정하고 다시 순서대로 처리하면
str = Request ("str")
str = "ami"
01> result = Replace(str, "a", "aad")
result = "aadmi"
02> result = Replace(result, "i", "in")
result = "aadmin"
01> result1 = Mid(result,2,2)
result1 = "ad"
02> result2 = Mid(result,4,6)result = "min"
result = result1 & result2
result1 = "ad" + result2 = "min"
result = "admin"
Response.write result
If result = "admin" Then
pw = "????????"
End if결과>
Authkey : k09rsogjorejv934u592oi
'2020 > Write-Ups' 카테고리의 다른 글
0601 [ctf-d] 우리는 이 파일에 플래그를.... (0) 2020.06.01 0601 [DigitalForensic with CTF] GrrCON 2015 #1 (0) 2020.06.01 0601 SuNiNaTas Challenges 2번 (0) 2020.06.01 0601 [ctf-d] 제 친구의 개가 바다에서… (100) (0) 2020.05.31 0601 suninatas Forensic 18번 (0) 2020.05.31