
<소스코드 분석>
str = Request("str")
request가 str이라는 피라미터 값을 가져옴. GET 방식으로 데이터를 불러옴
Ex) example.com?str=hello 라면 str은 hello라는 값을 반환한다
If not str = "" then
조건문 - str 빈 문자열 "" 입력 값이 비어 있지 않으면 변환을 시작
result = Replace(str,"a","aad") : str에서 모든 "a"를 "aad"로 바꾼다는 뜻 여기서 Replace는 문자를 다른 것으로 대체함.
Ex) str = "apple"이면 result 결괏값으로 a-> add 이니까 addpple로 변환
result = Replace(str, "i" , "in:") : 이거 또한 i가 있으면 in으로 문자를 치환한다는 뜻
result1 = Mid(result, 2, 2)
문자열에서 두 번째 문자부터 2개의 문자 추출
Ex) aadpple -> ad가 추출한다는 뜻
result2 = Mid(result, 4, 6)
문자열에서 네 번째 문자부터 6개 추출
Ex) aadpple -> pple를 반환
result = result1 & result2
result 1 결괏값과 2의 문자열을 결합한다는 뜻
Ex) ad + pple => adpple이 됩니다
Response.write result
변환된 값을 웹페이지에 출력함( 클라이언트 나에게 결괏값을 보여줌)
If result = "admin" Then
위에 반환된 결괏값이 admin과 일치하는지 검사함
Ex) result = 'admin ' 이면
pw ="?????"
위에 값이 보이게 되고
End if로 조건문을 종결한다
[풀이법]
우선 풀이를 위해 개발자도구에 console에 쓸 수 있는 브루스포스 자동화튤을 AI에게 만들어달라고 요청하였다.
요즘은 AI가 인간보다 더 빠르고 정확하게 코드를 만들어줘서 편하게 쓸 수 있는 거 같다.
// 변환 함수
function transformString(inputStr) {
// 'a' -> 'aad', 'i' -> 'in' 변환
let result = inputStr.replace(/a/g, 'aad');
result = result.replace(/i/g, 'in');
// 결과에서 특정 위치의 문자 추출
let result1 = result.slice(1, 3); // 두 번째와 세 번째 문자
let result2 = result.slice(3, 9); // 네 번째부터 아홉 번째까지
// 두 결과를 합침
result = result1 + result2;
return result;
}
// 브루트포스 테스트를 위한 문자 집합
const charset = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
// 가능한 문자열 길이 범위 설정 (1부터 5까지)
let found = false;
for (let length = 1; length <= 5; length++) {
if (found) break;
// 가능한 모든 문자 조합을 생성
(function generateCombinations(prefix) {
if (prefix.length === length) {
// 변환된 결과 확인
let result = transformString(prefix);
if (result === "admin") {
console.log(`Matching input found: ${prefix}`);
found = true;
}
return;
}
for (let char of charset) {
generateCombinations(prefix + char);
}
})('');
}

해당 ami이라는 결괏값을 넣었더니

해당 flag를 얻고 문제를 풀 수 있었다.
'CTF > 써니나타스' 카테고리의 다른 글
| 써니나타스 [Web-5 문제풀이] (0) | 2025.11.12 |
|---|---|
| 써니나타스 [Web-4 문제풀이/Burp Suite] (0) | 2025.11.11 |
| 써니나타스 [Web-4 문제풀이] (0) | 2025.11.11 |
| 써니나타스 [Web-3 문제풀이] (0) | 2025.11.10 |
| 써니나타스 [Web-2 문제풀이] (0) | 2025.11.09 |
