우선 1번 문제는 asp로 작성된 코드이다.
asp와 jsp 모두 <% ... %>를 사용하기 때문에 이 부분으로 구분하는 건 아니고 str = Reqeust("str") 이 부분이 asp가 사용하는 방식이다. 보통 jsp 같은 경우 str = request.getParameter("str"); 이런 식으로 파라미터를 사용한다. 그리고 사실 url에 .asp라고 되어있다.
3줄
> str = Request("str") 요청 str이라는 매개변수를 받음
5줄 : If not str = "" Then
15줄 : End if
> 문자열이 비어 있을 경우 종료
6줄 result = Replace(str, "a", "aad")
> a가 입력되면 aad로 바꾸고 result 저장
7줄 result = Replace(result, "i", "in")
> i가 입력되면 in으로 바꾸고 result 저장
8줄 result1 = Mid(result,2,2)
> result의 2번째 값부터 2개의 값 result에 저장
9줄 result2 = Mid(result,4,6)
> result의 4번째 값부터 6개의 값 result에 저장
10줄 result = result1 & result2
> result1, result2를 합침
11줄 Response.write result
> result 값이 문자열 출력
12줄 if result = "admin" Then
13줄 pw = "???????"
14줄 End if
> result 값이 admin이면 pw 확인 가능
풀이
a를 넣으면 aad가 되고 i를 넣으면 in이 되고 이 ai를 넣으면 aadin이다. admin이 나올려면 aadin에서 m이 추가 되어야 된다는 걸 알 수 있다. 또 ai를 넣었을 경우 result1에서 aadin의 2,2인 ad를 result2에서 aadin의 4,6 in을 추출하여 조합해보면 adin 인 걸 알 수 있고, ami를 넣으면 admin이 나오는 걸 알 수 있다.
참고로 Mid 함수는 인덱싱이 1부터 시작한다. 배열처럼 0으로 시작하는 것이 아니다.
ami 입력 시 ami 변화 순서
ami > aadmi > aadmin > result1 = ad > result2 = min > result1 & result2 = admin
참조
https://m.blog.naver.com/is_king/220672331654
[Web Hacking] SuNiNaTaS Challenge 1 풀이, ASP
SuNiNaTaS 홈페이지 : http://suninatas.com/ - 문제 - 이 소스는 ASP 언...
blog.naver.com
'정보보안 > SuNiNaTaS' 카테고리의 다른 글
[Web Hacking] SuNiNaTaS Challenge 6번 (Level6) (0) | 2024.08.26 |
---|---|
[Web Hacking] SuNiNaTaS Challenge 5번 (Level5) (0) | 2024.08.09 |
[Web Hacking] SuNiNaTaS Challenge 4번 (Level4) (0) | 2024.08.09 |
[Web Hacking] SuNiNaTas Challenge 3번 (Level3) (0) | 2024.08.08 |
[Web Hacking] SuNiNaTas Challenge 2번 (Level2) (0) | 2024.08.08 |