CTF/webhacking.kr20 [CTF] webhacking.kr 11번 Write-Up webhacking.kr 11번 문제풀이 Write Up 입니다. 다짜고짜 틀렸다고 합니다. 도대체 뭐가... 이해를 위해 view-source를 클릭해 보겠습니다. 소스코드를 살펴보면 이렇습니다. val에 특정 문자열이 들어가면 문제가 풀리는 것 같습니다. 그리고 val은 GET 방식으로 값이 전송되고 있습니다. 일단 if 조건을 만족할 문자열을 만들어 보겠습니다. $pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/"; 이 정규식을 만족하면 됩니다. []의 의미는 해당 문자 중에 하나 있으면 되고, {}의 의미는 바로 앞의 문자가 괄호 안의 수 만큼 있으면 된다는 의미입니다. $_SERVER[REMOTE_ADDR] 는 현재 PC IP를 적으면 됩니.. 2022. 10. 14. [CTF] webhacking.kr 10번 Write-Up webhacking.kr 10번 문제풀이 Write Up 입니다. 문제에 접속하면 육상트랙이 하나 보입니다. O 글자에 커서를 가져다 대면 yOu가 됩니다. 이 글자를 클릭하면 오른쪽으로 이동합니다. [그림 2, 3]과 [그림 4]를 비교해보면 위치가 달라진 것을 알 수 있습니다. 맨 오른쪽에는 노란색으로 Goal 표시가 있습니다. 아무 생각 없이 Goal 표시가 있는 곳 까지 직접 클릭해 보았는데 문제가 풀려버렸습니다. 무식하게 문제가 풀렸는데, 다시 돌아와서 F12를 눌러 코드를 확인해봅니다. O 글자에 대한 코드입니다. onclick에 클릭하면 실행되는 script가 작성되어 있습니다. this.style.left=parseInt(this.style.left,10)+1+'px'; if(this.st.. 2022. 10. 14. [CTF] webhacking.kr 8번 Write-Up webhacking.kr 8번 문제풀이 Write Up 입니다. 접속했더니 뜬금없이 뭐가 완료되었다고 합니다. 새로고침을 했더니 hi guest라는 글자가 있습니다. (처음 접속 시 상황에 따라 [그림 2]가 먼저 나올 수도 있습니다.) view-source를 눌러보면 [그림 3]과 같은 코드가 나옵니다. 2022. 10. 14. [CTF] webhacking.kr 7번 Write-Up webhacking.kr 7번 문제풀이 Write Up 입니다. 인증을 하면 admin 페이지로 접속할 수 있나 봅니다. 당연히 인증은 되지 않습니다. view-source를 눌러 소스코드를 살펴봅니다. 조건에 맞으면 인증가능한 auth 버튼이 생성되는 것 같습니다. 2022. 10. 11. [CTF] webhacking.kr 6번 Write-Up webhacking.kr 6번 문제풀이 Write Up 입니다. ID와 PW가 적혀 있습니다. view-source를 눌러 봤는데 코드가 좀 깁니다. 따로 적어보면 이렇습니다. php 영역이 두 개가 있는데 위쪽부터 봅니다. id와 pw를 각각 guest, 123qwe로 설정하고 base64 encoding을 20번 때립니다. 이후 조건에 맞게 str_replace()가 진행됩니다. ( 참고 : str_replace([해당 문자열], [변경할 문자열], [문자열 변수]) ) str_replace()가 끝나면 cookie로 기록됩니다. 두 번째 영역입니다. 여기는 cookie로 설정된 user와 password를 가져와서 역으로 str_replace()를 진행합니다. 끝나면 base64 decoding을 .. 2022. 10. 11. [CTF] webhacking.kr 5번 Write-Up webhacking.kr 5번 문제풀이 Write Up 입니다. 두 개의 버튼이 있습니다. Login 버튼을 누르면 로그인 페이지로 이동합니다. Join 버튼을 누르면 엑세스가 거부되었다는 메시지가 출력됩니다. Join을 해야 Login을 할 수 있기에 join 페이지에 들어갈 궁리를 해 봅니다. 로그인 페이지의 URL은 [그림 4]와 같습니다. login 부부을 join으로 바꾸어 접속이 되는지 확인해봅니다. 접속했더니 작별인사를 하고 빈 페이지만 뜹니다. F12를 눌러 확인해봤는데 script를 하나 발견할 수 있었습니다. 소스코드가 심상치 않기 때문에 다른 곳에 붙여넣어서 보겠습니다. l='a'; ll='b'; lll='c'; llll='d'; lllll='e'; llllll='f'; lllllll.. 2022. 10. 11. [CTF] webhacking.kr 4번 Write-Up webhacking.kr 4번 문제풀이 Write Up 입니다. 회색 상자에는 이상한 문자열이 있고, 아래쪽에는 패스워드를 입력하는 칸이 있습니다. view-source를 눌러 소스코드를 보도록 하겠습니다. 가운데 PHP코드가 핵심인 것 같습니다. 코드를 요약하면 이렇습니다. 1. 한 세션에 10000000 ~ 99999999의 수 중 하나와 "salt_for_you" 문자열의 조합으로 hash를 계산한다. 2. hash 계산은 SHA-1 알고리즘을 이용해 500번 수행한다. 3. 해당 세션에 나온 hash를 이용해 원래의 문자열을 알아내야 한다. 즉, [그림 1]에서의 회색 상자 안에 있는 문자열은, 원본 문자열에 SHA-1를 500번 때린 hash값 입니다. 이 hash를 이용해 원본 문자열을 알아내.. 2022. 10. 11. [CTF] webhacking.kr 3번 Write-Up webhacking.kr 3번 문제풀이 Write Up 입니다. 노노그램이라고 합니다. 가로, 세로에 적힌 숫자들을 참고해 박스를 클릭해 색칠하면 됩니다. 어려운 건 아니라서 이렇게 하고 완료 버튼을 눌러봅니다. 정답인 경우 이런 페이지가 나옵니다. 이름을 적으면 명예의 전당에 박제시켜 준다고 합니다. 아무거나 적고 제출해봅니다. 명예의전당에 이름, 제출한 정답, IP까지 박제되었습니다. 그런데 이제 진행할 거리가 없습니다. 한 번 더 등록해봤는데 목록만 늘어나고 달라진 것은 없습니다. 참고로 새로고침하면 자가복제합니다. 여기서 SQL Injection을 시도해 보았습니다. 사진에는 다 나오진 않았지만 그냥 박제만 됩니다. 등록하는 페이지에서 F12를 누르면 다음과 같이 hidden으로 전송되는 값을 볼.. 2022. 10. 11. [CTF] webhacking.kr 2번 Write-Up webhacking.kr 2번 문제풀이 Write Up 입니다. 제한 구역이라고 하면서 IP를 기록했다고 합니다. F12를 눌러봅니다. 맨 위에 주석은 접속 시간이 기록되어 있고, 아래 주석에는 admin.php 접속하면 걷어찬다고 합니다. 이건 못 참습니다. admin.php를 들어가봅시다. 접속했는데 암호를 달라고 합니다. 아무거나 입력해 봤는데 틀렸다는 메시지가 나옵니다. [그림 2]에서 본 접속 시간과 관련이 있는 것 같습니다. 쿠키를 확인해보니 time 쿠키가 있습니다. 해당 값과 기록된 시간이 관련된 것 같습니다. 대충 아무거나 넣고 수정해 보았더니 기록된 시간이 바뀌어 있습니다. 2022. 10. 11. [CTF] webhacking.kr 1번 Write-Up webhacking.kr 1번 문제풀이 Write Up 입니다. 아무것도 없습니다. view-source를 눌러 보겠습니다. 소스코드가 나옵니다. 여기서 눈에 띄는 부분이 COOKIE입니다. 쿠키 조건을 만족시켜 solve(1) 함수를 호출하면 되는 것 같습니다. 소스코드를 자세히 보면, 위 코드에서 user_lv 쿠키의 값을 1로 세팅했습니다. solve(1)이 호출되는 조건은, user_lv가 3을 초과하는 경우입니다. 그러나 바로 위 조건에서 user_lv가 4 이상이면 다시 1로 만들어버립니다. 그럼 적당히 3.5 이렇게 user_lv를 수정하면 될 것 같습니다. Chrome 브라우저에서의 쿠키 수정 방법입니다. 원래 페이지로 돌아온 후 F12를 눌러 Application 탭으로 들어간 후 Coo.. 2022. 10. 10. 이전 1 2 다음