webhacking.kr - old 46
·
Wargame/Webhacking.kr
어디서 많이 본 문제인 거 같다. 저번에 푼 old-49 문제랑 똑같이 생겼다. 근데 이번에는 "money" 가 생겼다. php 부분만 중점으로 보자. 똑같이 get 으로 lv 값을 받아들인다. addslashes로 싱글쿼터를 막고 [이스케이프 처리] str_replace로 [공백,/,*,%] 해당하는 것을 이스케이프 처리하는 거 같다. 필터링도 있다. (select,limit,cash),(16진법) 에 대해서 걸러내는 거 같다. 그리고 select id,cash 를 보면 id, cash 열이 chall46 테이블에 있는 거 같다. 딱히 cash 가 중요한 열은 아닌거 같으니 id 열에 대해서만 집중했다. https://webhacking.kr/challenge/web-23/?lv=5||id=char(9..
webhacking.kr - old 34
·
Wargame/Webhacking.kr
문제화면이다. 'debug me'라고 alert 가 뜨고 없어진다. 그냥 검은색 화면만 있다. 소스 코드를 봐보자. 매우길고 , 난독화, 가독성 x 일단 가독성 먼저 해결해보자.. https://beautifier.io/ Online JavaScript beautifier Beautify JavaScript, JSON, React.js, HTML, CSS, SCSS, and SASS beautifier.io 이 사이트에서 JS에 대한 가독성을 해결할 수 있다. var a = ['RcOhTDV1Ew==', 'McOVwqpRBg==', 'c8K/w43DvcK8', 'SsOrTCF1CVDCgcKLEsKc', 'NsK/w4Bc', 'G1TDpwk=', 'AcKtwqfDlW7Dsw==', 'e3kkcQJfwoNF..
webhacking.kr - old 49
·
Wargame/Webhacking.kr
문제화면이다. 소스코드를 확인해 보자. 중요한 부분을 따로 봐보자.
webhacking.kr - old 61
·
Wargame/Webhacking.kr
문제화면이다. 소스코드를 봐보자. id 파라미터의 값이 없으면 id의 값을 "guest"로 설정한다. [$get] if(!$_GET['id']) $_GET['id']="guest"; 만약 id 가 있을경우 "addslashes()" 함수로 재설정 "addslashes()" 함수는 싱글쿼터(')를 백슬래쉬(\)로 변환한다. $_GET['id'] = addslashes($_GET['id']); preg_match로 필터링이 있다. $id에 [(,), select, from, ', ', by, '.'] 각 소 괄 화, SQL 구문, 쉼표, 점을 필터링한다. if(preg_match("/\(|\)|select|from|,|by|\./i",$_GET['id'])) exit("Access Denied"); id가 ..
webhacking.kr - old 47
·
Wargame/Webhacking.kr
문제화면이다. send를 누르자 메일을 보냈다고 만 뜬다. 실제 이메일을 대입해서 시도했지만 실제로는 되지 않았다. 일단 지금 알 수 있는 건 Mail에 관련된 프로토콜 SMTP 밖에 떠오르지 않았다. (다른 것도 찾아봤지만 별 의미 없었다..) 패킷도 잡아봤지만 의미 있는 걸 발견하기가 힘들었다. 구글링을 더 해본 결과..(그것도 많이) 계속하다가 SMTP Header Injection이라는 연관성 있는 키워드가 떠서 확인해 봤다. 내용은 사용자 입력이 충분히 검증되지 않은 채 전자 메일을 보낼 수 있을 때 추가 헤더를 삽입하여 임의의 값으로 조작할 수 있게 된다고 쓰여있다. (요약) 지금 문제하고 되게 비슷한 상황인 거 같다. 입력에 대한 검증은 이루어지지 않고 있고 애초에 워게임 사이트 문제이니 추..
webhacking.kr - old 36
·
Wargame/Webhacking.kr
문제화면이다. index.php 파일을 vi 편집기로 사용하다가 정전이 나서 소스 코드가 사라졌다고 한다. vi를 사용하니 리눅스 환경인걸 알 수 있다. 리눅스 vi를 사용하고 있을 때는 '. swp' [임시] 파일을 자동으로 생성한다. vi 가 비정상적인 종료로 갑자기 꺼졌을때를 대비하거나 또는 다른 사용자가 동일한 파일을 편집 중일 때 발생할 수 있는 충돌을 방지하기 위해서 생성한다. 일종의 백업(?) 파일이라고 알면 될거같다. 한번 실험해 보자. test.txt라는 파일을 vi 편집기를 이용해서 만들어보자. 들어가서 바로 터미널을 꺼버리자 (비정상적인 종료) 다시 들어와서 확인했더니 '. swp' 파일이 생성되었다. 이렇게 비정상적인 종료를 해도 백업파일이 남아있는 것이다. (복원과정은 나중에) 그..
webhacking.kr - old 08
·
Wargame/Webhacking.kr
문제화면이다. 소스코드를 한번 확인해 보자. 길다. 나눠서 살펴보자.
webhacking.kr - old 21
·
Wargame/Webhacking.kr
문제화면이다 BLIND SQL INJECTION이라고 친절하게 쓰여있다. 시도해 보자. id : admin , pw : admin으로 접속을 시도했다. URL에 보면 id , pw 파라미터이고 그 값을 찾는 거 같다. guest로 한번 해봤는데 로그인이 되었다. 한번 실험을 해본 결과 injection에 대한 db 가 반응을 하고 있다. 그러면 id 파라미터 값이 'admin'인 그리고 password에 대한 길이가 40 보다 큰지 해본 결과 'login fail' 즉 "거짓"이라는 결과 가 나왔다고 할 수 있다. 그러면 조금 줄인 30 보다 pw length 가 큰지 물어봤는데 'wrong password'가 출력되었다. 이 결과로 db 가 '참'을 이야기한 것과 같다. 그렇다면 비밀번호의 길이는 40..
webhacking.kr - old 33
·
Wargame/Webhacking.kr
문제 첫 화면이다 33-1........ 문제가 많다는 걸 여기서 깨달았어야 했는데....... [문제안에 문제가 많으니 천천히 보도록 하자] 들어가기 앞서 python request를 주로 이용해서 문제를 풀었기에 (그냥) 문제풀이에 쓰인 코드들은 다 https://github.com/GrayOM/webhacking.kr_code GitHub - GrayOM/webhacking.kr_code Contribute to GrayOM/webhacking.kr_code development by creating an account on GitHub. github.com 여기에 전부 있습니다. 문제 시작 먼저 코드를 확인해 보자 일단 핵심코드는 $_GET으로 전달된 파라미터가 "hehe"라는 문자열인지 확인하는..