728x90
반응형

Hacking 87

OverTheWire [Natas Level 12]

Natas Level 12 입니다. Level 12 메인 페이지 입니다. 업로드할 JPEG 파일을 선택하라.. 최대크기는 1KB 로군요. 1KB면 메모장에 글 몇줄만 써도 넘어버리는 작은 크기죠. 파일 업로드 기능을 이용해서 password를 찾아야 할 것 같네요. 소스코드부터 봐봅시다. 해당 문제 소스코드 입니다. 대충 보니.. 파일 크기를 제한하는 조건문과 랜덤한 문자열을 생성하는 함수도 보이네요. 하지만, 여기에 password를 출력하는 코드는 없네요. 그렇다는 건, 우리가 /etc/natas_webpass/natas13 파일을 직접 조회해야 한다는 걸 의미합니다. 일단 업로드 기능부터 직접 살펴봅시다. dd.txt 파일을 업로드 해보겠습니다. 해당 파일은 제가 만들었으며 메모장에 딱 한글자만 적..

Hacking/[Web]Natas 2023.03.16

OverTheWire [Natas Level 11]

Natas Level 11 입니다. Level 11 메인 페이지 입니다. ..꽤 끔찍한 문제였습니다. 쿠키는 XOR 암호화로 보호되고 있다. 라네요. 소스코드부터 봐봅시다. 굉장히 길고 끔찍하군요.. 일단 맨 마지막 코드를 보아, data배열의 showpassword값이 yes이면 password가 출력된다는 걸 알 수 있습니다. 하나씩 설명을 드리자면, xor_encrypt() : key와 입력받은 인자를 xor 연산 진행하는 함수 loadData() : 현재 Cookie의 data 부분 값을 복호화하여 가지고 오는 함수 saveData() : 인자로 받은 값을 암호화하여 Cookie의 data부분 값을 셋팅하는 함수 이렇게 됩니다. 현재 마지막 조건문에서는, data배열의 showpassword 값이..

Hacking/[Web]Natas 2023.03.16

OverTheWire [Natas Level 10]

Natas Level 10 입니다. 보안상의 이유로, 특정 문자를 필터링한다고 합니다. Level 9에서 사용했던 ; 를 필터링 하고 있는걸까요? 코드를 봐봅시다. Level 9와 코드는 똑같으나, 조건문 한 개가 추가되었습니다. preg_match 함수를 이용해서, [ ; | & ] 위 5개 특수문자를 필터링하고 있네요. 해당 특수문자가 포함되어 있다면, Input contains an... 어쩌구 문자열을 출력합니다. preg_match 함수는, '/ /' 이 안에 있는 것들을 필터링합니다. 이걸 어떻게 우회할 수 있을까? 가장 먼저 생각난 건 URL인코딩 이었습니다. ; 를 URL인코딩하면 %3b 가 됩니다. ;ls; -> %3bls%3b 이렇게 바뀌는 것입니다. 이걸 입력해 볼까요? 실패했습니다...

Hacking/[Web]Natas 2023.03.15

OverTheWire [Natas Level 9]

Natas Level 9 입니다. Level 9 메인 페이지 입니다. 입력한 단어가 포함된 검색을 할 수 있습니다. "aa" 를 입력했더니, aa가 포함된 단어들이 출력되었습니다. 오른쪽 View sourcecode를 눌러봅시다. 역시 PHP코드가 있네요. needle 은 입력 폼 이름입니다. 입력받은 값을 key 변수에 저장하고, 저장한 값을 grep 명령어의 인자로 사용하네요. passthru는 외부 명령어를 실행하는 함수입니다. 여기선 리눅스 명령어를 호출하고 있구요 만약 우리가 "HACK" 이라는 문자열을 입력하면, 명령어는 grep -i HACK dictionary.txt 가 됩니다. dictionary.txt 파일 안에 password가 있는건가 싶어, natas, pass, password ..

Hacking/[Web]Natas 2023.03.13

OverTheWire [Natas Level 8]

Natas Level 8 입니다. Level 8 메인 페이지 입니다. 특정 비밀번호를 입력해야 하는 듯 합니다. 오른쪽 View sourcecode를 눌러봅시다. 페이지 소스코드 입니다. PHP로 코드가 짜여있네요. 자세히 봐볼까요? encodedSecret 변수에 특정 문자열이 저장되어 있고 encodeSecret 이라는 함수가 선언되어 있네요. encodeSecret 함수는 secret변수의 값을 base64인코딩, 문자열뒤집기, 16진수 변환 과정을 거쳐 해당 값을 리턴하고 있습니다. 그 밑에 if문은, 사용자가 입력한 값을 똑같이 인코딩,뒤집기,변환을 한 후 secret값과 대조하여 일치할 경우 password를 출력하게 되어 있네요. 변수 encodedSecret 값이 선언되어 있고 값까지 초기..

Hacking/[Web]Natas 2023.03.13

OverTheWire [Natas Level 7]

Natas Level 7 입니다. Level 7 메인 페이지 입니다. Home, About 링크가 있고 텅 비어 있습니다. 각각 한번씩 눌러봅시다. 짧은 문구 하나 짧은 문구 하나. 두 버튼을 누르면 저런 문구가 출력될 뿐이네요. 단 차이점이 있다면, URL 창에 "page" 라는 파라미터가 노출되었네요. 이걸 어디다 이용할 수 있을까? 일단 개발자도구도 켜 봅시다. 오 이게 무슨 일? 소스코드에 주석으로 무려 힌트가 작성되어 있습니다. natas8의 password는 /etc/natas_webpass/natas8 경로에 있다. 라네요 대놓고 위치를 알려줬으니 우리는 해당 경로로 접근하는 방법만 찾으면 될 것 같습니다. URL 창에서 경로를 입력해봅시다. 그러나.. 주소 뒤에 저렇게 바로 경로를 붙여버리..

Hacking/[Web]Natas 2023.03.10

OverTheWire [Natas Level 6]

Natas Level 6 입니다. Level 6 메인 페이지 입니다. 드디어 입력 폼이 생겼습니다. 특정 비밀번호를 맞추면 될 것 같은데요.. SQL Injection 인가 싶어서 우회구문도 넣어보고, 스크립트문도 넣어보고 했지만 효과가 없었습니다. 오른쪽에 View sourcecode를 눌러보면, 페이지 소스코드가 나옵니다. 가운데에 PHP 구문이 있네요. 비밀번호를 입력받고 검증하는 코드인 것 같습니다. 저는 코드 보는게 제일 싫습니다... PHP문법은 잘 모르지만, 대충 보면 다른 경로에서 secret.inc 파일을 include(참조, 불러오기 같은) 하고 있습니다. 또한 if 문을 통한 비밀번호 검증이 이뤄지고, 성공하면 password 출력, 아니면 Wrong secret 문구가 출력되도록 구..

Hacking/[Web]Natas 2023.03.10

OverTheWire [Natas Level 5]

Natas Level 5 입니다. 메인 페이지 입니다. 로그인이 되어있지 않아 액세스 허용이 안되어있다고 합니다. 음.. 분명히 접속할때 아이디와 password를 입력했는데 말이죠. 딱히 뭔가를 입력할 폼도 파라미터도 안 보이고.. Level 4처럼 상대를 속여볼까요? Burp Suite를 이용해 Request패킷을 조작해서, 내가 로그인 된 상태라고 인지하도록 속여 봅시다. Burp Suite 실행해서 Intercept is on 눌러준 후, 문제 페이지에서 "새로고침"(F5) 을 눌러 줍시다. 이렇게 Request 패킷을 잡았습니다. Level 4 에서는 Referer 부분을 수정했었죠. 하지만 이번엔 보이지 않네요.. 하지만 10행에 Cookie 헤더가 보이십니까? 헤더 내용 끝부분까지 따라가 보..

Hacking/[Web]Natas 2023.03.10

OverTheWire [Natas Level 4]

Natas Level 4 입니다. 메인페이지 입니다. 액세스가 허용되지 않았다. 너는 "" 에서 방문하고 있지만, natas5에서 접속해야 한다.. 대략 그런 뜻입니다. Refresh page 버튼을 클릭하면, 비어있던 더블쿼터("") 안에 현재 나의 경로가 입력됩니다. 이외에 별 반응은 없습니다. 처음엔 또 디렉터리 리스팅인가? 아니면 php파일이 있는걸 이용하라는건가? 속임수인가? 라는 생각을 했지만 그런건 없었습니다. 그냥 문장 그대로 이해하면 됩니다. 문제에서, natas5에서 접속을 하라고 했지만 우리는 natas5의 password를 모릅니다. 따라서 우리는 natas4인 채로, 마치 우리가 natas5인 것처럼 속일 필요가 있습니다. 이를 위해선 HTTP Request(요청 메시지)를 조작할..

Hacking/[Web]Natas 2023.03.09

OverTheWire [Natas Level 3]

Natas Level 3 입니다. Level 3 메인페이지 입니다. Level 2와 마찬가지로 이 페이지엔 아무것도 없다고 나오네요. 역시 개발자도구부터 켜봅니다. 늘 답이 있던 자리에.. 더이상의 정보유출은 없다! 구글조차 이번엔 정보를 찾지 못할거야... 라고 쓰여 있군요 일단 저번레벨에서 /files 디렉터리가 있다는걸 알았으니, 접근해보았습니다. 하지만 없는 디렉터리였고, 관리자페이지 취약점인가 싶어서, /admin /manager /system 등등 해보았으나 실패했습니다. 그때 문득 robots.txt 파일이 생각났습니다. robots.txt파일은 웹서버라면 무조건 가지고 있는 파일이죠. robots.txt 파일에 접근 성공했습니다. User-agent : * Disallow: /s3cr3t/..

Hacking/[Web]Natas 2023.03.09
728x90
반응형