본문 바로가기

CTF/webhacking.kr20

[CTF] webhacking.kr 24번 Write-Up webhacking.kr 24번 문제풀이 Write Up 입니다. client ip와 agent 정보가 나오고, 잘못된 IP라고 뜹니다. 소스코드입니다. PHP 영역만 따로 빼서 분석해 보겠습니다. 접속IP가 127.0.0.1이면 문제가 해결되는 것 같습니다. 그러나, IP는 str_replace()에 의해 필터링되고 있고, IP정보는 어떻게 속여서 전송해야 할지도 생각해야 합니다. 일단 str_replace() 먼저 해결해봅니다. str_replace([변경 대상 문자열], [변경할 문자열], [해당 문자열]) 이런 구조로 이루어져 있습니다. 이 함수의 취약점은, 필터링 후 남은 문자로 재조합이 가능하다는 것입니다. 예를 들어 admin이 str_replace("admin", "", $str) 이렇게 .. 2022. 10. 18.
[CTF] webhacking.kr 23번 Write-Up webhacking.kr 23번 문제풀이 Write Up 입니다. 접속하면 텍스트박스와 미션 설명이 있습니다. alert() 스크립트를 실행하면 된다고 합니다. 이번 문제는 XSS(Cross Site Scripting)를 성공시키면 되는 것 같습니다. 이렇게 직접적으로 입력하면 핵 쓰지 말라고 합니다. filtering이 걸려있어서 그런 것인데, 우회해서 alert()를 호출하는 방법을 생각해 봐야겠습니다. 태그를 입력해 보았는데 아래 텍스트 크기가 커졌습니다. 크기가 커지니까 좀 징그럽습니다. 의미없는 문자열도 2글자 이상이면 다 filtering 되는 것 같습니다. 문자열 개수 filtering을 우회해야 할 것 같습니다. 검색을 해보다가 php filtering 함수 중 eregi() 함수의 취약점.. 2022. 10. 18.
[CTF] webhacking.kr 20번 Write-Up webhacking.kr 20번 문제풀이 Write Up 입니다. 2초의 시간 제한이 있다고 적혀 있고, 아래 칸에는 적는 게 있습니다. 추측을 하자면 nickname과 comment, 랜덤으로 바뀌는 captcha까지 입력을 하고 Submit를 2초 내로 하라는 것 같습니다. 2초 내로 못 하면 느리다고 제출을 받아주지 않습니다. 신컨이 가능하다면 그냥도 풀 수 있겠지만 저는 그럴 능력이 안 되기 때문에 다른 방법을 생각해봅니다. javascript를 활용해 보겠습니다. document.querySelector()를 이용하면 특정 영역 선택이 가능하고, value 메소드를 이용하면 내용을 채울 수 있습니다. 먼저 nickname을 채워보겠습니다. nickname 텍스트상자 name이 'id'로 정의가 .. 2022. 10. 15.
[CTF] webhacking.kr 19번 Write-Up webhacking.kr 19번 문제풀이 Write Up 입니다. id를 입력하는 칸이 있고, admin이 기본값으로 들어가 있습니다. [그림 1]의 상태로 바로 Submit를 하면 사기치지 말라고 합니다. 아무거나 치고 Submit를 했더니 반갑다는 표시가 뜹니다. 근데 로그아웃은 작동을 하지 않습니다. logout 버튼을 누르면 로그아웃이 되지 않습니다. 이것저것 뒤저보다가 cookie가 있는 것을 발견했습니다. 저기 뒤에 %3D는 = 입니다. 맨 뒤에 =는 base64 인코딩할 때 패딩으로 많이 사용하는데, base64로 인코딩 된 값임을 유츄할 수 있습니다. base64 디코딩을 한 결과입니다. 디코딩이 되긴 했지만 아직은 알아볼 수 없습니다. 해당 결과를 긁어와 다시 디코딩을 시도했지만, 깨져서.. 2022. 10. 15.
[CTF] webhacking.kr 18번 Write-Up webhacking.kr 18번 문제풀이 Write Up 입니다. 대놓고 SQL Injection을 하라고 합니다. 소스코드를 살펴보면, SQL문이 하나 보입니다. 2022. 10. 14.
[CTF] webhacking.kr 17번 Write-Up webhacking.kr 17번 문제풀이 Write Up 입니다. 입력 칸이 하나 있습니다. F12를 눌러보면 script가 하나 있습니다. unlock 값을 입력하면 문제가 풀리는 것 같습니다. console에서 값을 계산합니다. 계산 후 나온 값을 입력합니다. 값이 일치하면 정답처리 됩니다. 2022. 10. 14.
[CTF] webhacking.kr 16번 Write-Up webhacking.kr 16번 문제풀이 Write Up 입니다. 별이 있습니다. F12를 눌러보면 script가 하나 보입니다. 주석에 do it!이라고 되어 있는 부분이 있는데, 이걸 하면 될 것 같습니다. 일단 한번 해 봅시다. mv() 함수 안에 있으므로, mv(124)를 해 봅니다. script를 입력하면 문제가 정답처리 됩니다. 2022. 10. 14.
[CTF] webhacking.kr 15번 Write-Up webhacking.kr 15번 문제풀이 Write Up 입니다. 그냥 입구컷을 해버립니다. 계속 끄적대다가, 15번 문제가 js 문제인 것을 발견했습니다. 그래서 javascript 비활성화 시키고 들어가 보기로 했습니다. F12를 누르고 나오는 창 상단을 보면 설정 버튼(톱니바퀴 모양)이 있는데, 누르면 [그림 2]처럼 뜹니다. 아래로 내려 Disable JavaScript에 체크합니다. Level 15 페이지로 접속해 보겠습니다. 비활성화 시킨 후에 URL에 직접 입력해서 들어가야 합니다. 접속하면 아무것도 안 뜨는데, F12를 눌러보면 스크립트가 나옵니다. flag를 얻는 URL이 보입니다. URL 뒤에 ?getFlag를 입력하면 될 것 같습니다. URL 뒤에 ?getFlag를 입력하고 접속해봅니.. 2022. 10. 14.
[CTF] webhacking.kr 14번 Write-Up webhacking.kr 14번 문제풀이 Write Up 입니다. 입력할 수 있는 칸이 하나 있습니다. 아무거나 넣고 check를 하면 틀렸다는 메시지가 나옵니다. F12를 눌러서 소스코드를 확인했는데, script가 걸려 있는 것을 알 수 있습니다. function ck(){ var ul=document.URL; ul=ul.indexOf(".kr"); ul=ul*30; if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; } else { alert("Wrong"); } } ul이랑 [그림 1]에서 본 입력칸 입력 내용이 같으면 문제가 해결되는 것 같습니다. 일단 ul에 어떤 값이 저장되는지 console로 돌려 보았는데, 540이 .. 2022. 10. 14.
[CTF] webhacking.kr 12번 Write-Up webhacking.kr 12번 문제풀이 Write Up 입니다. javascript challenge라고 합니다. F12를 눌러 script를 확인해봅니다. 하... 짜증이 조금 날 것 같습니다. 짜증은 문제 틀렸을 때 내기로 하고 script를 살펴봅니다. 아마 난독화 되어 있는 script인 것 같습니다. 이렇게 난독화되어 있는 것을 검색해 보았습니다. 일본 이모티콘 난독화 이렇게 검색을 했는데, aaencode / aadecode를 발견했습니다. https://utf-8.jp/public/aaencode.html aaencode - Encode any JavaScript program to Japanese style emoticons (^_^) aaencode demo aaencode - Enco.. 2022. 10. 14.