일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- general skills
- #hacking
- 시스템해킹
- 버퍼오버플로우
- cryptography
- picoCTF
- forensics
- reversing
- grep
- 시스템
- CTF
- writeup
- 번역
- Aleph One
- Hxd
- 리버싱
- 해설
- picoCTF2018
- KOISTUDY
- 리눅스
- WEB
- 스택
- 정답
- dreamhack
- 해킹 공부
- Protostar
- write up
- 카이사르
- #picoCTF2018
- Today
- Total
목록writeup (27)
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가 나왔다.
버튼이 마우스와 일정간격을 두고 움직이기 때문에 그냥 클릭하는 것은 불가능 하므로 이를 클릭할 수 있게하거나 버튼이 눌린 후의 동작을 알아내면 풀 수 있다. 아래의 스크립트를 보면 버튼을 눌렀을 때 ?key=001e라는 웹페이지로 들어가게 된다. 그러므로 주소창 뒤에?key=001e를 추가하여 들어가면 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:/..