일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- lord of sqlinjection`
- 자바 문법
- 스프링 종류
- 마이크로서비스 아키택트
- 자바 has-a
- Los
- APM
- 소켓
- 해킹
- lord of sqlinjectin
- 클라이언트
- php
- 자바 Array list
- 쿠키
- 세션쿠키
- Lord of sqlinjection
- XSS
- 자바 is-a
- 보안
- 스프링
- injection
- 자바
- 서버
- sql
- 웹 개발
- Today
- Total
목록injection (3)
LJ

12번 다크 나이트 문제이다. 위의 코드를 보면 첫번째 쿼리에선 prob, _, ., () 문자가 포함된 경우 "No Hack _" 메시지를 출력하고 종료하게 되고 ' 문자가 포함된 경우 "HeHe" 메시지를 출력하고 종료하게 되고 마찬가지로 ', substr, ascii, = 문자가 포함된 경우 "HeHe" 메시지를 출력하고 종료하는데 검사하는 파라미터는 이 조건 하 나만 no의 파라미터이다. 우리는 no 값 뒤에 인젝션을 시도하여 원하는 관리자의 비밀번호를 가져올 것이기 때문에 마지막 입력값 검증 조건이었던 ', substr, ascii, = 를 사용하지 않아야한다. 그러면 substr 을 대신 할 함수 -> substring, mid 가 있다. = 도 like를 대신해 사용한다..

3번째 문제 GOBLIN 이다. 파라미터를 확인해 봤을 때 id는 고정이어서 no 파라미터를 활용해야 한다 if($result['id'] == 'admin') solve("goblin"); 를 봤을 때 id 값을 admin으로 만들어야 결과를 볼 수 있는 것을 볼 수 있다. admin으로 만들려면 no =1 or id='admin' 구문의 들어가야 하는데 싱글쿼터를 필터링 해 넣을 수 없다. 그러므로 admin 을 hex 값으로 변환 해 넣어준다.( DB에 따라 hex값이 입력되면 String값으로 인식이 되어 sql injection 공격이 가능하다.) 위의 사진처럼 hex 값으로 변환해 삽입했을 때 문제가 해결된다.

lord of sqlinjection 사이트에 접속했을 때 처음으로 접할 수 있는 문제이다. 1. gremlin 문제 코드를 보면 $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'"; 이 부분을 보면 id 와 pw 둘 다 참이어야 된다고 하지만 if($result['id']) solve("gremlin"); 이 부분을 통해 아이디만 찾으면 gremlin이 해결될 수 있다는 것을 볼 수 있다. 1. id 와 pw 둘다 참 id 파라미터 와 pw 파라미터 두 값에 ' OR '1=1 구문을 추가시켜 항상 참으로 받아들이게 구문을 만들면 문제가 해결된다. ( false AND false OR tru..