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

2025. 11. 12. 20:19·CTF/써니나타스

출처: 써니나타스 Web-5 문제

 

 

입력하는 칸이 있다 숫자, 문자 다 넣어봤다 (아무런 반응이 없다.)

 

소스코드를 보았다.

 

 

여기 누가 봐도 수상한 소스코드가 하나 있다. 먼가 다소 복잡해 보였다. 

GPT 쳇으로 이 코드가 먼지 물어보았다 답변글은 자바스크립트로 난독화된 코드라고 한다 그리고 소스코드 아래 Hint가 있었다.

 

 

이 힌트에 있는 값으로 저 난독화된 스크립트를 깨라는 것인가???

 

당혹스럽지만 우리는 AI기능이 있다 GPT한테 저 난독화를 깰 수 있는 자바스크립트 코드를 만들어 달라고 했다 

소스는 아래와 같다.

 

function q(n) {
  var l = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'];
  var h = '';
  var j = true;
  for (var i = 32; i > 0;) {
    i -= 4;
    var k = (n >> i) & 0xf;
    if (!j || k != 0) {
      j = false;
      h += l[k];
    }
  }
  return h == '' ? '0' : h;
}

console.log(q());

 

위의 소스코드를 분석하면 앞에 var l = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']; 값은 16 진수의 각 자리를 문자로 배열에

담은 것이다.

Ex) 1[10] → "a"

 

<반복문>

for (var i = 32; i > 0;) {
  i -= 4;
  var k = (n >> i) & 0xf;
}

 

i를 32 부터 시작해서 -4씩 감소시킵니다. 

0~32비트를 4비트 단위로 순차적으로 자릅니다.

(n >> i): n을 오른쪽으로 i비트 시프트.

& 0xf: 하위 4비트만 추출한다

 

<조건식>

if (!j || k != 0) {
  j = false;
  h += l[k];
}

 

j는 처음에 true

처음 만나는 0들은 무시하고 0이 아닌 첫자리에서부터 h를 추가

 

return h == '' ? '0' : h;

 

모든 비트가 0이라면 '0' 반환 아니면 h(16진수 문자열) 반환한다

 

위와 같은 소스코드를 개발자도구 Console에 넣고  Hint에 있는 값을 넣어주면?

 

 

 

아래와 같은 값이 나오고 이 값을 입력칸에 넣어주면

 

 

flag값을 얻을 수 있었다.

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

써니나타스[Web-7 문제풀이]  (0) 2025.11.17
써니나타스 [Web-6 문제풀이]  (0) 2025.11.14
써니나타스 [Web-4 문제풀이/Burp Suite]  (0) 2025.11.11
써니나타스 [Web-4 문제풀이]  (0) 2025.11.11
써니나타스 [Web-3 문제풀이]  (0) 2025.11.10
'CTF/써니나타스' 카테고리의 다른 글
  • 써니나타스[Web-7 문제풀이]
  • 써니나타스 [Web-6 문제풀이]
  • 써니나타스 [Web-4 문제풀이/Burp Suite]
  • 써니나타스 [Web-4 문제풀이]
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
  • 인기 글

  • 태그

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

티스토리툴바