일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- css
- JS
- lord of sqli
- Error based sql injection
- file upload
- union sql injection
- Cross Site Request Forgery
- sql injection
- cors
- XSS
- 쿠키
- lord of sql injection
- 세션
- 모의해킹
- csrf
- blind sql injection
- 웹개발
- 로그인
- Los
- Python
- JWT
- CTF
- sql injection point
- 게시판 만들기
- cookie 탈취
- Reflected Xss
- 과제
- php
- 로그인페이지
- MySQL
- 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. 웹개발
=> 로그인
=> 회원가입
=> 마이페이지
=> 게시판
'모의해킹 > 모의해킹' 카테고리의 다른 글
ctf 풀이 ( SQL Injection 2 ) (1) | 2024.11.24 |
---|---|
ctf 풀이 (SQL Injection 1) (0) | 2024.11.23 |
ctf 풀이 (Pin Code Crack) (2) | 2024.11.20 |
ctf 풀이 (admin is mine) (1) | 2024.11.19 |
ctf 풀이 (Secret Login) (2) | 2024.11.18 |