일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- c언어
- 신경망구현
- 인공지능
- BOF
- 8086CPU레지스터
- 딥러닝파이썬
- 신경망 학습
- 신경망파이썬
- C언어 알고리즘
- C언어알고리즘
- 소프트맥스함수
- 활성화함수파이썬
- 백준알고리즘
- 밑바닥부터시작하는딥러닝
- 백준
- 신경망
- 정보보안
- BOJ
- 보안
- 딥러닝
- C알고리즘
- FTZlevel10
- 파이썬신경망
- 스트림암호
- 머신러닝
- 항등함수
- 버퍼오버플로우
- 달고나bof
- 파이썬
- 알고리즘
- Today
- Total
목록<CTF>/<suninatas> (3)
HeeJ's
소스 코드를 보아도 별 다른 함수도 없는 것을 보아 notice 게시판에 직접 글을 써봐야 할 것 같다. 그래서 main으로 가서 notice 게시판을 보았더니 글을 작성할 수 있는 버튼이 없었다. 비교해보기 위해 다른 게시판으로 가보았다. free 게시판인데 이 곳에서는 write 버튼이 있었다. 일단 글을 쓰기 위해 들어가 보았다. URL에 free/write 라고 적혀있었다. 이 free 부분을 notice로 바꾼다면 notice 게시판에 글을 작성할 수 있을 것 같다. 이렇게 하고 아무렇게나 글을 입력해 주었더니 Authkey 를 얻을 수 있었다.
소스코드를 바로 살펴보았다. id와 pw가 같으면 can't join이라는 alert 창과 함께 문제를 해결할 수 없다. 그래서 아무 다른 값을 넣어 보았더니 아무 일도 일어나지 않았다. hint 부분에서 id와 pw가 같아야 한다는 것을 보니, 스크립트를 우회하는 방식을 사용해야 할 것 같다. 개발자 도구에서 콘솔을 이용해 else문에 있는 document.web02.submit();를 실행시켜 준다면? 우선 실행시키기 전, Hint에서 보이는 것과 같이 id와 pw 폼에 같은 값을 아무거나 입력해준다. join을 누르지 않고, 그대로 개발자 도구의 콘솔에 들어간다. 그리고 아까 else문에 있던 명령어를 입력해보면 AuthKey값을 얻게 된다.
소스코드를 살펴보면 str을 받아와서 여러 문자열을 치환해주는 것 같다. Mid()함수는 처음 보았는데, mid() 함수는 문자열에서 원하는 길이만큼 빼오는 함수라고 한다. string a = "123456789"; Mid(a,1,3) // 123 Mid(a,2,5) // 2345 이렇게 사용될 수 있다. 뭔가 문자열을 대체하는 replace와 추출하는 mid를 잘 읽어보고 활용해 결과적으로 admin이라는 값을 얻으면 되는 것 같다. mid()함수를 먼저 보면 2의 값과 4~6의 값이 사용 되는 것을 알 수 있다. __ __ __ __ __ __ 1 2 3 4 5 6 ami 라는 값을 넣어주면 a가 aad로 대체되고 i가 in으로 대체되면서 a a d m i n 이라는 값을 갖게 된다. Mid()함수에..