일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- 스택
- 번역
- 버퍼오버플로우
- 해킹 공부
- Smashing The Stack For Fun And Profit
- reversing
- write up
- 시스템
- Aleph One
- #picoCTF2018
- Hxd
- 시스템해킹
- cryptography
- 정답
- dreamhack
- KOISTUDY
- CTF
- general skills
- 리버싱
- picoCTF
- #hacking
- 해설
- WEB
- Protostar
- picoCTF2018
- 카이사르
- forensics
- writeup
- grep
- Today
- Total
목록CTF(해킹대회) (28)
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. ((())) 이게 많으면 ..
이 문제는 원래는 못 풀다가 요즘 포렌식을 공부하기 시작하면서 이 문제도 풀 수 있겠다 하고 다시 풀어보니 풀린 문제이다. There is an old saying: if you want to hide the treasure, put it in plain sight. Then no one will see it.Is it really all one shade of red?이 힌트를 보고 최근에 알게된 포렌식 툴인 StegSolve라는 것을 이용해서 풀어보았다.. 빨강색만 있는 문제인데 HXD로 EOI뒤를 보아도 문제의 단서가 안보이는걸 보면 힌트의 말대로 빨강색이 아닌 다른 필터를 적용시켜보면 풀릴 수 있을것이라 생각했고 Stegsolve를 사용해서 Red plane1을 적용시키니 FLAG가 나왔다.
파일을 다운 받으면 myname이라는 패킷을 캡처해 놓은 pcap파일이 열린다. 어떤 종류의 문제인지 감이 잘 안잡혀 힌트를 보니 아래와 같은 힌트가 나왔다. 이 힌트를 보아 도메인의 이름을 나타내는 도메인 네임 시스템인 DNS를 통해 알 수 있다고 추측할 수 있었다.그러므로 아래의 사진과 같이 DNS를 필터링하여 패킷을 분석해보면 FLAG를 알아낼 수 있다.
문제의 웹사이트에 들어가면 아래의 그림과 같이 로그인 페이지를 볼 수 있다. 하단의 loin.php source code를 눌러보면 아래의 페이지처럼 로그인 페이지의 소스코드를 볼 수 있다. 위의 소스코드의 쿼리를 보면 SELECT 1 FROM users WHERE name='$username' AND password='$password'';admin이라는 아이디로 비밀번호 검증만 우회하면 로그인이 될것이다. 또, 이 소스코드를 보아 별다른 SQL인젝션을 하는데 필터링이없으므로 그대로 SQL인젝션을 진행하면admin'-- 라는 것을 ID에 넣고 로그인하면 로그인을 성공할 수 있고, FLAG를 얻어낼 수 있다.
30초 안에 풀어야 하는 문제들로 구성되어있다.처음에는 시간제한이 있기 때문에 시간을 지나서 답을 풀고 그 답들을 외워서 풀려 했지만 문제들이 랜덤으로 나와 그렇게 풀 수는 없었으므로 정석대로 풀어야하는 문제이다.nc에 접속해보면 아래의 그림과 같이 2진수로 되어있는 5개의 글자를 볼 수 있다. 이 2진수를 아스키코드로 전환하면 첫번째 문제를 풀 수 있다. 이 문제를 푸는 프로그램을 만들고 있었는데 알고보니 Please gibe me the ~~ 위에 답이 있었다.그러므로 첫번째 문제는 위의 내용대로 풀면 된다. 위의 그림 가장 아랫줄에는 16진수로 이루어진 단어로 보이는 문자열이 있다. 이 또한 아스키코드로 변환하여 단어를 찾으면 되는 문제인데 프로그램을 만들려다가 구글에서 그냥 찾아보니 https:/..
먼저 문제에서 주어준 소스를 보면 what is your name? 이라 물은다음에 이름을 입력하는 문제이다. 여기서 아래의 사진처럼 이름의 배열크기는 256이다. 그러므로 이름이 256자 이상이면 메모리가 다른 곳으로 넘어가면서 flag를 흘리는 버퍼오버플로우와 같은 형식의 문제가 될 것이다. 아래의 사진처럼 A를 256자 이상 입력을 했더니 프로그램에서 의도하지 않은 내용이 나오면서 FLAG를 얻어낼 수 있다. picoCTF{a_really_s3cuRe_p4s$word_d98e8d}이다.