환경 : 16.04.3 LTS (GNU/Linux 4.4.0-87-generic x86_64) 서버에 아무 것도 설치 및 세팅이 되지 않은 상태 https://github.com/CTFd/CTFd/wiki/Getting-Started 1. apt-get install git 2. git clone https://github.com/CTFd/CTFd.git 3. cd CTFd 4. apt install docker-compose ★ ERROR 발생ERROR: The Compose file './docker-compose.yml' is invalid because: networks.internal value Additional properties are not allowed ('internal' was un..
flag.txt 파일을 찾아야 하는데알려준 것은 NodeJS , poems folder, path를 이용한다는 것. ?path 로 들어가면 poems 디렉토리에 여러 txt 파일들이 있지만 flag.txt는 없다?path=(파일명) 으로 들어가면 그 파일의 내용이 보인다. ?path=.. 으로 상위 디렉토리에 접근하려고 했으나 WHOA THATS BANNED!!!! 가 뜨면서 접근이 안된다.그래서 . 을 아스키 코드로 변환(%2e)하여 입력했는데 그래도 접근이 안된다. %2e 를 한번 더 아스키 코드로 변환하면 % 가 %25로 바뀌기 때문에%252e가 되는데 이걸 이용해 flag.txt 파일에 접근할 수 있었다.
md5_compare 는 VALUE1 과 VALUE2 를 비교해서 같으면 된다.코드를 보면 다음과 같다. v1는 알파벳이어야 하고, v2는 숫자여야 한다.그리고 그 둘을 md5화 했을 때, 다르면 false, 같으면 chk를 해서 flag를 출력한다. PHP는 int형과 char형을 구분하여 선언하지 않는다고 한다. md5 해싱을 할 때 해쉬값이 0e**** 인 경우 두 값을 비교하면 무조건 참이 된다. stack overflow의 이 답변을 참고하여VALUE1에는 QNKCDZO를, VALUE2에는 240610708을 넣어봤더니 문제가 풀렸다.
DB is really GOOD 문제는 이름만 봐도 db와 관련된 문제라는 걸 알 수 있다.BLUEMEMO SYSTEM이 있고 USER name을 치는 곳이 있다.따로 join은 없고 login만 하면 되는데 main 페이지의 코드를 보면 function fschk(f){ if(f.user_id.value=="admin"){ alert("dont access with 'admin'"); return false; }} 이런식으로 user_id의 value가 admin이면 dont access with 'admin' 이 뜬다. 그리고 user_id 마다 memo list 들의 내용이 바뀐다. 여러가지를 넣어봤는데 .는 _가 되고, / 를 넣자 Fatal error가 뜬다. Fatal error 에서 SQLi..
로그인 필터링 문제의 소스를 보면 코드를 볼 때 php 코드만 자세히 보고 맨 밑 코드를 못봤었다. 이렇게 주석처리 된 부분에 로그인 id와 password를 적어놓았다.일단 입력받은 id가 guest 이거나 blueh4g 이면 your account is blocked 쿼리상에선 알파벳의 대소문자 구분이 없고, php상에선 그대로 인식하므로 Guest 같이 대소문자를 섞어서 id를 입력하면 된다.Guest 뿐만 아니라 Blueh4g도 가능. 패스워드는 그대로 입력해준다.로그인에 성공하면 Password가 뜨고, 인증하면 된다.
flee button 문제는 마우스 커서를 따라 click me! 라는 버튼이 움직인다.클릭할 수 없도록 만든 것인데 클릭하면 FLAG가 뜰 것만 같다.하지만 커서를 정말 빠르게 움직여서 버튼을 움직일 생각은 하지 않는게 좋을 것 같다. 우클릭도 안되므로 F12 개발자도구를 이용해보면,click me! 버튼을 눌렀을 때 window.location='?key=5a1d' 라는 동작을 한다.그렇다면 버튼을 눌렀을 때 특정 주소로 이동한다는 것인데직접 url을 수정하면 된다. http://wargame.kr:8080/flee_button/?key=5a1d 이런식으로 ?key=~~~ 부분만 url에 추가해주면 된다. 그럼 이렇게 Flag가 뜬다!
2번째 문제 QR CODE PUZZLE 은 어릴때 많이 해봤던 퍼즐이랑 똑같다.퍼즐 조각을 잘 움직여서 온전한 QR 코드로 만들면 되는데,엄청난 노가다 이므로 다르게 생각을 해보면문제 출제자도 저 정확한 크기의 퍼즐조각을 노가다로 자르진 않았을 것이다!그렇다면 QR 코드 이미지의 원본이 어딘가에 있다는 것인데 이렇게 크롬의 개발자 도구 > Sources 에 들어가 보면img 폴더에 qr.png라는 원본 QR 코드 처럼 보이는 것이 있다. 이 사진을 스마트폰의 QR 코드 리더기로 읽어보면 FLAG가 뜨는데,스마트폰에 뜨는 FLAG를 그대로 인증하지 말고그 FLAG가 떠있는 페이지의 URL을 복사해 PC로 인증하는 것을 추천한다. 클리어!
첫번째 문제인 already got 문제는 can you see HTTP Response header? 이 문장을 보니 HTTP Response header를 봐야할 것 같다.그래서 Burp Suite 프로그램을 사용했다.첫 페이지 url http://wargame.kr:8080/already_got/ 일 때 돌려보니 쿠키값만 나오길래http://wargame.kr:8080/already_got/index.php로 바꿔서 돌려보니 이렇게FLAG값이 떴다. 1번 클리어!
https://www.wechall.net/challenge/training/crypto/caesar/index.php 암호문은 새로고침 할 때마다 바뀐다. 복호화된 문장은 똑같겠지만 새로고침을 하게 되면 key값을 계속 바꿔줘야 하므로최대한 새로고침을 하지 않고 한번에 하는 것이 좋을 것 같다. 예전에 짜두었던 시저 암호 코드를 이용해 복호화를 했다. WeChall 은 처음이라 저 문장 전체가 답인줄 알고 다 쳤는데 틀리는 바람에key를 바꿔서 다시 복호화 해야 했다입력해야하는 답은 SOLUTION IS ~~~~ 에서 IS 뒷 부분이다. 풀렸다!
- Total
- Today
- Yesterday
- ubuntu
- lord of sqlinjection
- MySQL
- webhacking.kr
- my-pass
- cobolt
- 웹해킹
- ftz
- WebHacking
- 명령어
- C
- 설치
- wargame.kr
- wargame
- Lord of SQL Injection
- Los
- 1번
- 우분투
- BOF
- pwnable
- c언어
- lob
- 자바
- 워게임
- Python
- 0xdeadbeef
- 파이썬
- java
- attackme
- pwnable.kr
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |