일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- filter()
- dplyr
- sample_n()
- 대칭형 알고리즘
- arrange()
- summarize()
- proc contents
- AES
- samp;e_frac()
- select()
- groupe_by()
- mutate()
- distinct()
- Today
- Total
Gae Ko's Blog
[webhacking.kr] challenges20 본문
문제를 보니
문제가 직접 javascript 문제라고 알려주었다. 소스코드를 보았다.
코드가 길다....
- 문제 한가운데에 time limit : 2 라고 써져있다.
- id, cmt hack 이름에 input으로 값을 집어넣도록 되어 있고 제출 버튼을 누르면 ck함수가 작동한다.
- ck함수는 id, cmt, hack값이 공백이고 hack값이 attackme값과 동일하지 않으면 입력값 쿼리가 넘어가기 않도록 작동하는 함수이다.
id, cmt에 아무값이나 넣고 hack값은 attackme값을 넣고 제출해보았다.
제출 버튼을 아무리 눌러도 변화가 없다. ㅠ 그리고 아무리 생각해도 클리어방법을 모르겠다. ㅠ
자바스크립트를 이용해서 무언갈 하면 되는거 같은데.... 결국 풀이를 보고 말았다!
== Point ==
1. time limit : 2 → 2초안에 해결해야함
2. 개발자도구의 콘솔창에서 자바스트립트를 실행할 수 있다.
아 time limit : 2 라는게 2초 안에 실행해야한다는 의미를 몰랐었다!! 왜냐면 소스코드에도 중앙에 저런 글씨가 있다고만 나와있지 시간을 제한다는 함수나 코드가 없어서 그런 의미임을 눈치채지 못했다.ㅎㅎ
그리고 개발자도구의 콘솔창에서 자바스크립트를 실행되는걸 알긴 알았는데
html 코드를 바꿈에 따라 페이지가 바뀌는 걸 확인할 수 있듯이 바로바로 실행결과를 눈으로 확인할 수 있는 그런 자바스크립트 실행이 되는건 처음 알았다!!
콘솔창에 hi라는 알림창을 뜨도록 하는 코드를
적고 enter을 누르니 정말 hi라고 적힌 알림창이 나왔다 !!
다시 문제를 생각해보면 id, cmt, hack값을 조건에 맞게 입력하여 쿼리를 넘어가게 해야하는데 그걸 2초 이내에 해결해내야 한다는 문제이다.
그리고 2초이내 해결하기 위해서 개발자도구의 콘솔창을 사용해야한다.
콘솔창에 다음과 같이 코드를 작성한다. (id, cmt, hack에 값이 입력하고 제출버튼을 누를 때의 실행을 실행하는 코드)
2초 이내에 저 코드를 실행해야하므로 코드를 쳐놓은 상태에서 time limit이 초기화되도록 새로고침하고 바로 enter을 누르면
Clear !!!
[참고]
문제의 소스코드를 보면 POST방법으로 값을 입력받는다고 한다. 그래서 주소창에 조건에 맞는 값을 입력해서 넘기면 되지 않을까 했는데 계속 실패해서 결국 문제풀이를 보고 클리어하게 된건데 클리어하고 나서 생각해보니 안되는 이유가
저런식으로 하면 미리 복사해서 새로고침 후에 복붙한다해도 제한된 시간내에 할 수 없고 그렇게 복붙해도 안되는 이유는 새로고침 할 때마다 attackme값이 바뀌기 때문이다!
[질문]
1. 쿼리를 제한 시간 내에 넘기면 그니까 클리어하면 congratulation이라고 알림창이 뜨는데 소스코드에는 제출을 하면 알림창이 뜬다는 코드가 안나와있어요 ㅠ 어떤 원리(?)로 저 창이 뜰 수 있었던거죠??
2. attackme값이 새로고침을 할 때마다 바뀌던데 어떻게 바뀔 수 있는거죠? 소스코드에 관련 소스코드는 안나오던데
3. time limt 은 어디서 조정하는거죠?? 소스코드에 시간제한한다는 코드가 안나와있던데 ㅠㅠ
[답변]
time limit값이 조정되고 attackme 값이 계속 바뀌는 것과 문제가 풀리게 하는 그런 것들에 대한 스크립트가 없는데 가능한 이유는 php소스코드에서 검사하기 때문입니다. 자바스크립트는 CSS(Client Side Script)이기 때문에 클라이언트에서 확인하고 수정도 할 수 있지만 php는 SSS(Server Side Script)이기 때문에 클라이언트측에서 확인할 수 없습니다.
'웹해킹 > [webhacking.kr] ' 카테고리의 다른 글
[webhacking.kr] challenges6 (0) | 2017.10.20 |
---|---|
[webhacking.kr] challenges54 (0) | 2017.10.16 |
[webhacking.kr] challenges10 (0) | 2017.10.13 |
[webhacking.kr] challenges12 (0) | 2017.09.25 |
[webhacking.kr] challenges16 (0) | 2017.09.25 |