일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 증적 사진
- lord of sql injection
- 로그인페이지
- 웹 해킹
- php
- 게시판 만들기
- cookie 탈취
- CTF
- Error based sql injection
- 로그인
- union sql injection
- FridaLab
- sql injection point
- 웹 개발
- MySQL
- XSS
- file upload
- sql injection
- blind sql injection
- 문제 풀이
- csrf
- Python
- Los
- 모의해킹
- 웹개발
- 과제
- 보고서
- 보안 패치
- JS
- 세션
- Today
- Total
목록전체 글 (127)
Almon Dev

ctf 문제 풀이 SQL Injection Point 1 기능 분석SQLI Point를 찾기 위해서 사이트의 기능들을 살펴보고 어디서 sql 질의를 사용하는지 추측해 봤습니다. login.php예상 sql : select * from member where id='[입력]' or select * from member where id='[입력]' and pw='[입력]'로그인 완료 시 쿠키로 user와 PHPSESSID를 생성합니다. 로그인에서 sql injection을 찾아보려 했으나 '나 \, " 와 같은 sql 질의문의 구조를 변화시키는 문자를필터링하는 것으로 보입니다. signup.html예상 sql : insert into member (id, pw) values ('[입력]', '[입력]')..
8주 차 정리 SQL Injection Point 찾기 SQL injection Point DB에 SQL 질의문을 사용하는 곳파라미터Cookie나 Header와 같이 눈에 안 보이는 입력도 있음 주의사항SQL과 서버 측의 코드를 생각하며 결과가 출력되는 과정을 추측해 보기SQL문을 막 날려보면 방화벽에 차단될 가능성이 있음 Cookie에서 SQL Injection$sql = "select * from member where user_id=$_COOKIE['user'];" 쿠키의 값을 이용해서 sql문을 사용할 경우 쿠키를 이용해 sql injection이 가능할 수 있습니다. Order by에서 SQL Injection$column_name = $_POST['ord'];$sql = "select * fr..

ctf 문제 풀이 SQL Injection 6 풀이SQL Injection 5와 php로직과 sql문 자체는 같지만 에러가 출력되지 않는 경우입니다.Blind Sql Injection을 사용해 보겠습니다. 1> SQLI 포인트 찾기normaltic' and ('1' = '1') and '1' = '1 , normaltic' and ('1' = '2') and '1' = '1을 이용해서 참과 거짓의 응답을 확인합니다.=> 결과가 참 : 302 리다이렉트=> 결과가 거짓 : 200 OK 2> Select가 가능한지 확인 (필터링 X)normaltic' and ((select 1) = 1) and '1' = '1302 응답이 온 것으로 필터링이 되지 않은 것을 확인합니다. 3> 공격 format 만들기..

ctf 문제 풀이 SQL Injection 5 풀이SQL Injection 5역시 4번과 php 로직은 같은것으로 보입니다.sql injection3에서 만들었던 python을 이용해서 풀어보겠습니다. 1> DB명 추출select database()=> DB 명 : sqli_2_2 2> Table명 추출select table_name from information_schema.tables where table_schema='sqli_2_2' limit 0,1=> Table 명 : flagTable_this, member 3> Column명 추출select column_name from information_schema.columns where table_schema='sqli_2_2' and t..

ctf 문제 풀이 SQL Injection 4 풀이사이트의 로직은 sql injection3와 동일한 것으로 보입니다.sql injection3에서 만들었던 python을 이용해서 풀겠습니다. 1> DB명 추출select database()=> DB 명 : sqli_2_1 2> Table명 추출select table_name from information_schema.tables where table_schema='sqli_2_1' limit 0,1=> Table 명 : flag_table, member 3> Column명 추출select column_name from information_schema.columns where table_schema='sqli_2_1' and table_name=..

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문에 에러가 난 것을 알..