webhacking.kr 4번 문제풀이

2023. 2. 2. 23:47·웹/웹 해킹 문제 풀이

4번 문제의 화면이다. 16진수로 표기된 문자열이 있는 것으로 보아  base, md5, sha 함수로인코딩, 암호화된 것 같다. view source를 확인하자.

 

view source

php 코드를 보면 'chall4'의 세션 값이 있고 포스트 방식의 'key' 값이 'chall4' 값과 같으면 문제가 풀린다.  그리고

'hash' 변수에 10000000~99999999 사이의 랜덤값을 합친 [숫자]salt_for_you 문자열을 저장한다. 저장한 해쉬 값을 chall4의 값에 저장하고 for 문을 이용하여 hash를  sha1()로 500번 암호화 한다.

 


문제접근

문제를 풀려면 'chall4'의 값이 'key' 값과 같아야 한다. 여기서 'key'값은 4번 문제 화면에서 입력란 값이다. 그렇다는 것은 *salt_for_you = $hash 값을 500번 암호화한$hash을 복호화하여 원래의 hash값을 찾아야 한다. 하지만 sha1로 암호화 한 값을 복호화 할 수는 없기 때문에 불가능하다. 

그러면 해쉬화된 16진수 값들을 다량으로 만들어 원래의 hash값을 찾는다.  파이썬 스크립트를 작성하여 '10000000~99999999salt_for_you'의 문자열을 sha1로 500번 암호화 한 값이 홈페이지 화면의 hash와 같을 때를 찾는다. 

 10000000~99999999를 일일히 다 500번 암호화 하기에는 시간이 너무 오래걸려서 대략 10000000~20000000 만큼의 문자열을 500번 암호화하여 txt에 저장하고 문제 페이지의 $hash와  같을 때를 찾는다.


실행

 

text 값을 sha1로 암호화 할때는  text -> 인코딩 -> 해쉬화 -> 16진수 과정을 거친다. hashlib.sha1(text.encode()).hexdigest()가 이 과정을 나타내는 코드이다. 암호화 한 값을 txt에 저장한다. 

txt에 저장할때는 앞 8자리까지만 출력한다. 

 

몇천만의 반복을 하는거기 때문에 실행 완료가 상당히 오래걸린다. 

 

txt는 위와 같이 나오며 문제 페이지의 hash 값과 비교하여 같은 값이 있으면 입력란에 답을 입력한다.

 

암호화 된 hash 값의 앞의 8자리를 가져와 txt에 찾는다.

이렇게 일치하는 값이 나오면 11385619salt_for_you를 입력란에 입력하면 문제가 풀린다. 일치하는 값을 찾기 위해서 30~40번 정도 화면을 새로고침 하였다.

 


문제 핵심 

1. hashlib 라이브러리를 이용한 암호화 코드를 작성할 수 있어야 한다.

2. 문자열로 된 암호화 값을 복호화 하는게 불가능 한 것을 알고 레인보우 테이블 형식으로 접근해야 한다.

저작자표시 (새창열림)

'웹 > 웹 해킹 문제 풀이' 카테고리의 다른 글

webhacking.kr 7번 문제풀이  (0) 2023.02.07
webhacking.kr 5번 문제풀이  (0) 2023.02.06
webhacking.kr 56번 문제풀이  (0) 2023.01.19
webhacking.kr 43번 문제풀이  (0) 2023.01.07
webhacking.kr 41번 문제풀이  (0) 2023.01.07
'웹/웹 해킹 문제 풀이' 카테고리의 다른 글
  • webhacking.kr 7번 문제풀이
  • webhacking.kr 5번 문제풀이
  • webhacking.kr 56번 문제풀이
  • webhacking.kr 43번 문제풀이
-송현우-
-송현우-
  • -송현우-
    모험
    -송현우-
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • 웹 (66)
        • 취약점 진단 (5)
        • 웹 해킹 문제 풀이 (45)
        • 모의해킹 실무 과정 (15)
        • CS (1)
      • 모바일 (0)
      • 인프라 (10)
        • Infra 보안점검 (10)
      • 클라우드 (0)
      • 네트워크 (1)
        • 네트워크 기초 이론 (1)
      • 자격증 (12)
        • 정보보안기사 (2)
        • 정보처리기사 (2)
        • CPPG (1)
        • 리눅스마스터2급 (1)
        • bhpt (4)
        • 컴활 (1)
        • ISMS-P (1)
      • 개발 (16)
        • 백준 (12)
        • 게임 (3)
      • CTF (0)
      • OS (1)
        • linux (1)
      • 낙서장 (2)
        • 정리노트 (0)
        • 공부 계획 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    webhacking.kr 43번
    불충분한 인증
    webhacking.kr
    webhacking
    행렬덧셈
    write up
    백준
    너의 평점은
    webhacking.kr 21
    WarGame
    문제풀이
    정보보안기사 합격 수기
    wehacking.kr
    2023년도 4회차 실기
    bwapp
    웹해킹
    write-up
    2주차 정리
    주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세 가이드
    불충분한 인가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
-송현우-
webhacking.kr 4번 문제풀이
상단으로

티스토리툴바