일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기업보안담당자
- SQLInjection
- 워드프레스 접속
- WarGame
- 정보보안
- Blind SQL Injection
- Los
- Shell Script
- 웹해킹 문제풀기
- 주요통신기반시설 쉘 스크립트
- 정보보호관리진단
- 한국정보보호교육센터
- sql inection 사이트
- 모의해킹
- 케이쉴드주니어
- 보안컨설턴트
- 블라인드 sql injection
- 웹해킹 공부
- 주요통신기반시설 shell script
- 카이섹
- 리눅스 취약점 점검
- 웹해킹 사이트
- 보안취업
- 국비지원
- webhacking.kr 1번 문제
- sql injection
- 취업연계
- 리눅스 취약점 진단
- 웹해킹 연습
- 케이쉴드
- Today
- Total
목록SQLInjection (15)
Youngjin's Log
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..
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되는 것만 우회하면 되는데, 여러 우회 방법이 존재하겠지만,소대문자로 우회하는 것을 시도해 보시면 좋을 것 같습니다.답은 다양한 형태로 올 수 있습니다.
8번 문제 - troll php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고 ereg함수를 이용해서 admin을 금지하고 있습니다.조건은 id만 명시하면 되고, 출력된 id가 admin이라면 클리어 되는 문제입니다. TIP쿼리문은 유연한 문법이기 때문에, 대소문자가 크게 상관없는 것 같습니다.(ex - SELect == select, GUEST == guest)소문자로 admin이라고 명시되어 있는 것만 우회해 주시면 될 것 같습니다.답은 다양한 형태로 올 수 있습니다.
7번 문제 - orge php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고 or, and를 금지하고 있습니다.pw를 get방식 문자열로 받아서 쿼리문을 입력하고 출력된 id값을 페이지에 표시해줍니다.그리고 addslashes함수를 이용하여 입력받은 pw문자열 중에서 싱글쿼터, 더블쿼터, 널, 역슬래시 앞에 역슬래시(\)를 추가하여 반환해줍니다.그렇게 반환받은 pw문자열을 다시 쿼리문에 입력하고 쿼리가 정상적으로 입력되고 동작했다면 출력된 pw와 addslashes함수로부터 반환 받은 문자열을 비교합니다. 두개의 문자열이 같으면 클리어 되는 문제입니다. TIP문제의 핵심은 addslashes함수입니다. 첫번째 쿼리문을 무력화시켜서 admin을 뽑아 낸다고 하더라도 a..
6번 문제 - darkelf php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고 or, and을 금지하고 있습니다.pw를 get방식의 문자열로 받아서 쿼리문을 입력하고 결과에 admin이 있다면 클리어 되는 문제입니다. TIP비슷한 기본 패턴의 문제 중 하나입니다.다만, or, and를 우회한다는 것이 다를 뿐입니다.or, and를 우회할 수 있는 방법을 찾아 보시면 쉽게 풀 수 있을 것 같습니다.and는 URL 인코딩이 되어진 형태로 입력해주셔야 입력이 가능합니다.or는 우회하는 그대로 입력해 주셔도 됩니다.답은 다양한 형태로 올 수 있습니다.