해킹(37)
-
File Upload 공격 찍먹
저번 시간에 간단하게 File Upload를 구현했습니다. 이제 파일 업로드를 이용해 서버 공격을 해 보겠습니다. 저희는 파일 업로드에 제한을 걸지 않았습니다. 즉 모든 파일이 서버 내에 저장된다는 뜻입니다. 이것을 이용해 간단하게 무슨 공격을 할 것이냐. 저번에 중국 해커들이 우리나라 공공? 사이트를 해킹했죠. 그때 사이트에 들어가면 메인 페이지에 이런식의 페이지가 나왔죠. 뭐..우리나라에서는 조선일보 중학생이 해킹했죠 이런거 비슷한거죠. 보통 대문짝에 내가 해킹하고 감. 이라고 적어두는 Deface 공격을 해 봅시다. 어떤 원리이느냐. 아주 쉽습니다. 파일을 저장할 때 파일 이름이 같으면 어떤 알림이 뜨죠? 덮어쓰기 한다고 알림이 뜨죠. 해커가 index.php를 파일로 올려버리면 원래 있던 사이트의..
2023.05.26 -
SSRF 공격 학습
SSRF 공격은 CSRF 와 비슷하다. CSRF는 Cross site Request Forgery. SSRF는 Server side Request Forgery 이다. 즉 서버에서 발생하는 요청 위조 공격이다. 서버는 응답만 하는것으로 알고 있는데 서버가 요청을 하는 경우도 가끔 있다. 상황을 예시로 들자면 게시판 사이트에서 날씨 정보를 가져오는 상황이다. 날씨 정보를 알기 위해서는 기상청 서버에 요청을 해서 날씨 값을 받으면 된다. (API) 여기서 취약점이 발생한다 기상청 서버 주소를 게시판 웹 서버안에다가 넣어놓고 거기서 요청하면 되는데 API 주소를 파라미터로 받는 경우가 있다. 이때 해커가 파라미터로 받는 API 주소를 변경해버린다면, 서버는 해커가 변경한 주소에 요청을 보낸다. . 하지만 단순..
2023.05.26 -
CSRF 공격 정리
면접에서 CSRF와 XSS의 차이점을 물어본다고 한다. CSRF는 CROSS SITE REQUEST FORGERY. 해커가 사용자가 모르게 요청을 위조해서 사용자의 권한 - 세션을 이용해서 어떤 작업을 수행하는것. XSS는 CROSS SITE SCRIPTING. 해커가 악성 스크립트를 삽입해서 서버가 클라이언트에게 악성 스크립트를 전달해줌. 클라이언트 측에서 악성 스크립트 실행. -> 피싱,채굴,키로깅,세션 탈취 등 다양한 공격이 가능 즉 악성 스크립트를 삽입해서 클라이언트를 공격하는 기법. 한번 그림을 그려보았다. 이 두 공격을 합치면 해커가 악성 스크립트를 삽입해서 사용자의 요청을 위조하는 공격이 된다. 둘이 같이 연계해서 하는 공격은 더욱 효과적이다. CSRF 는 모든 요청에서 일어날 수 있다. 다..
2023.05.26 -
XSS 3번 문제 취약점 정리
이번 문제 같은 경우에는 사용자 입력값이 스크립트 태그 안에 들어가나, htmlspecialchars로 인해 이스케이프 된 상태다. 하지만 mypage에 잘 보면 id 파라미터가 있다. id 파라미터를 조작하면 그 파라미터로 id란이 변경되는 모습을 볼 수 있다. 소스코드를 보면, placeholder에 들어간다. ' " >을 넣어도 문제 없이 잘 된다. 취약점 발견완료. 이제 공격을 시도한다. user=hello"%20onclick%20="%20alert(%27ss%27); 를 입력해서 테스트 한다. 이벤트 핸들러도 정상적으로 작동한다. 이제 자동으로 스크립트를 실행 할 방법을 찾아야한다. user=hello%22%20autofocus%20onfocus%20=%22alert(%27ss%27)%22%20..
2023.05.25 -
XSS 2번문제 취약점 정리
게시판에 글을 검색하면검색어가 존재하지 않습니다. 라고 알람창이 뜬다. 이말은 즉 사용자 입력값이 스크립트 태그 안에 들어갈 수 있다는 소리이다. 페이지 소스를 보면이런식으로 스크립트가 실행되는것을 볼 수 있다. 괄호를 맞추고 새로운 스크립트를 검색하면(넣으면) 삽입한 스크립트가 실행되는것을 볼 수 있다. 하지만 검색은 post 방식으로 진행되고 있다. 우리의 목적은 url에 악성 코드를 담은 링크를 공유해서 해킹하는것이다. 따라서 프록시 툴을 이용해서 메소드를 Get 방식으로 보내본다.정상적으로 처리가 된다. Reflected XSS 취약점이다. 이제 쿠키를 털어보자. (실제로는 httponly 속성이 적용되어있지만 여기서는 해제하고 테스트) 안녕?'); var img = new Image(); img..
2023.05.25 -
CSRF 공격 3번 문제 취약점 정리
3번 문제 같은 경우에도 취약점은 똑같다. 약간만 변형된 구조이다. 정보 수정을 하는데, CSRF 공격을 막기 위해 매번 토큰을 생성해주고 있다. get이던 post던 토큰때문에 공격을 할 수 없다. 하지만, CSRF 토큰을 input 태그에 넣었다는 것이 결정적인 취약점이다. 전에 iframe를 통해서 메인 페이지의 사용자 id를 접근해서 해커의 사이트로 보낸 것 처럼 dom에 접근해서 토큰값을 빼가면 끝이다. 이런식의 코드를 작성한다. 1. iframe를 이용해 mypage에서 상대방의 csrf 토큰을 발급받는다. 2. 발급받은 토큰을 이용해서 update form에 넣는다. 직접 요청해보자. 수정에 성공했다. 이제 전에 방식과 똑같이 자동화와 iframe 숨김 처리를 한다. 당신은 뽑기에 실패했습니..
2023.05.25