주요 취약점_Blind SQL Injection
1. dvwa(low) > blind SQL Injection 탭으로 이동
2. user ID에 숫자, 문자 넣어보기 -> 여기선 숫자를 넣는 것이 맞음
3. User ID에 쿼리 넣기
> 1' and length(database()) = 1 #
-> 파란 1을 넣는 이유는 정상적인 데이터는 일단 앞에 넣어주기
-> 빨간 1은 2,3,4,5... 씩으로 하나씩 변경하면서 넣어보기
-> 4에서 exits 뜸!
-> 데이터베이스 이름 길이는 4이구나를 알 수 있음
4. DB이름 뽑아내기(알파벳 유추)
burp로 패킷 수집 > Repeater 로 보내기 > 쿼리 붙여넣기 > send
5. 다시 다른 방식으로 확인해보기
URL 구성 확인하고
Repeater 부분에 해당 부분 복붙
send 후 response값 확인
6. 문자열 확인하는 쿼리 날려보기
(이걸 해보고 메시지가 어떻게 나오는지 알아야 코드를 짤 수 있다.)
쿼리 : ' and substr(database(),1,1) = 'a' #
dvwa UserID에 해당 쿼리 넣기
1 ' and substr(database(),1,1) = 'a' #
a,b,c,d...바꿔가며 넣어보기
-> d에서 exists 뜨므로 첫번째 문자열은 d임을 알 수 있다.
7. GPT 이용해서 파이썬 코드 짜기
Request 부분 전체 복사하여 프롬프트에 붙여넣은 다음
아래와 같이 질문한다.
8. 코드 복사 후 터미널 창에서
# mousepad blind.py 만들어 준 다음 해당 내용 붙여넣기
저장 후 다시 #python3 blind.py 입력시 해당 내용 자동 점검 후 결과 도출
9. 내용 추가해보기!
(이전 코드가 동작이 잘 되는 경우 GPT한테 잘 된다고 알려줘야 한다.)
~알고가기~
개발자 도구 활용(F12)
주 사용 탭
Inspector : 길이제한 해제 및 소스코드 추적,분석할 때 사용
Debugger : step by step으로 코드 불러올 수 있음 (소스코드 찾거나 하드코딩 찾을 때)
Network : 화면에서 새로고침하거나 reload할때 호출되는 데이터 확인
Storage : 접속해야하는 사이트 대상으로 + 을 생성하여 value 값 바꾸는 등 cookies 수정 가능