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

22번 다크 아이즈 이다. 21번 문제와 같이 에러 기반 인젝션이다. 다른점이 있다면 if를 사용하지 못한다. (case when 도 사용하지 못한다.) import requestsurl = "https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php"cookie = dict(PHPSESSID="4jnokk4mvhdm24glsa8dsqr45v")def pw_length(): print("**** find for pw length ****") for i in range(0, 20): param = f"?pw=%27%20or%20id=%27admin%27%20and%20(select%201%20u..

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..
저번주 스터디를 간단히 복습해보자..! 저번주에는 웹 서버와 클라이언트의 데이터 전달 구조에 대해 알아보았다. 클라이언트에서 웹 서버로 정적페이지만을 요구하면 바로 웹 서버에서는 정적 페이지를 응답하고 만약 클라이언트가 요청하는 항목에 동적페이지가 있으면 WAS로 넘겨서 요청받은 정보를 실행하여 웹 서버에게 전달하여 클라이언트는 순수 Html 태그로만 구성된 페이지를 볼 수 있게 된다는 것이다. 또 저번주에 쿠키와 세션을 공부했었다 쿠키는 클라이언트에 저장하는 저장정보 세션은 서버측에 저장되는 클라이언트 측 정보 이때 서버에는 세션테이블이 생성되어 그 안에 세션ID가 저장된다. 세션ID는 쿠키에 저장되는 세션을 식별하기 위한 정보이며 쿠키와 함께 서버로 전달된다. 여기까지 복습을 마치고 이번 스터디에서 ..