일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹 개발
- 로그인
- file upload
- XSS
- 게시판 만들기
- MySQL
- 웹개발
- 과제
- 보고서
- 세션
- lord of sql injection
- 모의해킹
- 증적 사진
- union sql injection
- Python
- FridaLab
- 문제 풀이
- Error based sql injection
- Los
- CTF
- sql injection point
- JS
- cookie 탈취
- sql injection
- php
- 보안 패치
- csrf
- 로그인페이지
- blind sql injection
- 웹 해킹
- Today
- Total
Almon Dev
모의해킹 공부 (6주차 정리) 본문
6주 차 강의
SQL Injection
사용자가 sql문을 삽입해서 인증을 우회하는 방법
- DB를 사용하는 곳을 찾아야 함
- db에서 가져온 데이터가 화면에 출력되는가?
- 데이터가 나오는 경우 : 게시판 => 게시글이나 작성자 등
- 나오지 않는 경우 : 로그인, 중복체크 => 결과만 알 수 있음
데이터 추출 방법
웹페이지에 데이터가 출력되는 경우 union을 이용해서 데이터를 출력할 수 있습니다.
union : select를 한번 더 사용 가능하게 해주는 sql문법
ex) select * from member union select ~~~
=> 컬럼수가 같아야 합니다.
order by : 특정 컬럼을 기준으로 정렬하는 sql 문법
ex) order by [column or index] [desc/asc]
=> select의 가장 뒤에 위치하며, 컬럼명이나 컬럼의 인덱스를 기준으로 정렬합니다.
=> 인덱스를 이용해서 select문에서 가져오는 컬럼의 개수를 확인할 수 있습니다.
UNION SQL Injection Process
1. SQL Injection의 포인트 찾기 => sql injection이 가능한 입력창 찾기
2. Column 개수 확인하기 => order by를 이용해서 column 개수 확인
3. 출력되는 컬럼의 위치 찾기 => select문의 몇 번째 column이 화면에 출력되는지 확인
4. DB 이름 확인 => database()를 이용해서 db이름 확인
5. Table 이름 확인 => information_schema db의 tables를 확인
=> select table_name from information_schema.tables where talbe_schema='DB_NAME'
6. Column 이름 확인 => information_schema db의 columns를 확인
=> select table_name from information_schema.columns
where talbe_schema='DB_NAME' and table_name='TABLE_NAME'
7. 데이터 추출
과제
1. union sql injection 복습
2. ctf사이트의 doldol 데이터만 출력하기
3. ctf 문제 풀기
4. 웹개발
=> 로그인
=> 회원가입
=> 마이페이지
=> 게시판
'웹 해킹 > 웹 해킹' 카테고리의 다른 글
모의해킹 공부 8주차 (SQL Injection) (3) | 2024.12.06 |
---|---|
모의해킹 공부 7주차 (SQL Injection) (2) | 2024.11.29 |
모의해킹 공부 (5주차 정리) (1) | 2024.11.15 |
자바스크립트로 키로거 만들기 (2) | 2024.11.07 |
모의해킹 공부 (4주차 강의 정리) (2) | 2024.11.07 |