728x90
asp 소스 코드가 있다.
Reuqeust 객체를 통해 str을 받아오는데 str에 아무 것도 없다면 Then 다음 코드를 실행한다.
replace(): a는 aad로, i는 in으로 바꾼다.
mid(): 2번째부터 2글자를 떼어오고 4번째부터 6글자를 떼어와 그 둘을 붙여 result를 만든다.
그렇게 만든 result의 값이 admin이면 문제가 풀릴 것 같다. 저 일련의 과정을 거쳐 admin이 될 수 있도록 초기값을 찾으면 된다.
먼저, replace() 함수에는 a를 aad로, i를 in으로 바꾸기에 a와 i는 필수적으로 포함할 것이다.
만약 초기값이 "ai"라면, "ai" - "aadi" - "aadin"의 순서로 replace() 를 거친다. 이후 mid()를 거치면 ad와 in이 합쳐진, "adin"이 result가 된다.
하지만 우리는 "admin"으로 만들어야 하므로 "ai" 한 가운데에 "m"을 삽입하자. m은 문자 교체나, 문자열 자르기 함수에 전혀 영향을 받지 않으므로 다른 파급 효과는 생각하지 않아도 된다.
초기값이 "ami" 라면 다음 과정을 거쳐 result에 "admin" 값이 들어갈 것이다.
ami - aadmi - aadmin - ad + min - admin
728x90
'Wargame > SuNiNaTaS' 카테고리의 다른 글
SuNiNaTaS 5 (WEB 301pt) (0) | 2020.03.29 |
---|---|
SuNiNaTaS 4 (WEB 122pt) (2) | 2020.03.22 |
SuNiNaTaS 18 (FORENSICS 153pt) (2) | 2020.03.22 |
SuNiNaTaS 3 (WEB 133) (0) | 2020.03.22 |
SuNiNaTaS 2 (WEB 110) (0) | 2020.03.22 |