일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 블라인드 sql injection
- 보안컨설턴트
- 기업보안담당자
- sql injection
- webhacking.kr 1번 문제
- 케이쉴드
- 모의해킹
- 리눅스 취약점 점검
- 케이쉴드주니어
- sql inection 사이트
- 주요통신기반시설 쉘 스크립트
- WarGame
- 정보보안
- 리눅스 취약점 진단
- 웹해킹 사이트
- Shell Script
- 취업연계
- 워드프레스 접속
- 보안취업
- 주요통신기반시설 shell script
- Los
- 카이섹
- 국비지원
- 웹해킹 공부
- 정보보호관리진단
- 웹해킹 문제풀기
- 한국정보보호교육센터
- SQLInjection
- 웹해킹 연습
- Blind SQL Injection
- Today
- Total
목록Web (19)
Youngjin's Log
1번 문제 cookie값 변조 문제입니다.user_lv값이 5보다 크고 6보다 작아야 클리어할 수 있습니다. 쿠키값 변조는 여러 방법이 있지만, 저는 가장 편한 방법인 브라우저 콘솔 창에 직접 입력했습니다.이후 쿠키값을 유지한 상태에서 다시 페이지에 접근하면 문제를 클리어할 수 있습니다.
webhacking.kr에 접속하시면 보시다시피, 회원가입란이 보이지 않습니다.여러방법을 활용할 수 있겠지만, 가장 간단하다고 생각되는 방법을 알려드리겠습니다.일단, 브라우저에서 F12를 눌러줍니다. 그러면 회원가입부분이 주석처리 되어 있다는 것을 확인할 수 있습니다.주석부분을 마우스 우클릭하여 Edit as HTML을 눌러주고 주석 문구를 삭제합니다. 바로 회원가입란을 이용할 수 있습니다. 원하는 회원 정보를 입력하시고, 맨 아래칸 암호화되어 있는 문구를 디코딩해주셔야합니다.암호문 뒤에 패딩형태로 봐서, Base64로 인코딩되어 있다고 예상할 수 있습니다. 인터넷에서 무료로 이용할 수 있는 Base64디코더를 활용해서 정상적인 값이 나올 때까지, 디코딩해주시면 됩니다.그 디코딩 값을 회원가입 맨 마지막..
15번 문제 - assassin php 코드 분석쿼리 조건문에 pw가 like로 되어 있습니다.입력한 값에 해당하는 id가 출력되는 코드입니다.그 출력되는 아이디가 admin일 경우 클리어 됩니다. TIP쿼리 조건문에 like를 유심히 보시면 됩니다.like는 흔히쓰는 =과 다른 개념이기때문에, 활용할 수 있는 방법이 많습니다.예를 들어, %를 입력할 시에 모든 값을 출력하고 %__%라고 입력하면 2글자이상의 결과를 출력합니다.또한 %test로 뒤에 test가 붙는 문자열을 출력할 수도 있고 test%로 test가 앞에 붙어 잇는 문자열을 출력할 수도 있습니다.흔히 like는 웹페이지에 상품 또는 게시글 검색란에 많이 쓰이는 방법이라고 생각하시면 좋을 것 같습니다.이 개념을 이용하여 1%, 2% 등등 어..
14번 문제 - giant php 코드 분석 get방식으로 변수를 전달받고 전달받은 변수는 길이를 체크합니다. 길이가 1이상일 경우 코드를 실행하지 않습니다.이말은 즉, shit라는 파라미터에는 단 길이1의 값만 입력되어야한다는 것입니다.그렇다면, 왜 이렇게 되어 있을지, 밑에 쿼리문을 보시면 됩니다.쿼리문을 입력할때, 띄어쓰기가 제대로 되어있지 않습니다. fromprob_ 이런식으로 정상적인 쿼리문이 아니기에길이가 1로된 값을 넣어서 from과 테이블명을 띄어주면 클리어하기 되는 문제입니다.다만, preg_match로 흔히쓰이는 값들을 금지해놓았습니다. TIP공백을 넣어주면되는데, 흔히 우리가 사용하는 공백 문구들이 금지되어 있기때문에, 공백 우회기법을 사용하면 되겠습니다. 공백 우회기법에는 다양한 기..
13번 문제 - bugbear php 코드 분석preg_match함수를 이용하여 테이블에 직접적인 접근을 금지하고 있습니다.그리고 substr, ascii, =, or, and, 공백, LIKE, 16진수표시를 금지하고 있습니다.첫번째 쿼리문에서 get방식으로 pw와 정수형의 no을 입력 받습니다.쿼리문을 돌려서 출력되는 id를 화면에 표시합니다.입력 받은 pw의 문자열을 addslashes함수를 이용하여 문자열에 싱글쿼터, 더블쿼터, 널값, 역슬래시 앞에 역슬래시(\)를 추가하여 pw변수로 반환합니다.반환된 pw를 두번째 쿼리문에 입력하여 쿼리문이 정상동작하면 출력된 pw값과 입력되어 addslashes로 반환된 pw값을 비교하여 두개의 값이 같다면 클리어 되는 문제입니다. TIP입력되어 addslas..
세션 가로채기(Session Hijacking) 실습은 반드시 실습자 본인의 모의해킹을 위해 만들어 놓은 게시판을 이용하시길 바랍니다. 실습 환경Windows - 본인 실습게시판 서버Ubuntu Linux - 가로챈 세션 값을 받기위한 본인 공격자 실습 서버, apache/php가 정상 작동해야 합니다.admin2 - 공격대상asd - 공격자 공격대상(admin2)이 접근할 디렉토리에 권한을 모두 접근할 수 있게 바꿔줍니다. 공격대상(admin2)이 접근하여 실행시킬 php코드를 작성해줍니다. getsession.php 코드 분석1번째 줄 : $cookies라는 변수에 GET방식으로 받은 값을 할당합니다.2번째 줄 : fopen을 이용하여 getsession.txt파일을 a+(읽고 쓰기)권한으로 실행합니..
12번 문제 - darkknight php 코드 분석 preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고 substr, ascii을 금지시켰습니다.첫번째 쿼리문에 세가지의 조건이 존재하고 문자열의 pw와 정수형의 no을 입력 받습니다.입력 받아서 출력된 id를 보여주고 입력받은 pw문자열을 addslashes함수로 싱글쿼터, 더블쿼터, 널, 역슬래시 앞에 역슬래시(\)를 추가하여 반환합니다.반환받은 pw문자열을 두번째 쿼리문에 입력하고 출력된 pw와 반환된pw를 비교하여 일치할 경우, 클리어 되는 문제입니다. TIP문제 코드에서 addslashes함수만 보이면 이제 다들 아실 것 같습니다. Blind SQL injection문제입니다.substr은 right, left, ord함수..
11번 문제 - golem php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고 앞전에 유용하게 쓰였던 or, and, substr을 금지하고 있습니다.pw를 get방식으로 문자열로 받아서 쿼리문이 정상작동하면 출력된 id를 보여주고,입력받은 pw문자열을 addslashes함수로 싱글쿼터, 더블쿼터, 널, 역슬래시 앞에 역슬래시(\)를 추가하여 반환해줍니다.반환받은 문자열을 두번쨰 쿼리문에 입력하게 되고, 출력된 pw와 입력받은 pw를 비교하여 같은 경우 클리어되는 문제입니다. TIP 이전 문제에서도 많이 풀었던 방식인 Blind SQL injection문제입니다. addslashes에 걸리지 않고 출력시킨 pw와 같으려면 어쩔 수 없이 정확한 값을 넣어주는 수 밖에..
10번 문제 - skeleton php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.조건문에 세가지 조건이 존재하고 마지막 and 연산자 뒤에 false 값을 주었습니다.쿼리문에 명시되어 있는 guest가 아닌 admin을 불러오면 클리어 되는 문제입니다. TIP뒤에 있는 and연산자는 크게 신경 쓰실 필요없습니다. 주석처리해주면 됩니다.이전 문제에서 풀었듯이 admin을 불러오게 sql문을 조작해 주시면 되겠습니다.답은 다양한 형태로 올 수 있습니다.
9번 문제 - vampire php 코드 분석preg_match함수로 테이블의 직접적인 접근을 금지하고 있습니다.그리고 입력받은 문자열이 admin일 경우 공백으로 바꾸는 str_replace함수를 사용하고 있습니다.쿼리 조건문에는 한개의 조건만 존재하며 admin을 출력시키면 클리어 되는 문제입니다. TIP이전에 푸셨던 문제들과 크게 다를 바가 없습니다. admin이 replace되는 것만 우회하면 되는데, 여러 우회 방법이 존재하겠지만,소대문자로 우회하는 것을 시도해 보시면 좋을 것 같습니다.답은 다양한 형태로 올 수 있습니다.