본문 바로가기
반응형

전체 글87

Lord of SQL Injection : Hell_fire[23] [Level 23. Hell_fire] Sol → ?email=admin_secure_email@emai1.com 정렬을 이용해서 admin의 이메일 주소를 맞춰야 하는 문제이다. 자동화 코드를 짜는데 꽤 시간이 걸렸다. 우선? order=1로 결과를 확인해보았다. if($result['id'] == "admin") $result['email'] = "**************"; 부분으로 인해 id가 admin인 경우 email은 *****로 표시되고, 첫 번째 column으로 정렬을 하였기 때문에 admin이 알파벳 순서상 먼저 뜬 것을 확인할 수 있다. order by는 정렬 기능인데, 위의 사진에서 볼 수 있듯이 views처럼 직접 column을 명시할 수도 있지만, length(content)처.. 2021. 12. 28.
Php로 웹 개발하기 : 문의 게시판(4) ① 문의글 확인 권한 문의글은 기본적으로 자신이 작성한 글만 확인이 가능하게 구현할 것이다. 회원의 경우 세션 아이디를 확인해서 글의 작성자인지 확인하면 되지만, 비회원의 경우 글을 작성할 때 입력했던 비밀번호를 다시 입력해서 검증할 수밖에 없다. 하지만 자바스크립트와 php의 실행 순서 차이 때문에 prompt를 띄우기가 어려워서, 비밀번호를 인증하는 페이지로 넘겨준 후, 인증 페이지에서 인증에 통과하면 qna_read.php로 넘기는 로직을 구현해주었다. [qna_check.php] qna_board.php에서 qna_read.php로 바로 연결되던 부분을 qna_check.php로 바꿔주었다. 1) admin이면 바로 qna_read.php로 넘긴다. 2) 회원이자 글의 작성자면 qna_read.p.. 2021. 12. 27.
인증, 인가 취약점 인증과 인가 취약점은 말 그대로 인증과 인가가 불충분해서 발생하는 취약점이다. 인증과 인가의 개념과 대응방안에 대해 알아보자. ① 인증(Authentication) 인증은 자신이 A라고 주장하는 사람이 실제로 A가 맞는지 확인하는 과정으로 로그인 인증, 본인 인증, 휴대전화 인증, 카드 인증 등을 예시로 들 수 있다. 인증이 불충분하다면, 사용자를 식별하는 과정에서 우회나 변조가 발생할 수 있다. 인증 우회는 대표적으로 XSS을 통한 세션을 탈취나 중간자 공격(MITM : Man In The Middle attack)을 통해 발생할 수 있다. [대응방안] 만약 개인정보를 확인할 수 있는 페이지에서 인증 프로세스가 제대로 구현되지 않는다면, 세션을 탈취하는 것만으로 개인정보에 접근하거나 정보를 수정할 수 .. 2021. 12. 26.
Lord of SQL Injection : Dark_eyes[22] [Level 22. Dark_eyes] Sol → ?pw=5a2f5d3c 이번 문제는 21단계 문제랑 똑같다. 다만 에러를 출력하되 에러의 이유는 출력하지 않는다. 저번 문제를 풀 때 이번 문제에서 추가로 필터링되는 case 같은 문자를 사용하지 않았기 때문에, 쿼리문은 그대로 사용하되 참/거짓 판별법만 살짝 바꿨다. ?pw=' or id = 'admin' and (select 0 union select length(pw) = 1)%23 2021. 12. 25.
Lord of SQL Injection : Iron_golem[21] [Level 21. Iron_golem] Sol → ?pw=06b5a6c16e8830475f983cc3a825ee9a pw를 알아야 통과할 수 있기 때문에 Blind SQLi를 사용해서 비밀번호를 한 글자씩 알아내야 하는 점은 기존의 문제와 같다. 하지만 기존에는 if($result['id']) echo "Hello {$result['id']}" 코드가 포함되어 있었기 때문에 쿼리문의 참/거짓을 기준으로 자동화 코드를 돌릴 수 있었는데, 이번 소스코드에는 그 부분이 빠져있다. 대신에 다른 점은, if(mysqli_error($db)) exit(mysqli_error($db)); 부분이 포함되어 있다. Error를 띄우게 되어있다? 그렇다면 Error based SQLi를 사용해야 함을 추론할 수 있다. .. 2021. 12. 24.
Php로 웹 개발하기 : 문의 게시판(3) ① 문의글 확인 기능 우선 문의글을 읽을 수 있는 페이지를 만들어야 한다. 이 페이지에서는 문의글을 수정 및 삭제할 수 있으며 관리자의 경우 댓글을 달 수 있다. [qna_read.php] 문의 게시판 2021. 12. 23.