일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- grep
- #hacking
- #picoCTF2018
- 리눅스
- 카이사르
- writeup
- dreamhack
- Hxd
- 시스템해킹
- 해킹 공부
- general skills
- KOISTUDY
- 번역
- picoCTF
- reversing
- picoCTF2018
- WEB
- Aleph One
- 스택
- 리버싱
- CTF
- 시스템
- 해설
- 정답
- forensics
- Smashing The Stack For Fun And Profit
- write up
- 버퍼오버플로우
- cryptography
- Protostar
- Today
- Total
목록general skills (11)
Security || AI
문제는 script me 라는 제목으로 nc에 접속해보면 아래의 그림과 같이 짜야할 알고리즘과 그 알고리즘에 대한 규칙이 나온다. 여기에 나온 모든 문제를 풀면 성공이다. 이제 이 문제를 풀기위해 파이썬으로 스크립트를 짜보았다. 알고리즘을 설명하자면 식 A + B + C = ??? 이러한 식의 문제라면 먼저 A, B, C로 이루어진 리스트를 만든다.그 다음 pop(0)을 통해 리스트의 인덱스 0, 1번을 리스트에서 꺼내면서 각각 left, right에 넣는다.그 다음 answer함수를 실행시키면 먼저 왼쪽과 오른쪽 중 문제의 RULE에 적힌 내용대로 하기 위해 combine을 할지 absorb-left 또는 absorb-right를 할지 검사한다.()안에 ()가 중첩된것 ex. ((())) 이게 많으면 ..
30초 안에 풀어야 하는 문제들로 구성되어있다.처음에는 시간제한이 있기 때문에 시간을 지나서 답을 풀고 그 답들을 외워서 풀려 했지만 문제들이 랜덤으로 나와 그렇게 풀 수는 없었으므로 정석대로 풀어야하는 문제이다.nc에 접속해보면 아래의 그림과 같이 2진수로 되어있는 5개의 글자를 볼 수 있다. 이 2진수를 아스키코드로 전환하면 첫번째 문제를 풀 수 있다. 이 문제를 푸는 프로그램을 만들고 있었는데 알고보니 Please gibe me the ~~ 위에 답이 있었다.그러므로 첫번째 문제는 위의 내용대로 풀면 된다. 위의 그림 가장 아랫줄에는 16진수로 이루어진 단어로 보이는 문자열이 있다. 이 또한 아스키코드로 변환하여 단어를 찾으면 되는 문제인데 프로그램을 만들려다가 구글에서 그냥 찾아보니 https:/..
grep1과 같은 문제로 이것 역시 egrep을 사용하여 푸는 문제이다.SHELL을 통해 문제를 접속하면 grep1과 다르게 많은 파일이 보인다. 아래의 사진들은 file이 30개씩 들어있는 디렉토리가 10개가 있다. 이 중에서 FLAG가 들어있는 파일을 찾아내면 된다.이를 하나하나 찾아보는 것은 문제를 푸는 의미도 좀 떨어지고 정석풀이가 아닌 단순한 노가다이므로 이를 한번에 찾는 방법을 쓰면된다.리눅스의 특성을 이용해서 file0~30을 file*로 간단히 줄일 수 있다. 그래서 grep1에서의 명령어를 좀 수정하면egrep 'pico' files*/file*을 사용하면 pico라는 문자열이 든 파일을 문제의 모든 디렉토리 내 파일들에서 찾아낸다. FLAG: picoCTF{grep_r_and_you_w..
리눅스의 pipe라는 명령어를 이용해서 nc에 접속한 다음 |(파이프) 다음에 FLAG를 가져올 수 있는 명령어를 입력하면 풀릴 것 같았다.그래서 리눅스의 터미널에서 nc 2018shell2.picoctf.com 48696 | grep 'pico'를 입력하면 FLAG를 얻을 수 있다. FLAG: picoCTF{almost_like_mario_f617d1d7}
단지 netcat에 접속할 수 있는지를 묻는 문제이다.
이 문제는 리눅스의 명령어인 grep을 이용해서 FLAG를 얻어내는 문제이다. 먼저 shell로 들어간 후 문제의 디렉토리에 들어가면 file이라는 파일이 있다. 이를 egrep을 사용해서 picoCTF라는 키워드로 FLAG를 가져오면 된다. egrep 'picoCTF' file이라는 것은 file이라는 파일에서 picoCTF의 문자열을 가진 부분을 찾아서 출력하는 리눅스 명령어이다. 그러므로 FLAG는 picoCTF{grep_and_you_will_find_d66382d8}이다.