일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보보안
- 한국정보보호교육센터
- 웹해킹 사이트
- 케이쉴드주니어
- 모의해킹
- WarGame
- Blind SQL Injection
- 웹해킹 연습
- Shell Script
- 워드프레스 접속
- Los
- webhacking.kr 1번 문제
- SQLInjection
- 리눅스 취약점 진단
- 카이섹
- 기업보안담당자
- 웹해킹 문제풀기
- 블라인드 sql injection
- 취업연계
- sql inection 사이트
- 정보보호관리진단
- 보안취업
- sql injection
- 웹해킹 공부
- 리눅스 취약점 점검
- 주요통신기반시설 shell script
- 케이쉴드
- 주요통신기반시설 쉘 스크립트
- 국비지원
- 보안컨설턴트
- Today
- Total
목록WarGame (12)
Youngjin's Log
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는 우회하는 그대로 입력해 주셔도 됩니다.답은 다양한 형태로 올 수 있습니다.
5번 문제 - wolfman php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고 공백을 넣지 못하게 해놨습니다.pw를 문자열로 받아서 쿼리문을 입력하고 결과에 admin이 있으면 클리어 되는 문제입니다. TIP이번 문제는 공백을 우회하기만 하면 쉽게 풀 수 있는 문제입니다.공백을 우회할 수 있는 방법에는 다양한 방법이 존재하므로 다양한 방법으로 시도해 보시면 좋을 것 같습니다.답은 다양한 형태로 올 수 있습니다.
4번 문제 - orc php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.sql 쿼리문에 id는 admin이라고 명시되어 있으며, pw부분을 get방식으로 입력 받고 있습니다.쿼리문이 정상적으로 DB에서 동작하면 테이블 내에 id(admin이 아닐수도 있습니다.)를 불러오고 id값이 있을 경우 Hello admin을 찍어줍니다.그리고 입력 받았던 pw값을 addslashes함수를 이용하여 싱글쿼터, 더블쿼터, 역슬래시, 널값 앞에 역슬래시(\)을 추가하여 문자열을 반환해 줍니다.(ex. 'admin' -> \'admin\')반환 받은 pw를 다시 쿼리에 넣고 테이블 내에서 admin의 pw를 뽑은 다음, 뽑은 pw와 addslashes에서 반환된 pw을 비교하여 같을 경우..
3번 문제 - goblin php 코드 분석preg_match함수로 테이블에 직접적인 접근을 금지하고 있습니다.그리고, 앞전에 유용하게 쓰이던 쿼터를 금지시켰습니다.id값은 guest로 명시되어있고 no값이 정수형으로 표시되어 있고 get방식으로 값을 입력합니다.불러온 id값이 admin일 경우 클리어 됩니다. TIPno값은 정수형으로 입력받고 있으므로 앞전에서 쿼터를 사용하여 id 또는 pw문자열을 닫아준 것 처럼, 쿼터를 사용하여 값을 무력화 시킬 필요는 없습니다.그렇다면 앞에 명시된 guest의 값은 no의 false로 인해서 무력시킬 수 있고, 새로 조건을 입력해 줄 수 있습니다. 새로운 조건을 입력할 경우에는 쿼터를 사용할 수 없으므로 쿼터를 대신하여 문자열을 넣을 수 있는 방법을 찾아보시면 될..