[취업반 스터디 2달 4주차: 과제]

Minseok Jo·2024년 2월 18일
post-thumbnail

2달차 4주차 과제는 다음 4가지와 같다.

  1. 수업 내용 정리
  2. SQL Injection 공격 기법 정리
  3. CTF 문제 풀이 (SQLi : Advanced)
  4. SQL 쿼리 의미 생각해보기
    • sotingAd=,(case+when+ascii(substr((select+user+from+dual),1,1))=0+then+1+else+(1/0)+end)
    • page=1&board_id=&sorting=A.REG_DT&sotingAd=ASC;if+substring((select%20user_name()),1,1)=%27a%27+waitfor+delay+%270:0:1%27&startDt=&endDt=&keyword=

1, 2번 복습 내용은 "스터디 정리" 카테고리에 기록해두었다.
따라서 3번 과제부터 정리하였다.


1. CTF 문제풀이 (SQLi : Advanced)

[SQL Injection Point 1]

(1) 주어진 문제는 다음과 같다.

(2) 로그인 → 마이페이지

(3) 쿠키값을 통해 데이터 출력

(4) SQL 질의문 추측
select (컬럼) from (테이블) where user_id = '쿠키값'

(5) SQL 질의문 삽입 가능 여부 확인
○ Cookie : user = ttest' and '1'='1

(6) 참/거짓 조건 실행결과 확인
○ 참/거짓 조건에 따라 유저 정보 출력 여부가 차이남

(7) 파이썬 스크립트 실행



[SQL Injection Point 2]

(1) 주어진 문제는 다음과 같다.

(2) 로그인 → 게시판 → 게시글 검색

(3) SQL 질의문 추측
select (컬럼) from (테이블) where option_val like '%board_result%'

(4) SQL 질의문 삽입 가능 여부 확인
○ option_val : 1=1 and username

(5) 참/거짓 조건 실행 결과 확인

(6) 파이썬 스크립트 실행



[SQL Injection Point 3]

(1) 주어진 문제는 다음과 같다.

(2) 로그인 → 게시글 → 게시글 검색

(3) SQL 질의문 추측
select (컬럼) from (테이블) where option_val like '%board_result%' order by sort

(4) SQL 쿼리문 삽입 가능 여부 확인
○ sort : case when (1=1) then 1 else (select 1 union select 2) end

(5) 참/거짓 조건 실행 결과 확인

(6) 파이썬 스크립트 실행



[SQL Injection Point 4]

(1) 주어진 문제는 다음과 같다.


(2) 로그인 → 마이페이지

(3) 쿠키값을 통해 데이터 출력

(4) SQL 질의문 추측
select (컬럼) from (테이블) where user_id = '쿠키값'

(5) SQL 질의문 삽입 가능 여부 확인
○ Cookie : user = ttest' and '1'='1 / ttest' and '1'='2
● 참/거짓 조건으로 실행한 결과가 동일

(6) 참/거짓 조건의 실행 결과에 따라 에러가 발생하도록 유도
○ Cookie : user=ttest'and (select 1 union select 2 where (1=1)) and'1'='1
● 참 조건일때 행렬이 되어 오류 발생, 거짓 조건일때 select 1이 되어 개인정보 출력

(7) 파이썬 스크립트 실행

'CTF 문제풀이' 과제 완료


0개의 댓글