본문 바로가기

분류 전체보기

(119)
[노말틱 모의 해킹 취업반 개발과제 (2)] 보안 관련해서 보완 하기 안녕하세요! 이태까지 제가 만든 웹 사이트에 보안을 좀 더 보완하겠습니다! 오늘은 파일 업로드에 보안을 좀 더 강화하겠습니다 저는 지정한 디렉터리에 저장을 하게 했는데 이는 적절한 보안 조치 없이 그냥 업로드된 파일에 대한 완전한 제어를 허용합니다! 그래서 보안에 취약하겠죠?? 더군다나 텍스트 파일, 압축파일 형식이니 악의적인 파일이 업로드될 수 있죠 그러니 저는 이걸 방지하기 위해 파일 확장자 검증 하겠습니다. 여기서 의문점이 있을 수 있습니다. -따로 MIME 형식에서 허락된 것만 변수로 모은 게 있잖아요?? 맞아요! 저희는 $allowed_mime_types에다가 형식자를 저장했죠? 근데 클라이언트는 파일 형식을. php을 바꿔서 .exe로 바꾸던가 .txt로 바꿔서 올릴 수가 있습니다! 이러면 문..
[노말틱 모의 해킹 취업반 8주차 개발과제 ] 게시판 만들기(4) - 조회수 기능 안녕하세요! 어제는 파일 다운로드를 만들었습니다! 이번에는 조회수 기능을 만들어서 넣겠습니다. 오늘은 간단하게 끝날 것 같아요! . . . . 우선 게시물 데이터베이스에 조회수를 담을 수 있는 칼럼을 만들겠습니다 이제 board.php로 넘어 가겠습니다. 출력할 때 views도 출력하게 하겠습니다! sql문 먼저 손 보겠습니다. 가져올 때 id,title,detail이랑 views도 가져오게요 //작성된 게시물들 조회 문 $sql = "SELECT board_id,id,title,views FROM $db_board"; 그리고 출력되게 하겠습니다 if(mysqli_num_rows($result) > 0) { //게시물 출력 while($row = mysqli_fetch_assoc($result)) { $..
[노말틱 모의 해킹 취업반 8주차 개발과제 ] 게시판 만들기(4) - 파일 업로드 안녕하세요! 이번엔 파일 업로드 하는 기능과 다운로드까지 가능한 기능을 넣겠습니다! 그리고 시간이 되면 조회수 기능까지 넣고요 만약 안되면 내일에 하면 되겠죠! . . . 시작합니다. 일단 저는 파일을 따로 저장 해둘 디렉터리를 만들겠습니다! sudo mkdir -p /path/to/upload/directory 만들겠습니다! 이렇게 따로 디렉토리를 만든 이유는 행여나 웹에서 악영향이 되는 코드가 업로드될 때 웹에서 분리시키기 위함입니다! 그리고 업로드 기능을 먼저 만들겠습니다. 일단 write_board.php에 파일 올릴 수 있는 칸을 만들겠습니다! 이렇게 저는 수정했습니다. form에 enctype="multipart/form-data"는 이 폼에 파일 업로드가 가능하다고 알려주는 겁니다. 일단 확..
[노말틱 모의 해킹 취업반 7주차 개발과제 ] 게시판 만들기(3) - 페이징 안녕하세요! 이번엔 저번에 만든 게시물에서 추가로 기능을 넣겠습니다 바로 페이징 기능입니다! 페이징은 게시물이 너무 많을 때 페이지 별로 나누어서 볼 수 있게 하는 건데요 이걸 한 번 만들어 보겠습니다 . . . . 게시판 페이지인 board.php만 손 보면 되겠네요! 우선적으로 어떡해 코딩할지 생각을 해봅시다. 일단 한 페이지당 얼마나 게시물이 보이게 할지 결정해야 되겠죠? 저는 5개로 하겠습니다 그리고 제 데이터베이스에 몇 개의 게시물이 있는지도 알아야 되겠네요! 그리고.. 총 게시물 개수랑 한 페이지 당 표시되는 개수를 나눠서 페이지가 얼마나 필요한지 알 수 있습니다. 또한 1페이지엔 1번~5번까지 출력 2페이지엔 6~10번까지 출력하게 각 페이지마다 시작 변수를 알 수 있게 코딩을 하면 되겠네요..
[노말틱 모의 해킹 취업반 6주차 개발과제 ] 게시판 만들기(2) - 수정, 삭제, 검색 4/18일 수정 내용 --- view_board.php에 작성 중 오류 인 write_error을 추가로 코딩했습니다 맨 밑에 보시면 있습니다 write_process_board.php 내용도 조금 수정했습니다. 수정되면 수정되었습니다 나오게 하게 했습니다. 안녕하세요! 이번엔 전에 만든 게시판에서 자신의 게시물이면 수정이 가능하고 삭제, 검색 기능까지 넣겠습니다. . . . . 수정 기능부터 만들겠습니다. 새로운 php 파일이 필요하겠네요! 저는 fix_board.php 을 만들겠습니다. #sudo touch fix_board.php 그리고 수정 버튼을 만들어야 되겠죠! view_board.php에 로그인 한 사람이랑 작성된 게시물의 ID가 같으면 수정 버튼 생기게 만들겠습니다 while 문 안에다가 ..
[노말틱 모의 해킹 취업반 3주차 해킹과제] 로그인 로직 만들기(2), SQL InJection 어제 만든 것 이어서 더 만들겠습니다! SQL Injection 공격이 통하는 로그인 로직을 최대한 많이 알기 위해 하는 것입니다. . . . . . -11번째 //ID,PW 찾는 쿼리문 $sql = "SELECT id,pw FROM test WHERE id='$login_id' AND pw = '$login_pw' "; 이번엔 id와 pw 만 들고 오게 했네요 id : admin' OR '1'='1 pw : qqqq -12번째 //ID,PW 찾는 쿼리문 $sql = "SELECT id,pw FROM test WHERE (id='$login_id') AND (pw = '$login_pw') "; 이번엔 괄호가 있네요 전에 괄호 있을 때 썼던 sql 문을 적읍시다 id : admin')# pw: qqqq ..
[노말틱 모의 해킹 취업반 3주차 해킹과제] 로그인 로직 만들기(1), SQL InJection 제목에 담기엔 너무 작아서 간단 하게 적었습니다. 원래 제목은 로그인 로직 케이스 개발 및 각각의 우회 기법 연구 및 연구 및 공격 방법 정리 입니다. 일단 로그인 로직은 무엇일까요? 간단하게 말하지면 로그인 코딩을 할 때 어느 구조로 코딩을 하냐입니다. 예시를 들자면 이것은 식별&인증을 따로 하는 로직입니다! 보시면 식별 즉 ID먼저 확인 한 후 인증(비밀번호)을 비교하는 것을 볼 수 있습니다. 제가 만든 페이지가 이런 형식이죠 생각해 보시면 식별이랑 인증을 같이 할 수 있습니다! sql에 id랑 pw 같이 있는지 확인하는 게 보이시죠? 그리고 만약 있으면 로그인 성공하게 했습니다! 이게 식별이랑 인증을 같이 하는 로직입니다. 여기서 궁금증이 있을 수 있습니다. 그럼 둘 중 어느 로직이 더 좋은거야? ..
[노말틱 모의 해킹 취업반 5주차 개발과제 ] 게시판 만들기(1) - 리스트 확인, 읽기, 쓰기 안녕하세요! 이제 전 포스팅까지 해서 로그인과 회원가입, 주소 등록까지 했습니다! 이제 메인페이지에서 메뉴 버튼을 만들고 만약 메뉴 버튼 누르면 게시판이 나오게 하겠습니다. only_login.php로 가겠습니다. 우선 메튜 버튼 먼저 만들겠습니다! 게시판이니깐 board.php로 가게 시키겠습니다 저장 후 잘 생성됐나 확인하겠습니다. 이제 board.php 파일 만들고 게시판을 만들겠습니다! 우선 생각을 해봅시다. 일단은 로그인 사용자가 와야만 되겠죠? 그러니 세션을 확인하는 함수랑 게시판을 저장하는 용도의 새로운 데이터베이스도 필요하겠네요! 그러고 게시판 쓰는 버튼 필요할 거 같고요. 그리고.. 리스트 확인할 수 있게 제목만 따로 적게 하겠습니다. 또 그 리스트를 누르면 내용을 확인 할 수 있게 하겠..