본문 바로가기

Wargame Write-Up/HackCTF69

[HackCTF] (Reversing) Welcome_REV 풀이 문제파일을 다운받아서 아이다로 열어보면 ELF 파일인걸 알수있다. 값을 입력받고, check_password함수로 값을 판단한다. 입력값을 가지고 여러 반복문을 실행하는데, 딴건 다 필요없고 핵심은 가장 아래에있는 큰박스만 보면된다. strncmp 로 edx(입력값)과 문자열을 비교하고있다. 문자열을 자세히보면 끝에 = 이 붙는걸 봐선 base64인코딩된 문자열인걸 알수있고, 디코딩해보면 FLAG가 나온다. 2020. 3. 3.
[HackCTF] (Web) Read File 풀이 문제 메인페이지다. 구글에 검색을 해봤더니 검색은 안되고, 위에 써져있는 flag.php로 이동해봤다. 역시 안뜬다. 다른사이트도 접속가능한지 확인해봤다. 블로그도 들어가진다. 그렇다면 flag.php에서 flag를 필터링하고있다고 추측해볼수 있는데, google.com뒤에 flag를 붙여서 이동해봤더니 페이지가 정상적으로 나오게된다. 따라서 flag를 필터링하고있다는걸 알게되었고, 이는 fflaglag, flflagag, flaflagg 등으로 우회할수있다. 2020. 3. 3.
[HackCTF] (Web) Guess me 문제풀이 guess me 들어갔을때에 소스코드다. secret.txt 에서 secretcode를 불러와 맞으면 flag를 출력한다. [extract] extract : php에서 배열의 키값을 변수화해주는함수 $_GET 는 딕셔너리형태로 key:value 형태로 값이 들어가는데 키값을 변수화한다는건 key값인 guess를 php내부에서 $guess로 변수처럼 사용할수있다. extract함수에는 extract함수를 사용하기전에 이미 정의된 변수들을 overwrite할수있는 취약점이있다. 이를 이용해 우리는 extract함수 사용하기전에 정의된 filename 변수를 조작할수있다. [문제풀이] filename을 조작해 없는파일을 열어 읽게만들면 $secretcode에는 아무내용도 없을것이다. 그럼 guess에도 아무.. 2020. 3. 2.
[HackCTF] (Web) 보물 문제풀이 문제 사이트 접속 후 1번을 눌러보았다. 암호화된것같은 문자열이 뜨지만, 설명을 보면 페이지숫자들중 하나엔 보물을 숨겨놨다하는걸 보면 숫자들중 flag가 있을것같다. 하지만 1,2,3 번에는 없었다. GET 형식으로 값을 보내주기때문에 여기에없는 값인 4번을 보내보겠다. 4번에도 이상한 문자열이있다. 그래서 숫자가 어디까지있나 궁금해 숫자를 점점 늘려가봤다. 하지만 1억이 넘어가도 문자열은 계속 출력된다..... 적당히 50000정도로 값을 잡아서 파이썬으로 돌려보았다. [Python] 고맙게도 페이지에있는 이상한 문자열의 길이는 모두 같은것같으니, requests로 html을 얻어와서 페이지소스길이를 비교하는코드를 짜면 되겟다. 1 2 3 4 5 6 7 8 9 10 11 12 13 import requ.. 2020. 3. 2.