Cộng đồng Hỏi & Đáp của Inflearn
select * from member where id= '1' or '1'='1' --
Viết
·
593
1
SQL 인젝션 관련하여 질문드립니다.
제목처럼 -- 나 # 등의 주석처리로 로그인을 우회할 수 있는 경우는
insequre_website 의 login.php 에서 로그인을 처리하는 로직 (하단)처럼
id값과 pw 값을 동시에 받아서 query 로 넘기는 경우만 해당하는거죠?
$query = "select * from members where id='{$id}' and password='{$password}'";
즉, 하단의 로직처럼 일단 id가 있는지 확인하고,
id가 있을 경우 pw값 일치여부를 보는 경우엔 주석처리로 로그인 우회가 안되는게 맞는거죠?
감사합니다!
<?php
session_start();
$connect = mysqli_connect("localhost", "", "", ") or die("fail");
//입력 받은 id와 password
$id=$_GET['id'];
$pw=$_GET['pw'];
//아이디가 있는지 검사
$query = "select * from member where id='$id'";
$result = $connect->query($query);
//아이디가 있다면 비밀번호 검사
if(mysqli_num_rows($result)==1) {
$row=mysqli_fetch_assoc($result);
//비밀번호가 맞다면 세션 생성
if($row['pw']==$pw){
$_SESSION['userid']=$id;
if(isset($_SESSION['userid'])){
?> <script>
alert("로그인 되었습니다.");
location.replace("./index.php");
</script>
<?php
}
else{
echo "session fail";
}
}
else {
?> <script>
alert("아이디 혹은 비밀번호가 잘못되었습니다.");
history.back();
</script>
<?php
}
출처: https://chamggae.tistory.com/83 [silqia 공부 블로그]
모의해킹인젝션
Quiz
SQL Injection이란 무엇인가요?
SQL 언어 자체를 변조하여 데이터베이스 기능을 마비시키는 행위
사용자 입력란에 악의적인 SQL 구문을 삽입하여 비정상적인 데이터베이스 쿼리를 실행시키는 취약점
데이터베이스 관리 시스템(DBMS)에 직접 침투하여 데이터를 탈취하는 해킹 기법
웹 애플리케이션 개발 도구를 사용하여 SQL 쿼리를 최적화하는 기술
Câu trả lời 2
0
0
crehacktive
Người chia sẻ kiến thức
안녕하세요.
이 경우에도 SQL 인젝션 취약점이 존재할 경우 인증 우회, 데이터 조회 공격이 가능합니다.
말씀하신 인증우회 패턴으로는 되지는 않으나 , 공격 방식을 조금 다르게하면 공격이 가능합니다.
때문에 SQL 인젝션에 대한 취약점을 방어하시는 것이 1순위가 되겠죠.ㅎㅎ




