webhacing.kr 34(old)
webhacing.kr 34번 문제는 JS와 관련된 문제로 보여집니다.
사이트에 처음 접속하면 이러한 경고창이 나타납니다.
사이트에 들어가도 이러한 검은화면만 나타나고 아무런 반응도 나타나지 않습니다.
소스코드를 한번 살펴봅시다.
소스코드를 살펴보니 자바스크립트 코드가 난독화되어 있는 것 같습니다.
javascript beautifier를 이용하여 해독해 봅시다.
사이트의 소스코드를 복붙하여
unpacking 하면
매우 긴 언패킹된 코드가 나타납니다.
보기좋게 에디터를 이용하여 정리를 해주고 코드를 살펴보던 중
라는 함수를 발견하게 되었다.
if문을 만족하지 못할경우에
alert(b('0x1e', '14cN'))
라는 경고창을 띄워줍니다. 한번 개발자모드에 진입하여 살펴봅시다.
F12를 눌러 크롬 개발자도구를 켜준뒤.
를 입력하여 주면
라는 처음 사이트에 접속하였을 때 나타났던 경고창이 나타납니다.
이를 바탕으로 추측하여 보면 사이트가 접속되면서 if의 조건을 만족시키지 못하여
이러한 경고창이 나타나는 것으로 추측이 됩니다.
한번 if문을 살펴봅시다.
if문의 조건을 만족시켰을 경우에
location[b('0x1c', '4c%d')] = b('0x1d', 'llaF')
라는 것이 실행된다는 것을 유추하여 볼 수 있습니다.
또 한번 개발자모드에서 실행하여 봅시다.
이렇게 패스워드가 나타나면서
일정시간 뒤에 성공 문구가 나타나게 됩니다.
if문과 같은 조건문을 코드에서 먼저 캐치하여 살펴보는게 중요하다는 것을 깨닫는 문제였습니다.
webhacing.kr 34(old)성공~!
'웹해킹 > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 38번(old) 풀이 (0) | 2020.12.23 |
---|---|
Webhacking.kr 36번(old) 풀이 (0) | 2020.12.23 |
Webhacking.kr 32번(old) 풀이 (0) | 2020.12.22 |
Webhacking.kr 27번(old) 풀이 (0) | 2020.06.01 |
Webhacking.kr 26번(old) 풀이 (0) | 2020.06.01 |