일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Cross Site Request Forgery
- lord of sqli
- blind sql injection
- 로그인
- css
- csrf
- 게시판 만들기
- JS
- Error based sql injection
- lord of sql injection
- Python
- JWT
- Reflected Xss
- 모의해킹
- file upload
- 로그인페이지
- php
- 과제
- Los
- cookie 탈취
- sql injection point
- 세션
- 쿠키
- sql injection
- cors
- union sql injection
- MySQL
- CTF
- XSS
- 웹개발
- Today
- Total
목록sql injection (24)
Almon Dev
7주 차 정리 SQL Injection UNION SQL injectionSQL 질의문의 결과가 화면에 출력될 때 사용합니다.ex) 마이페이지, 게시판 등UNION : select문을 실행한 뒤 select를 한번 더 사용하기 위해서 사용합니다.=> 첫 번째 select문과 결과가 합쳐져서 하나의 테이블이 되기 때문에 column의 수가 같아야 합니다.order by : column명이나 index를 이용해서 결과를 정렬해 주는 sql문입니다.=> index로 정렬이 가능한 점을 이용해서 select문의 column이 몇 개인지 확인합니다.limit [offset] [count] : offset부터 count만큼 개수의 결과를 가져옵니다.ex) limit 0,2 첫 번째부터 2개의 결과를 가져옵니다. U..

ctf 문제 풀이 SQL Injection 2 풀이1> sql injection 확인우선 주어진 normaltic을 입력해 봅니다. 그 외에 의미 없는 값인 a, b, c와 같은 값을 입력해 봅니다.ID에는 c가 나타났지만 info는 비어있습니다. a' #을 입력해도 ID는 그대로 뜨는 반면 info는 나타나지 않습니다.그렇다면 ID는 유저가 입력한 값을 그대로 나타내고, info는 db에서 가져온다고 생각해도 괜찮을 것 같습니다. a'처럼 sql문이 에러가 뜰만한 문자를 보내면 결괏값이 나오지 않는 것으로 봐서는 sql injection이 가능하다고 생각됩니다. 2> column 개수 확인하기 ( 6개 )a' order by 7#에서는 ID값 역시 나오질 않는 것으로 보아 sql문에 에러가 난 것을 알..

ctf 문제 풀이 SQL Injection 1풀이1> sql injection 확인ma%' and '1' = '1' # 을 실행해서 sql injection이 가능하다는 것을 확인했습니다. 2> column 개수 확인하기ma%' order by 5# 을 했을 때 데이터가 출력되지 않으므로, column의 개수는 4개로 확인됩니다. 3> 출력되는 column의 위치 찾기ma%' union select 1,2,3,4 #을 통해 4개의 column 중 몇 번째가 출력되는지 확인했습니다.4개 모두 출력이 됩니다. 4> db명 알아내기(sqli_1)ma%' union select 1,2,3,database() #으로 db의 이름을 추출합니다. 5> table이름 알아내기 (flag_table, plusFlag_T..
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의 가장 뒤..

ctf 문제풀이 Secret Login 풀이1> doldol / dol1234 로그인해 보기로그인 성공 시 302(리다이렉트) 반환 > index.php로 이동 -> 닉네임 표시 2> sql injection 확인아이디와 비밀번호 입력창 모두 sql injection이 가능하고,sql문이 아이디와 비밀번호를 한 번에 검증하는 것으로 추측됩니다.UserId=doldol'#&Password=dol1234 => id 입력이 sql injection이 가능한지 확인UserId=doldol'#&Password=dol1234'# => 비밀번호 입력 sqli 가능 확인UserId=doldol'#&Password=testdol1234 => sql에서 비밀번호를 함께 검사하는지 확인아이디 입력창에서 #으로 주석처리를 했..

ctf 문제풀이 Login Bypass 4 풀이1> doldol / dol1234로 로그인해 봅니다.post요청으로 아이디, 비밀번호를 보낸 뒤, 로그인에 성공하면 302 리다이렉트 결과를 응답합니다. 2> sql injection 확인지난번 문제와 마찬가지로 아이디 입력은 sql injection이 존재하고, 비밀번호 입력은 존재하지 않습니다.UserId=doldol'+and+'1'%3d'1 >> doldol' and '1'='1 3> sql에서 가져오는 컬럼 개수 확인하기 (order by 사용)UserId=doldol'+order+by+2+desc# 를 통해 받아오는 컬럼의 개수가 2개인 것을 확인 4> 로그인 코드 예상해 보기db에서 비밀번호와 닉네임을 받아와서 인증절차를 따로 거치는 코드로 예상..

ctf 문제풀이 Login Bypass 3 풀이1> doldol / dol1234로 로그인해봅니다. 2> 리피터를 통해서 sql injection 확인해 보기id는 sql injection이 가능하고, password는 불가능합니다. 3> sql injection을 통해 가져오는 컬럼 개수 확인해보기 (컬럼은 2개)ex) UserId=doldol' order by 2 desc# 4> 로그인 코드 예상해 보기$sql = "select password,nickname from member where id='$input_id'";if( $input_pass == $db_pass ) { // 로그인} 5> normaltic3로 로그인해보기 (union 사용)UserId=doldol'+union+select+'..
5주 차 강의 1개월 정리웹서버WebServer : 정적인 페이지를 전송WebApplicationServer(WAS) : 동적으로 페이지를 생성DataBase : 데이터를 저장해 두는 공간Browser : 웹서버로부터 전송받은 데이터를 화면에 출력해 줌로그인식별 : 많은 데이터중에서 하나를 골라내는 것인증 : 본인이 맞는지 확인하는 것쿠키 : 브라우저에 데이터를 저장하는 방식세션 : 서버에 데이터를 저장하는 방식세션 ID : 어떤 세션을 사용하는 유저인지 구별하는 식별정보버프스위트웹 프록시 툴 : 서버와 클라이언트 사이에서 주고받는 데이터를 읽거나 변경가능 SQL Injection사용자가 입력한 값을 검증하지 않고 sql쿼리문에 넣을 때 발생하는 취약점입니다.// 로그인 쿼리문$sql = "select ..