CTF42 [Dreamhack] ROT128 https://dreamhack.io/wargame/challenges/852 ROT128 Description rot128.py는 flag.png 파일을 암호화하여 encfile로 저장하는 프로그램의 소스 코드입니다. (풀이자가 프로그램을 직접 실행할 수는 없습니다.) 주어진 encfile을 복호화하여 flag 파일 내용을 알 dreamhack.io encfile을 복호화하여 flag 파일 내용을 알아낸 뒤, flag.png에서 플래그를 알아내는 문제이다. encfile을 복호화하기 위해서 rot128.py를 확인했다. rot128.py는 flag.file을 암호화하여 encfile로 저장하는 파일이다. #!/usr/bin/env python3 # 0부터 255까지의 숫자를 16진수로 변환하여 리스트에.. 2023. 11. 8. [Dreamhack] sql injection bypass WAF Advanced https://dreamhack.io/wargame/challenges/416 sql injection bypass WAF Advanced Description Exercise: SQL Injection Bypass WAF의 패치된 문제입니다. 문제 수정 내역 2023.07.24 Dockerfile 제공 dreamhack.io SQL Injection Bypass WAF에 의해 패치된 문제이다. 가상머신 접속 화면은 이와 같다. 문제 파일로 제공된 app.py를 확인해보면 키워드를 필터링한다. 입력 받은 data를 소문자로 변환한 후에 (lower함수) 필터링하기 때문에 대문자로도 우회할 수 없다. 필터링에 해당하는 키워드를 입력하면 이런 화면이 출력된다. admin 문자열을 이용해서 블라인드 인젝션을 .. 2023. 11. 8. [Dreamhack] [wargame.kr] md5 password https://dreamhack.io/wargame/challenges/337 [wargame.kr] md5 password Description md5('value', true); dreamhack.io VM에 접속해보면 패스워드 입력 란과 소스코드를 볼 수 있는 링크가 있다. get source를 클릭하여 확인해봤다. 소스코드를 보면 md5() 함수의 두 번째 파라미터에 true 값이 담기는 형태로 md5() 함수가 호출되었다. md5() 함수에 두 번째 인자 값을 선택적으로 줄 수 있는데, 이가 raw_ouput에 해당하는 옵션으로 이 옵션에서 취약점이 발생한다. raw_ouput 옵션의 기본 값은 False이고, true 값이 담기게 되면 raw한 binary 형태로 출력이 되며, 이는 아스키(A.. 2023. 11. 1. [Dreamhack] simple_sqli_chatgpt https://dreamhack.io/wargame/challenges/769 simple_sqli_chatgpt 어딘가 이상한 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. chatGPT와 함께 풀어보세요! Reference Server-side Basic dreamhack.io SQL_INJECTION 취약점을 이용하여 플래그를 얻는 문제이다. 플래그는 flag.txt, FLAG 변수에 있다고 한다. 제공되는 파일의 코드를 보면 0을 입력하면 guest로 로그인 할 수 있다. login() 함수를 보면 userid가 admin이고, userlevel이 0이면 플래그가 출력된다고 한다. 현재 select * fro.. 2023. 11. 1. [Dreamhack] baby-sqlite https://dreamhack.io/wargame/challenges/1 baby-sqlite 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요! 해당 문제는 숙련된 웹해커를 위한 문제입니다. dreamhack.io SQL 인젝션 취약점을 이용하여 플래그를 획득하는 문제이다. 로그인을 할 수 있는 페이지가 있다. SQL 인젝션을 하기 위해서 제공된 코드를 봐야 할 것 같다. sql result가 admin이면 FLAG가 출력된다는 것을 알 수 있다. 그러나 DB에 uid가 admin인 데이터가 없으므로 결과 값에서 admin이 나와야 한다. 로그인 할 때, 입력 받은 값은 모두 소문자 처리와 필터링이 된다. 그리고 level 값은 기본으로 9를 가지게 된다. '와 "가 필.. 2023. 10. 4. [Dreamhack] login-1 https://dreamhack.io/wargame/challenges/47 login-1 python으로 작성된 로그인 기능을 가진 서비스입니다. "admin" 권한을 가진 사용자로 로그인하여 플래그를 획득하세요. Reference Server-side Basic dreamhack.io admin 계정으로 로그인하면 플래그를 획득할 수 있는 문제로 보인다. 로그인 페이지에 들어가보니 회원가입과 로그인 기능, 패스워드를 잊었을 때 찾을 수 있는 기능이 있다. 회원가입을 진행하니 BackupCode를 준다. 가입한 계정으로 로그인해보면 UserLevel이 0이다. 이 UserLevel이 1이거나 1 이상인 계정이 admin 권한을 가진 사용자일 것이다. 그리고 url을 보면 17이란 숫자가 있는데, 이를 .. 2023. 10. 4. [Dreamhack] Broken Password 보호되어 있는 글 입니다. 2023. 10. 4. [Dreamhack] file-special-bit https://dreamhack.io/wargame/challenges/895 file-special-bit Description 서버에서 작동하고 있는 서비스의 바이너리와 소스 코드가 주어집니다. dream 유저의 권한으로 "flag" 파일을 읽으세요. 플래그의 형식은 DH{...} 입니다. ssh with id: chall pw: dhbeginnerchall1 ssh ch dreamhack.io ssh 환경에서 dream 유저 권한으로 flag 파일을 읽어야 하는 문제이다. id인 chall을 dream 유저 권한으로 실행 시켜야 한다. 우분투에서 ssh로 문제에서 주어진 id와 pw로 접근했다. id로 chall의 uid, gid, groups 권한을 확인한 후에 dream의 uid, gid, gr.. 2023. 9. 26. [Dreamhack] welcome https://dreamhack.io/wargame/challenges/27 welcome Description 이 문제는 서버에서 작동하고 있는 서비스(welcome)의 바이너리와 소스 코드가 주어집니다. "접속 정보 보기"를 눌러 서비스 정보를 얻은 후 플래그를 획득하세요. 서버로부터 얻은 플래 dreamhack.io 서버로부터 플래그를 획득하는 문제이다. 서버에 접속만 하면 플래그를 얻을 수 있다. 우분투에서 접속을 했더니 바로 플래그를 획득할 수 있었다. 2023. 9. 26. [Dreamhack] Command Injection Advanced https://dreamhack.io/wargame/challenges/413 Command Injection Advanced Description Exercise: Command Injection Advanced에서 실습하는 문제입니다. 문제 수정 내역 2023.07.27 Dockerfile 제공 dreamhack.io Command Injection을 실습하는 문제이다. 가상머신에 접속하면 url을 입력하여 전송할 수 있게 되어 있다. index.php 파일을 확인해봤다. strpos 함수를 이용해 'http'가 url 변수 맨 앞에 위치해 있는지 확인하고 http가 맨 앞에 위치해 있을 경우 shell_exec()함수를 통해 쉘 명령어를 실행한다. line 14, shell_exec()에는 curl.. 2023. 9. 20. [Dreamhack] command-injection-chatgpt https://dreamhack.io/wargame/challenges/768 command-injection-chatgpt 특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. chatGPT와 함께 풀어보세요! Reference Introduction of Webhacking dreamhack.io 커맨드 인젝션을 통해 플래그를 획득하는 문제라고 한다. 플래그는 flag.py에 있다고 한다. 접속 정보를 보면 ping을 보내는 사이트임을 확인할 수 있다. flag.py에 플래그가 있다고 했으므로 cat 명령어를 이용하여 해당 파일을 읽는 ping을 보냈다. 플래그를 획득했다! 2023. 9. 20. [Dreamhack] simple-web-request https://dreamhack.io/wargame/challenges/830 🌱 simple-web-request Description STEP 1~2를 거쳐 FLAG 페이지에 도달하면 플래그가 출력됩니다. 모든 단계를 통과하여 플래그를 획득하세요. 플래그는 flag.txt 파일과 FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 📜 dreamhack.io 2단계를 거쳐서 플래그를 획득해야 하는 문제다. STEP 1에 들어가면 param 값과 param2를 입력해야 하는 것으로 보인다. 문제 파일에서 app.py를 확인해보니 step1() 함수에 param 갑소가 param2 값이 아예 공개돼 있었다. 해당 값들을 입력하니 STEP 2로 넘어갔다. STEP 2에서도 param 값과 par.. 2023. 9. 16. [Dreamhack] phpreg https://dreamhack.io/wargame/challenges/873 phpreg Description php로 작성된 페이지입니다. 알맞은 Nickname과 Password를 입력하면 Step 2로 넘어갈 수 있습니다. Step 2에서 system() 함수를 이용하여 플래그를 획득하세요. 플래그는 ../dream/flag.txt에 위치합니 dreamhack.io php로 작성된 페이지로 2단계에 걸쳐서 푸는 문제다. 플래그는 ../dream/flag.txt에 있다고 한다. 가상머신에 접속하면 이름과 패스워드를 제출하는 입력 란이 있다. 혹시나 해서 admin/admin을 입력해봤는데 아니라고 했다. :( 주어진 문제 파일 중 index.php에는 얻을 수 있는 정보가 없었다. 그래서 step2.. 2023. 9. 13. [Dreamhack] shell_basic https://dreamhack.io/wargame/challenges/410 shell_basic Description 입력한 셸코드를 실행하는 프로그램이 서비스로 등록되어 작동하고 있습니다. main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 dreamhack.io 이 문제는 셸크래프트를 이용해서 푸는 문제이다. * 파이썬 모듈 pwntools의 shellcraft - pwntools는 execve 셸코드를 작성할 뿐만 아니라 open, read, write 시스템 콜을 모두 지원한다. - 셸크래프트는 해당 시스템콜의 어셈블리어코드를 만들어주므로 orw, 즉 open, read, write 시스템콜하여 쉘코드를 만들어야 한다. f.. 2023. 5. 30. [Dreamhack] RSA-wiener https://dreamhack.io/wargame/challenges/177 RSA-wiener 암호 학자 Michael J. Wiener의 이름을 딴 Wiener의 공격은 RSA에 대한 일종의 암호화 공격입니다.해당 공격을 이용하여 플래그를 제출하세요! dreamhack.io RSA에 대한 암호화 공격인 Wiener 공격을 통해서 플래그를 얻는 문제이다. 문제 파일은 두 가지로 각각 flag와 public key가 적혀 있다. Wiener 공격을 위해서는 p*q인 N, N과 함께 사용되는 공개키인 e가 필요하다. 기본적으로 e값이 큰 경우 d값이 작을 확률이 더 높고, 이를 이용하여 공격할 수 있다. https://8gwifi.org/PemParserFunctions.jsp Online Certifi.. 2023. 5. 30. 이전 1 2 3 다음