본문 바로가기

분류 전체보기

(63)
웹 해킹 공부 일기장 (XSS 정리) 저번주에 수업을 쉬어서 앞에 공부한 것을 한번더 요약을 하고 시작하겠습니다. XSS란? 클라이언트측 스크립트를 삽입하여 실행하게 하는 공격이라고 할 수 있습니다. XSS 공격에서 스크립트를 포함하는 곳에 따라 분류할 수 있었습니다. 1. Stored XSS: 서버측에 스크립트를 저장시켜 해당 스크립트를 불러오게 될 경우 실행됩니다. 2. Reflected XSS: 요청의 파라미터에 삽입된 스크립트가 서버에서 그대로 포함시켜 응답할 경우 실행됩니다. 3. DOM Based XSS: 요청의 파라미터에 삽입된 스크립트가 브라우저에서 처리하면서 그대로 출력할 경우 실행됩니다. - DOM Based XSS 같은 경우 URL의 # 부분 뒤에 받은 데이터에서도 일어난다고 합니다. #뒷 부분은 서버에 데이터를 보내지 ..
웹 개발 공부 일기장 (게시판) 1. 게시판 웹 개발한 부분 작성 아직 검색 기능과 페이지 기능은 만들지 않았지만, 대충 디자인만 해놓고 나머지는 실제 구현 가능하도록 만들어 보았습니다. 화면에 사진과 같이 보여주기위한 기본 HTML 코드 Search 게시판 목록 제목 조회수 작성자 Previous 1 2 3 Next 로그아웃 > 글쓰기 마이페이지 베스트 게시글 # 베스트 게시글 가져오기위한 Board 모델 추가 사항 public static function getBestBoard() { $db_conn = connectDb(); $query = "select * from boards order by view desc limit 0,10 "; $result = mysqli_query($db_conn, $query); return $r..
웹 해킹 공부 일기장 6- 1 (XSS) XSS는 클라이언트 측에 스크립트를 삽입하여 해당 스크립트가 실행되게 하는 것입니다. 클라이언트 측! 즉, 피해자의 웹 브라우저에서 스크립트를 처리하면서 실행되게 하는 것입니다. Stored XSS 취약점은 요청에 포함된 데이터(스크립트)가 서버 측에 저장되어 해당 데이터(스크립트)가 어느 응답에 포함되어 화면에 출력될 경우 발생될 수 있습니다. 피해자가 해당 데이터가 포함된 페이지에 접속할 경우 응답에 포함된 스크립트가 웹 브라우저에서 스크립트로 처리하면서 실행됩니다. Reflected XSS 취약점은 요청에 포함된 데이터가 서버의 응답에 바로 포함되어 화면에 출력하게 될 경우 발생될 수 있습니다. 이 경우 요청에 스크립트를 포함시키며 해당 응답에서 발생하기 때문에 이용자가 스크립트가 포함된 요청을 하..
웹 개발 공부 일기장 (마이페이지 수정) 일단 마이페이지 수정한 부분을 보여드리겠습니다. 보여주는 화면 구성한 php (위의 사진처럼 보여짐.) 회원 정보 이름 : 아이디 : 이메일 : 전화번호 : 생년월일 : 회원정보 변경 | 프로필 사진 변경 회원탈퇴 프로필 사진 변경 Upload 닫기 회원 프로필 사진 변경하기 위해 입력 받은 파일 처리 사진을 가져올 때는 데이터베이스에 저장된 경로로 가져올 수 있음. 부족한 부분 - 사진을 변경할 때마다 사진이 저장되어 기존의 사진을 삭제하는 기능을 추가!하면 좋을 것 같음. - 회원 탈퇴 기능 아직 미구현. 보여지는 화면을 구성한 PHP (위의 사진처럼 보여짐.) 게시판 가기 나의 게시글 글쓰기 제목 :
웹 해킹 공부하기 5 - 1 (XSS) 저번 시간까지 SQL Injection에 대해 알아보고 공부해보았습니다. 이번 시간 공부시작전에 SQL Injection 모의해킹 실무에서 주의할 점 몇가지만 알아보고 시작하겠습니다. 1. insert, delete, update 구문은 웬만하면 사용하지 않습니다. - 위의 SQL 문법들은 데이터에 대하여 삽입, 삭제, 수정하는 구문으로 사용하면 실제 서비스하는 웹의 데이터를 건드릴 수 있기 때문에 사용하지 않는 것을 좋습니다. 만약, 위의 구문들로 SQL Injection이 가능할 것 같더라도 잘 안 쓴다고 하며, 만약 사용해야한다면 조심 또, 조심하며 and 구문과 함께 사용해주면 좋습니다. 2. 위의 구문들 사용 시 or, 주석은 웬만하면 사용하지 않습니다. - or 구문을 사용하면 모든 데이터에 ..
웹 해킹 공부하기 4 - 과제 3. flag를 찾아라 1) SQL Injection 포인트 찾기 이번 챌린지에서는 oder by 절에도 SQL Injection이 가능하다는 것을 확인했었습니다. 이때 사용한 것이 case when 이었습니다. case when (조건) then title else username end 를 사용하여 정렬 기능을 참일 경우에는 title로 거짓일 경우에는 username으로 실행하게 하여 서로 결과가 다른것으로 참과 거짓을 구별하여 SQl Injection을 사용할 수 있습니다. 2) select 사용 가능 확인 두 결과가 다르기 때문에 Blind SQL Injection을 사용할 수 있습니다. 3) 공격 format 만들기 select * from board option_val like '%board..
웹 해킹 공부일기장 4 - 과제 저번 실습에서 찾은 SQL Injection 포인트로 flag를 찾는 것까지 해보겠습니다. 1. flag를 찾아라 1) SQL Injection 포인트 찾기 쿠키에 포함된 user 정보로 마이페이지를 채워주는 부분이 있었고 이때 쿠키의 user에 SQL Injection 이 가능했습니다. 참일 때는 Nothing Here..., 거짓일때는 아무것도 출력되지 않기때문에 SQL의 참 거짓에 따라 결과가 다릅니다. 이 조건을 사용하여 Blind SQL Injection을 할 수 있습니다. 2) select 문 가능한지 확인 select * from member where user='user' 이런식으로 서버측 쿼리에서 쿠키의 user로 정보를 가져올 것 입니다. # qwer' and (조건) and '1'='..
웹 해킹 공부일기장 4 - 1 (SQL Injection 포인트 찾기) 모든 기법을 배우고 절차까지 알아보는 과정에 SQL Injection 포인트 찾기가 있었습니다. 챌린지에서도 해당 페이지에 어느 기법을 어떤 곳이 SQL Injection 이 가능할 지 알고있었던 상황입니다. 하지만, 실제 실무를 나갈때는 이렇게 친절히 '여기가 SQL이 가능한 곳이고 여기에 어느 기법을 사용하면 됩니다.' 알려주지 않기 때문에 SQL Injection 포인트를 찾는 것이 중요합니다. SQL Injection이 사용가능한 곳이 어디일까요? 사용자의 입력을 받는 곳? 사용자의 입력으로 DB에 질의하는 곳? 물론 이러한 부분도 맞지만, 이렇게 생각하면 단순히 우리가 화면에 어떠한 문자를 입력할 때만 SQLI가 사용 가능하다라고 착각할 수 있습니다. SQL 구문에 연결된 파라미터라고 생각하면 ..