목록전체 글 (173)
Iriton's log
접속 정보 URL로 접속하면 뻔한 login 화면이 있다. 코드부터 살펴 보자 우선 quest의 id, pw가 보이지만 admin의 pw는 FLAG로 txt 파일에서 읽어들이는 거라 지금으로썬 알 수 없다. admin으로 로그인을 성공해야 FLAG를 얻을 수 있다. username은 cookies에서 가져온다는 걸 코드를 통해 볼 수 있다. 우선 guest로 로그인을 하여 guest에 해당하는 cookie를 얻어서 이를 변조해 볼 것이다. f12를 눌러서 Application-Cookies를 가보자. guest로 로그인하여 저장한 cookie라서 value가 guest로 지정되어 있다. 이를 admin으로 수정하고 새로고침을 해서 변조가 되는지 볼 것이다. EZ 쿠키는 클라이언트 브라우저 내에 저장되는 ..
*먼저 풀어 봐야 할 문제들의 풀이 https://eunginius.tistory.com/27 [Dreamhack/Wargame] Lv.1 cookie 접속 정보 URL로 접속하면 뻔한 login 화면이 있다. 코드부터 살펴 보자 우선 quest의 id, pw가 보이지만 admin의 pw는 FLAG로 txt 파일에서 읽어들이는 거라 지금으로썬 알 수 없다. admin으로 로그인을 성 eunginius.tistory.com https://eunginius.tistory.com/28 [Dreamhack/Wargame] Lv.1 session-basic ※ Dreamhack Wargame Lv.1 Cookie 문제를 먼저 푸는 것을 강력 추천한다. 이왕이면 Cookies & Session Lecture까지 수..
문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. 도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다. 공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는 뜻..
문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 들어있지 않으며, 바구니에는 공을 1개만 넣을 수 있다. 도현이는 앞으로 M번 공을 넣으려고 한다. 도현이는 한 번 공을 넣을 때, 공을 넣을 바구니 범위를 정하고, 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다. 만약, 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고, 새로 공을 넣는다. 공을 넣을 바구니는 연속되어 있어야 한다. 공을 어떻게 넣을지가 주어졌을 때, M번 공을 넣은 이후에 각 바구니에 어떤 공이 들어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 10..
문제 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?” 혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장..
보호되어 있는 글입니다.
문제는 이러하다. 우선 문제 파일을 다운로드 받고 링크에 접속해 보았다. 초기 화면이다. Upload My Memo에 들어가면 이런 식으로 파일 이름과 내용을 저장하여 업로드 할 수 있다. 혹시나 해서 flag.py의 이름으로 업로드 해보았지만 될 리가 없다. 어떻게 flag.py를 다운 받지 싶어서 문제 파일에 있는 코드를 살펴 보았다. upload 하면 /upload 파일에 저장하고 read 하면 upload 파일에서 불러 오나보다. 근데 해당 조건문에서는 수상하게 파일명에서 ..이 사용되는 걸 막는다. ..은 상위폴더를 뜻하는데 그럼 flag.py가 upload파일이 아닌 상위 폴더에 있어서 막나? 싶은 생각이 든다. 파일명에 ../flag.py를 입력하고 업로드 하면 코드 내용대로 bad... 가..
문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 풀이 초기 코드 (시간 초과) #include #include using namespace std; int main() { int N, M; cin >> N >> M; vectorarr(N+1); arr[0] = 0; for (int i = 0; i > arr[i]; for (int ..