1. Sequel Fun
- 페이지 소스 내 주석으로 ?source=1가 존재하며 접근할 경우 소스코드가 노출된다. 계정정보가 그대로 노출되지는 않지만 로그인하는 쿼리가 SQLi에 취약한 것으로 보였고 아이디와 패스워드에 1만 넣지 않으면 풀린다. 이에 따라 1이 아니라 true를 입력하여 solve하였다.
- solve 요청
?user=%27+or+true--+&pass=23
2. Roboworld
- Flask 문제로 완벽하지 않은 소스코드를 제공해준다. 소스코드 내에 디버깅용 privkey가 존재하는데 해당 키를 가지고는 어떠한 문자열로도 모두 captchaVerify가 allow된다.
- 아래 소스코드 일부를 보면 캡처 인증을 하는 요청을 볼 수 있는데 captchaUserValue 뒤에 privateKey가 나오게 되므로 HTTP Parameter Pollution을 통해 실제 제공된 privKey가 아닌 디버깅용 privKey를 통해 인증하도록 하면 시크릿페이지에 접근되고 그 중 mp4 파일을 열면 FLAG가 노출된다.
privKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" #redacted r = requests.get('http://127.0.0.1:{}/captchaVerify?captchaUserValue={}&privateKey={}'.format(str(port), captchaToken, privKey)) #backdoored ;))) if username == "backd00r" and password == "catsrcool" and r.content == b'allow': session['logged'] = True return redirect('//redacted//') else: return "login failed"
- solve 요청
user=backd00r&pass=catsrcool&captcha_verification_value=o79GEvFXyt%26privateKey=8EE86735658A9CE426EAF4E26BB0450E
3. Rigged Election
- 해당 문제는 vote.php의 g 파라미터가 존재할 때 총 6자리의 문자열이 설정되고 이후 h 파라미터의 값을 특정 문자열과 연결하여 md5한 결과의 앞 6자리가 이전에 얻은 6자리와 일치할 때까지 확인한다 .
- 동일한 세션으로 해야해서 동시에 여러 요청을 보낼 수 없는데 코드를 짜서 돌리고는 있는데 이렇게 하는게 맞을까..?
4. X-MAS Helper
- 개인 서버에 봇 추가 URL : https://discordapp.com/oauth2/authorize?clinet_id=[봇 ID]&scope=bot
- 개발자 모드 활성화 : [사용자 설정 - 디스플레이 - 고급 - 개발자모드]
- 개발자 모드 활성화 이후 봇 우클릭하여 봇 ID 획득 후 봇 추가를 한다. 이후 서버 설정에서 역할에 Organizer를 추가한 뒤 나에게 역할을 주고 !flag가면 Success
5. Execute No Evil
- /* */는 보통 Multi-Line comment를 의미하는데 여기에 !를 사용하게 되면 실행가능한 주석이 된다. 이는 MySQL과 MariaDB에서만 가능하다. (검색 : executable comment )
- 이후부터는 union을 이용하여 flag를 획득하면 된다.
'Hacking Contest' 카테고리의 다른 글
[Christmas CTF 2019] watermelon (0) | 2019.12.26 |
---|---|
[Kipod After Free CTF 2019] (0) | 2019.12.24 |
[Rooters CTF] baby web (0) | 2019.10.10 |
[ByteBandits CTF 2019] Online Previewer 1 (0) | 2019.04.13 |
[ByteBandits CTF 2019] EasyPHP (0) | 2019.04.13 |