반응형
안녕하세요,
자운대 고라니입니다.
이번 글에서는 wargame 8번 문제 풀이를 해보겠습니다.
렛츠 기릿!!
md5('value', true)의 취약점을 이용해서 문제를 풀라는 듯하다.
start를 눌러보면 위와 같은 password폼이 달랑 하나 나와있다.
일단 get-source를 클릭해보자
중요한 코드만 따로 발라놨다.
여기서 md($ps, true)라는 구문이 'or'이라면
"select * from admin_password where password=' ". ' or '. " ' "
이렇게 표현되고
(' " . ' or '. " ') = false
엥? 생각을 잘못했다
'=' 을 삽입하면 될 거 같다.
(' " . ' = '. " ') = true이기 때문에
$row에 데이터가 삽입될 것이고
문제가 풀릴 것이다.
그렇다면 md5($ps, true)에 '='이 포함된 값을 삽입하면 되겠는데,
md5('value', true)란 32자리 md5해쉬값을 16자리의 바이너리로 표현한 것이다.
이는 파이썬 코드를 통해서 추출할 수 있다.
이 소스코드를 간단하게 해석하자면
'='라는 문자열이 포함돼있는 바이너리 값들을 추출하는 코드이다.
이를 통해 여러 가지 값을 받을 수 있는데, 그중 나는 1839431이라는 값을 삽입해보겠다.
짜잔 정답이다.
반응형
'category > 웹해킹(wargame.kr)' 카테고리의 다른 글
wargame - 7 (0) | 2020.07.13 |
---|---|
webhacking - 참고 사이트 (0) | 2020.07.13 |
wargame - 6 (0) | 2020.07.13 |
wargame - 4 (0) | 2020.07.08 |
wargame - 3 (0) | 2020.07.07 |
wargame - 2 (0) | 2020.07.07 |
wargame - 1 (0) | 2020.07.07 |
wargame 시작 (0) | 2020.07.07 |
댓글