분류 전체보기
-
<Lord of SQL Injection> bugbearWargame/Lord of SQL Injection 2021. 11. 15. 00:17
bugbear 전달받은 no의 값은 prob, _, ., (), substr, ascii, =, or, and, 공백, like, 0x를 필터링한다. 전달받은 pw의 값은 싱글 쿼터(')를 필터링한다. 함수 및 연산자 대체 substr mid 또는 right 또는 left or || and && 또는 %26%26 공백 %09, %0a, %0b, %0c, %0d, %a0, /**/ like 또는 = in 쿼리의 조건을 참으로 만들기 위해 ?pw=&no=1%09||%092%09>%091을 입력하면 Hello 문이 출력된다. 쿼리의 조건을 거짓으로 전달하면 ?pw=&no=1%09||%092%09
-
<Linux 마스터 2급> 네트워크의 개요와 통신망 종류Linux 마스터 2급 2021. 11. 14. 17:50
■통신망 종류 네트워크 타입 컴퓨터 사이의 거리 영역 LAN 1m ~ 10m Room 10m ~ 1km Office Building MAN 1km ~ 10km City 10km ~ 100km Province WAN 100km 이상 State 1000km 이상 Continent Internet 10000km 이상 Inter-Continental 1. LAN(Local Area Network, 근거리 통신망) · 빌딩 내 혹은 근접한 거리의 빌딩들로 제한된 지역에 설치된 정보 기기들 사이의 고속 통신을 제공하는 통신망 · LAN의 종류에는 Ethernet, Token Ring, FDDI 등 LAN 종류 주요 특징 Ethernet / IEEE 802.3 LAN · 1980년 DEC, Intel, Xerox 회..
-
<Webhacking.kr> old-05Wargame/Webhacking.kr 2021. 11. 14. 01:42
old-05 로그인 버튼과 회원가입 버튼이 나타난다. 로그인 버튼을 누르면 로그인 화면이 나타난다. 회원가입 버튼을 누르면 접근할 수 없다고 한다. 먼저 로그인 화면에서 ' or 1=1-- 을 입력해보면 아무 일도 일어나지 않는다. Webhacking.kr의 아이디로 로그인해봐도 아무 일이 일어나지 않는다. 아마 'admin'으로 로그인하라는 것 같지만, 아무런 정보가 없다. 로그인 화면의 URL을 살펴보면 "/mem/login.php"이다. 여기서 "login.php"를 지우면 위와 같은 페이지가 나타나게 된다. 이를 디렉터리 인덱싱이라 한다. 디렉터리 인덱싱(Directory indexing) 취약점은 웹 서버의 잘못된 설정으로 웹 서버 디렉터리의 파일들이 노출되는 취약점으로, 디렉터리 리스팅 취약점..
-
<Lord of SQL Injection> darkknightWargame/Lord of SQL Injection 2021. 11. 13. 18:51
darkknight 'no'로 전달받은 값은 'prob', '_', '.', '()', 싱글 쿼터('), 'substr', 'ascii'를 필터링한다. 'pw'로 전달받은 값은 싱글 쿼터(')를 필터링한다. 참인 값인 ?pw=&no="" or 1을 입력하면 "Hello guest"를 출력한다. 거짓인 값을 입력하면 아무것도 출력하지 않는다. 참과 거짓만을 구분하므로 Blind SQL Injection을 수행할 수 있다. 이를 통해 pw의 길이를 알아보기 위해 ?pw=&no="" or length(pw) < 10을 입력하면 pw의 길이가 10보다 작은 것을 확인할 수 있다. ?pw=&no="" or length(pw) like 8을 통해 pw의 길이가 8인 것을 확인할 수 있다. 이제 한 글자씩 찾아야한다..
-
<Lord of SQL Injection> golemWargame/Lord of SQL Injection 2021. 11. 13. 16:26
golem 'prob', '_', '.', '()', 'or', 'and', 'substr(', '='을 필터링한다. 'pw'의 값을 알아내면 문제가 풀린다. '='이 필터링되는 경우에는 'like'를 사용하여 우회할 수 있다. 참으로 ?pw=' || 1 like 1%23을 입력하면 "Hello {$result[id]}"를 출력한다. 거짓으로 ?pw=' || 1 like 2%23을 입력하면 아무것도 출력하지 않는다. 참과 거짓으로 구분할 수 있기 때문에 Blind SQL Injection 공격을 하면된다. 먼저 pw의 길이를 알아보면 ?pw=' || length(pw) like 8%23을 입력하면 "Hello admin"을 출력하는걸로 봐서 pw의 길이는 8인 것 같다. 이제 한 글자씩 찾으면된다. ?p..
-
<Lord of SQL Injection> vampireWargame/Lord of SQL Injection 2021. 11. 13. 00:49
vampire 싱글 쿼터(')를 필터링하고, 전달받은 'id' 값을 소문자로 변환한다. 그리고 전달받은 'id' 값에 'admin' 문자열이 있으면 전달받은 'id' 값에서 'admin'을 지운다. 그런데 'id'의 값이 'admin'이 되야 문제가 풀린다. 'admin'을 한 번 없애기 때문에, 'aadmindmin' or 'adadminmin' or 'admadminin' or 'admiadminn' 을 'id' 값에 전달하면 'admin'이 된다. 문제가 풀리게 된다. 이 문제를 처음 접했을 때, 'admin'을 16진수로도 해보고, 여러 방법을 시도했다. 하지만 한 개 남겨진 싱글 쿼터(')를 해결할 수 없었다. SQL Injection은 창의력? 같은 것도 필요한 것 같다.