오늘은 SQL injection의 응용 공격인 blind SQL injection에 대해 알아 볼 것이다
앞서 이 공격 기법의 탄생 목적과 용도는
SQL injection를 하기 위해 DB의 Table의 이름을 알아내거나 Table의 정보를 추론해서 알아내기 위함이다
SQL injection으로 로그인 우회 뿐만 아니라 예 아니오의 이분적 사고로 DB의 정보를 알아 낼 수 있다
웹 사이트는 우리가 원하는 대로 다 해 주진 않는다 admin의 비밀번호를 알아내기 위해 서버에게
admin의 비밀번호가 뭐냐고 물어본다고 해서 그냥 알려주진 않는다
비유를 해보자 스무고개를 떠올리면 된다 상대가 묻는 질문에 예 아니오만 말한다면 금방 상대방이 머리속에서만 생각하는 것을 알아 맞출 수 있는 것 처럼 당신도 웹 사이트에게 질문을 하여끔 DB의 정보를 유출 할 수 있다
이제 잡소리 같은 이론 집어 치우고 바로 알아보자
오늘도 우리의 샌드백인 ctf 사이트에 공격을 할 것이다
참고로 사이트 코드는 여기서 보시길
https://noobhack.tistory.com/4
[NOOBHACK] CTF용 사이트(코드 공유)
요즘 내가 ctf를 하면서 계속 느낀건데 웹 해킹 ctf 사이트가 너무 실제 사이트 같지도 않아서 실감이 안나고 실무성을 못 느껴서 내가 집적 간단하게 ctf전용 사이트를 제작하게 되었다. 사용 언
noobhack.tistory.com
오늘도 어김없이 여기서 admin의 비번을 알아낼 것 이다
로그인의 구문은
SELECT * FROM members WHERE uid="아이디" and upw="비번"
인데 구문을 바꿔보자
SELECT * FROM members WHERE uid="admin" and upw="" or uid="admin" and substr(upw, 1, 1)="A"
입력 값(" or uid="admin" and substr(upw, 1, 1)="A)이 꽤 낯설다
SQL도 사실 프로그래밍 언어이기에 함수도 사용 할 수 있고 제어문도 사용 가능하다
그 중 substr은 1번째 DB에서 upw의 값의 1번째 글자를 가리키게 된다 그럼 그 글자가 A일 경우에 SQL 구문은 참이 돼여
admin의 세션으로 연결하게 된다
이런 식으로 옳은 구문을 넣게 된다면
짠 하고 된다
그러면 더 알아보기 위해 자동으로 admin의 비밀번호를 출력하는 코드를 만들었다
이 공격기법을 잘 이해 하고 싶다면 SQL를 먼저 배워 보는걸 추천한다 분명 써먹을 때가 많을 것 이다
'해킹 공격' 카테고리의 다른 글
[NOOBHACK] XSS 공격 기법 (0) | 2022.08.16 |
---|---|
[NOOBHACK] 중간자 공격 MITM (0) | 2022.08.15 |
[NOOBHACK] SQL injection 공격 구문 (0) | 2022.08.05 |
[NOOBHACK] 사이트에서 SQL injection 해보기 (0) | 2022.08.04 |
[NOOBHACK] DDS로 사이트 깽판 치는 방법 (0) | 2022.08.04 |