ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <wargame.kr> md5 password
    Wargame/wargame.kr 2021. 10. 24. 13:45

    md5 password

    문제 제목부터 md5 해시함수와 관련있는 것을 알 수 있다.

    비밀번호를 알아내면 되는것 같다. get source를 통해 소스코드를 살펴보겠다.

    $ps는 'ps'입력 폼의 값에서 특수문자를 지운 값이다.

    $row는 mysql로 보낸 쿼리의 결과의 행을 연관 배열이나 숫자 배열로 가져온다.

    그리고 $row[0]의 값이 있으면 인증 키 값을 얻을 수 있다.

     

    <풀이 방법>

    이 문제는 md5()의 취약점으로 잘 알려진 md5({변수}, true) 형태의 소스코드 오용에 대해서 묻는다.

    md5 같은 경우 인자로 들어온 문자열을 32bytes의 길이로 반환한다. 하지만, 두 번째 인자를 true로 가질 경우 hex값을 16bytes의 바이너리 값으로 반환한다.

     

    ex) select id from table where pw='def'='abc';

    False=False를 통해 True를 만들 수 있다. 그러므로 md5({변수}, true)를 실행했을 때, ***'='*** 와 같이 값이 나온다면 위 코드에서 row[0]에 값이 들어가게 된다.

     

    python 코드를 통해 '='바이트 값이 포함된 문자열을 찾아볼 수있다.

    위의 answer값 중 하나를 골라서 입력하면 인증 키 값을 얻을 수 있다.

    'Wargame > wargame.kr' 카테고리의 다른 글

    <wargame.kr> DB is really GOOD  (0) 2021.10.25
    <wargame.kr> strcmp  (0) 2021.10.22
    <wargame.kr> fly me to the moon  (0) 2021.10.21
    <wargame.kr> WTF_CODE  (0) 2021.10.20
    <wargame.kr> login filtering  (0) 2021.10.19
Designed by Tistory.