일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lord of sqli
- 쿠키
- Python
- 로그인
- lord of sql injection
- 과제
- csrf
- 게시판 만들기
- php
- cors
- CTF
- Error based sql injection
- 로그인페이지
- css
- 웹개발
- JS
- cookie 탈취
- Reflected Xss
- XSS
- sql injection point
- blind sql injection
- Cross Site Request Forgery
- union sql injection
- MySQL
- 세션
- sql injection
- Los
- JWT
- 모의해킹
- file upload
- Today
- Total
목록전체 글 (90)
Almon Dev

ctf 문제 풀이 SQL Injection 3 풀이1> UNION SQLi 확인normaltic/1234로 로그인을 해봅니다.로그인에 성공하면 닉네임이 출력되는 마이페이지가 나옵니다.=> 데이터가 화면에 출력되므로 UNION SQLi가 가능해 보입니다. 아이디 입력창은 SQLi가 가능하고, 비밀번호는 불가능합니다. => 식별 인증 분리 column의 개수는 2개인 것을 확인하고 union select를 시도해 보았으나 실패했습니다.비밀번호를 해시화해서 저장하는 것 같습니다.이 경우 해시의 알고리즘을 모른다면 union sqli로 로그인을 우회하는 것은 힘들어 보입니다.(md5, sha256 X) 2> Error Based SQLi 확인normaltic'를 이용해 syntax에러를 발생시키니 에러가..
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 문제 풀이 Pin Code Crack 풀이1> 1111 보내보기checkOTP.php에 get으로 핀번호를 보내는 것을 확인했습니다. 2> 공격방법 생각해 보기핀번호의 범위가 정해져 있고, 여러 번 시도해도 잠금이 걸리지 않으니 브루트 포스 공격이 적당할 것 같습니다.버프스위트의 intruder를 이용해서 시도해 보겠습니다. 3> burp suite/6/checkOTP.php?otpNum=§1111§의 §사이의 값을 0000부터 9999까지 1씩 증가하면서 요청을 보냅니다.그런데 무료버전의 burp는 매우 느리기 때문에 python을 사용하도록 하겠습니다. 4> python실패했을 때의 응답인 와 비교해서다른 응답이 온다면 반복문을 멈추고 결과를 출력합니다.1021을 입력하면 index.php로..

ctf 문제 풀이 admin is mine 풀이1> doldol / dol1234 로그인해 보기 => loginProc.php에 get메서드로 아이디와 비밀번호를 전달 => 로그인에 성공하면 {result: 'ok'}를 응답하고 index.php로 이동 2> index.php에 접근해 보기자바스크립트로 login.php로 리다이렉트 시키는 것이 보입니다.그리고 그 밑에 html코드가 그대로 노출되네요. 3> js 확인해 보기서버에서는 결괏값으로 {result: "ok/fail"}를 응답하고 있습니다.그렇다면 클라이언트 측에서 로그인에 성공했을 때 리다이렉트를 시켜주는 자바스크립트 코드가 있어야 합니다. 4> 로그인 로직 추측1. 아이디와 비밀번호를 get으로 받아옵니다.2. 서버에서 아이디와 비밀번호를 ..

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에서 비밀번호를 함께 검사하는지 확인아이디 입력창에서 #으로 주석처리를 했..