728x90
반응형

웹해킹 32

Webhacking.kr [old-14]

Webhacking.kr old-14 입니다. 문제 메인 페이지 입니다. ㅎㅇㅎㅇ를 입력하고 check를 눌러보았습니다. Wrong 출력. 소스코드부터 확인해 봅시다. 인증과정 코드를 발견했습니다. document.URL은 현재 경로(주소)를 반환하는 함수인데요. indexOf 함수는 인자로 지정한 문자열이 몇번째 위치부터 시작하는지 반환합니다. 0번째부터 시작하고요. 그리고 그 값에 30을 곱하고 있네요. 이 값은 ul에 저장됩니다. 아래쪽 조건문에서는 우리가 입력한 값과 ul의 값이 일치하면 어디론가 이동시켜주고 있고, 일치하지 않으면 Wrong을 출력합니다. 우리가 직접 ul의 값을 계산해서, 입력해 봅시다. 현재 경로입니다. ".kr" 문자열이 몇번째부터 시작하는지 세봐야겠죠? 0번째부터 셌을 경..

Webhacking.kr [old-17]

Webhacking.kr old-17 문제입니다. 문제 메인 페이지입니다. 입력 폼이 하나 있네요. 아무거나 입력해보았습니다. 틀렸다고 Wrong이 출력되었네요. 딱히 정보가 없네요. 소스코드부터 확인해 봅시다. 개발자도구로 소스코드를 확인했는데, 인증이 이루어지는 코드를 발견했습니다. unlock 변수에 어떤 값이 저장되어 있고 우리가 입력한 값이 unlock과 같을 경우, 어떤 경로로 이동되네요. 틀렸을 경우는 Wrong을 출력합니다. unlock 값을 계산해서 직접 입력해 봅시다. 계산기에는 복붙이 안되더라구요. 그래서 파이썬으로 계산했습니다. 7809297.1 이 나왔네요. 이걸 입력해 봅시다. 입력하고 check 클릭. 정답이었네요. 이렇게 old-17 문제를 해결할 수 있었습니다.

Webhacking.kr [old-01]

Webhacking.kr old-01 문제입니다. 문제 메인 페이지입니다. 특별할 건 없네요. 소스코드를 확인해 보겠습니다. 위쪽 코드는 단순히 쿠키값을 설정하는 코드이고.. 아래쪽이 중요하겠네요. 쿠키의 user_lv 값이 숫자가 아닐 경우, 값을 1로 설정합니다. user_lv 값이 4보다 크거나 같을 경우, 값을 1로 설정합니다. user_lv 값이 3보다 클 경우, 문제가 해결됩니다. 이것을 종합해보면, user_lv 값이 숫자이고, 3보다 크고 4보다 작을 경우 문제가 해결된다. 가 되겠네요. 저는 처음에 정수만 입력할 수 있다는 착각에 잠깐 헤맸었는데, 그냥 소수점을 입력해도 됩니다. 3~4 사이의 아무 숫자나 입력합시다. 저는 Burp suite 프로그램을 이용하겠습니다. 저는 3.5를 입력..

Webhacking.kr [old-06]

Webhacking.kr 사이트의 old-06 문제입니다. 문제 메인페이지 입니다. ID,PW가 기재되어 있고 특별한 건 없어 보입니다. 소스코드를 확인해 봅시다. 소스코드입니다. 위쪽부터 살펴보시면, 쿠키의 "user" 값이 존재하지 않을 경우 ID, PW를 guest, 123qwe로 설정합니다. 그리고 그 값을 base64로 20번 인코딩 한 후 숫자를 특수문자로 치환하여 각각 user, password 쿠키값으로 설정합니다. 아래쪽 소스코드는, 설정된 user, password 쿠키값을 특수문자를 숫자로 치환한 후 base64로 20번 디코딩하여 문제 메인 페이지에 출력합니다. 그리고, 만약 출력된 ID,PW값이 admin, nimda라면 문제가 해결됩니다. 즉, 우리는 admin, nimda 문자..

OverTheWire [Natas Level 25]

Natas Level 25 입니다. 어떤 발표문, 선언문? 같은 내용이 있고, 언어를 선택하여 볼 수 있습니다. 독일어, 영어가 가능하네요. 여기서 URL창을 보면 파라미터명이 "lang" 이라는 걸 알 수 있습니다. 소스코드 입니다. 가장 위 setLanguage 함수에서, lang 파라미터를 통해 언어를 선택받고 있습니다. language 디렉터리 밑에서, lang파라미터를 통해 전달받은 파일을 출력하는 것 같은데요. 여기서 safeinclude 함수를 통해 구체적인 필터링을 실시하고 있습니다. strstr 함수를 통해서, "../" 문자열이 있다면 str_replace 함수를 통해 지워버립니다. "natas_webpass" 문자열이 있다면 아예 파일을 불러오지 않습니다. 이렇게 두가지 필터링을 거친..

Hacking/[Web]Natas 2023.05.22

Best Schools

웹 관련 문제입니다. 3번 항목인 Flag CyberSecurity School의 클릭수를 가장 높게 만들어, 플래그를 획득해야 합니다. I'm at this school 버튼을 누르면 클릭 수가 올라갑니다. 다만, 연속해서 누를 경우 너무 빠르다는 메시지와 함께 클릭수가 올라가지 않습니다. 간격은 수십초 정도는 되는 것 같습니다. 따라서 이 문제는, 클릭에 대한 속도제한을 우회하는 문제입니다. 저는 Burp Suite를 이용하겠습니다. I'm at this school 버튼에 대한 Request 패킷입니다. 1행에 보면 페이지명이 graphql 인 것과, 아래쪽에 query라는 이름으로 데이터가 전송되고 있는 것을 보니, 이것은 graphql에 대한 쿼리문이라고 유추할 수 있습니다. (graphql은 ..

OverTheWire [Natas Level 24]

Natas Level 24 입니다. 저번 레벨과 같이 Password 입력폼이 하나 있군요. 아무 값이나 넣어 봤지만 당연하게도 인증 실패로 Wrong! 문자열을 출력했습니다. 소스코드를 봐봅시다. 소스코드입니다. 이번에도 짧네요. 아주 좋습니다. 저번 레벨 코드보다 더 간단한데요? 그냥 맞는 패스워드를 입력하면 됩니다. 단, 조건문이 strcmp함수로 이루어져 있군요. strcmp 함수는 문자열을 비교하는 함수입니다. 문자열이 같을 경우 -> 0 다를 경우 -> 0이 아닌 정수 ( 상황에 따라서 음수, 양수 모두 출력함 ) 쉽게 말해서, 같으면 FALSE 다르면 TRUE 를 출력합니다. 또한, 대소문자를 구별합니다. 위 소스코드엔 !strcmp 이렇게 !(NOT) 연산이 들어가 있으니, 올바른 패스워드..

Hacking/[Web]Natas 2023.04.11

OverTheWire [Natas Level 23]

Natas Level 23 입니다. 문제입니다. Password 입력 폼이 있네요. 아무거나 입력해봅시다. natas23을 입력해 보겠습니다. Wrong! 틀렸다고 하네요. 위 URL 창을 통해 입력 폼 이름은 passwd 라는 것을 알 수 있습니다. 소스코드를 확인해 봅시다. 오랜만에 굉장히 간단한 코드네요! 눈이 아주 편합니다. password 출력 조건도 굉장히 간단한데요. 딱 2가지입니다. 1. 입력값에 "iloveyou"문자열이 포함되어 있어야 한다. ( 띄어쓰기처럼 보이는데 아닙니다 ) 2. 입력값의 크기가 10보다 커야 한다. 그런데 좀 이상합니다. 입력값은 iloveyou 문자열이 포함되어 있는데 10보다 커야 한다니? 문자열과 숫자를 비교하고 있군요. 이게 가능한 건가요? 혹시 입력값의 ..

Hacking/[Web]Natas 2023.04.11

OverTheWire [Natas Level 22]

Natas Level 22 입니다. Level 22 메인 페이지 입니다. 보시다시피 텅 비어있습니다. 소스코드를 살펴봅시다. 소스코드입니다. 위, 아래로 크게 두 부분이 있는데요 첫번째는 GET방식으로 받은 요청에 "revelio" 가 존재하고 현재 세션이 admin이 "아닐 경우" header 함수에 의해 /(메인페이지) 위치로 리다이렉션 되는 함수입니다. 두번째는 GET방식으로 받은 요청에 "revelio" 가 존재할 경우 다음 레벨의 password를 출력합니다. 음.... 그러니까 GET방식으로 revelio 를 입력하면 되는 것 아닌가? 입력해 보겠습니다. URL에 그대로 입력해도 됩니다. (GET방식은 URL상에 그대로 모든 파라미터가 노출되는 방식입니다) revelio=1 입력했습니다. 그러..

Hacking/[Web]Natas 2023.04.05

OverTheWire [Natas Level 21]

Natas Level 21 입니다. 메인 페이지 입니다. 저번 레벨과 같이, natas22의 password를 얻고 싶다면 admin 계정으로 로그인 하라고 합니다. 특이하게도, natas21-experimenter 페이지와 환경을 공유한다고 합니다. experimenter 페이지입니다. 편의상 페이지2라고 하겠습니다. 해당 페이지엔 css관련 설정을 할 수 있는 폼이 있군요. 일단 각 페이지 소스코드를 살펴봅시다. password출력 조건문이 존재하는군요. password를 직접 획득할 수 있는 페이지는 이곳인 것 같습니다. 세션명 "admin" , value값은 1일 때 password를 출력합니다. 저번 레벨과 조건 자체는 같군요. 페이지2 소스코드입니다. css 값들을 입력받아 적용하는 코드인 것..

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