정보보안/SuNiNaTaS

[Web Hacking] SuNiNaTas Challenge 1번 (Level1)

록스타★ 2024. 8. 7. 17:17
반응형

그림(1) sunitanas level1

 
우선 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

 
 

반응형