[webhacking.kr] old-3 문제

2026. 2. 5. 16:51·워게임/webhacking.kr

1. 문제 정보

  • 문제 번호 : old -3
  • 문제 점수 : 30점

2. 문제 분석

문제에 들어가면 nonogram이 나오고 nonogram을 처음 풀어봐서 위키 피디아를 참고해 룰을 보았다.

https://ko.wikipedia.org/wiki/%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8#:~:text=%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8(%EC%98%81%EC%96%B4%3A%20Nonogram%20%2C,%EB%84%A4%EB%AA%A8%EB%84%A4%EB%AA%A8%20%EB%A1%9C%EC%A7%81%EC%9D%B4%EB%9D%BC%EA%B3%A0%20%EB%B6%88%EB%A6%B0%EB%8B%A4.

 

 

 

노노그램을 풀면 아래 그림처럼 나온다.

클리어하면 log에 name을 입력하는 창이 나온다.

그리고 로그 창이 나온다.

처음 소스 코드를 보면 


3. 풀이

처음 nonogram을 풀 때 클릭을 하면 kk_num 값이 1로 바뀌고 검정으로 바뀐다 그리고 마지막에 solved버튼을 누르면 eval과 함께 문제가 get요청을 보낸다.

<script>
function go(){
  var answer="";
  for(i=1;i<=25;i++) { answer=answer+eval("kk._"+i+".value"); }
  kk._answer.value=answer;
  kk.submit();
}
</script>

 

 

eval 함수는 인자로 전달된 문자열을 실제 코드로 해석하여 실행한다. 이 함수는 외부에서 조작된 입력값이 제대로 검증되지 않은 채 전달될 경우 시스템 전체를 제어할 수 있는 심각한 보안 취약점이다. 이를 흔히 코드 주입(Code Injection) 취약점이기 때문에 먼저 눈여겨보았다.

 

하지만 eval에 사용자가 제공한 값을 넣는 것이 아니라 eval로 값을 불러오므로 이 문제의 취약점이 아니었다. 만약 공격자가 HTML 요소의 이름(name 속성)을 임의로 조작할 수 있는 환경이라면 eval을 통한 공격이 가능하다, 하지만 이 문제의 경우 클라이언트 측 스크립트 내부에서 루프를 돌며 값을 취합하는 구조이므로 직접적인 코드 주입이 어렵다.

 

 

그리고 다음으로 시도해 본 것은 xss로 로그에 찍힌 곳에 stored xss가 가능할 것 같았다.

<input type="hidden" name="answer" value="1010100000011100101011111">

그래서 name과 value에 각각 <script>alert('1')</script>을 입력해 보았다. 하지만 answer에 입력했을 때 쿼리 에러가 떴다.

이건 데이터베이스에서 에러이므로 answer에 'or 1=1 -- 을 넣어서 sqli를 해보니 문제가 풀렸다.


4. 요약

  • 웹 페이지의 노노그램 퍼즐을 해결하면 사용자의 이름과 퍼즐의 정답(answer) 값이 서버로 전송되어 데이터베이스에 기록된다.
  • 정답 전송 과정에서 스크립트 삽입을 시도했으나 데이터베이스 쿼리 에러가 발생했으며, 이는 입력값이 SQL 구문에 직접 영향을 미치고 있음을 의미한다.
  • answer 파라미터에 참(True)을 유도하는 SQL 구문을 삽입하여 인증 및 검증 로직을 우회하는 SQL Injection 공격으로 문제를 해결했다.

 

 

 

 

'워게임 > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-5 문제  (0) 2026.02.05
[webhacking.kr] old-7문제  (0) 2026.02.03
[webhacking.kr] old-11 문제  (0) 2026.02.02
[webhacking.kr] old-4 문제  (0) 2026.02.02
[webhacking.kr] old-56 문제  (0) 2026.02.02
'워게임/webhacking.kr' 카테고리의 다른 글
  • [webhacking.kr] old-5 문제
  • [webhacking.kr] old-7문제
  • [webhacking.kr] old-11 문제
  • [webhacking.kr] old-4 문제
yt_5246
yt_5246
yt5246 님의 블로그 입니다.
  • yt_5246
    yt의 공부 블로그
    yt_5246
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (61)
      • IT (1)
      • Security (11)
        • 시스템해킹 (3)
        • 리버싱 (6)
        • 암호학 (0)
        • tools (2)
      • Book (0)
      • 자격증 (3)
      • 워게임 (46)
        • DVWA (7)
        • WebGoat (4)
        • webhacking.kr (35)
      • 버그바운티 (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
yt_5246
[webhacking.kr] old-3 문제
상단으로

티스토리툴바