일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- War Game
- Cryptography
- BANDiT
- php 파일 업로드하기
- ssrf
- FTZ
- Authentication
- access control
- privilege escalation
- sql injection
- php 로그인 페이지 만들기
- php file upload
- 파일 업로드 취약점
- Recon
- Cookie
- over the wire
- php To Do List
- THM
- file upload
- active reconnaissance
- Server Side Request Forgery
- Reconnaissance
- tryhackme
- php login page
- SQLi
- overthewire
- active recon
- Leviathan
- php
- OS Command Injection
- Today
- Total
목록분류 전체보기 (242)
R's Hacking Daily Log
DVWA를 이용해 brute force 공격의 예시를 살펴보자. admin이라는 계정의 비밀번호를 알아내고자 하는 상황이라 상상하면 된다. 공격자는 login을 하기 위해 admin & passwd를 입력할 텐데 잘못된 비밀번호를 입력했을 때는 입력란 하단에 incorrect 문구가 출력된다. burp suite로 login 버튼을 눌렀을 때의 정보를 확인해 볼 수 있다. username = admin & password = 1010으로 시도한 걸 볼 수 있다. brup suite에는 brute force 공격을 시도할 때 사용해볼 만한 기능들이 갖춰져 있다. Intruder - Payloads로 들어가면 설정할 수 있는 옵션이 몇 가지 존재한다. payloads set을 1, payloads type을..
Brute force Brute force 공격이란 "전부 다 때려 넣어봐!!"라고 표현할 수 있을 거 같다. 숨겨진 directory를 찾기 위해 directory 이름을 대입해 보는 Gobuster ftp, ssh 등 각 protocol 계정의 비밀번호를 알아내기 위해 이런저런 값을 넣어보는 hydra 4 digit pin을 알아내기 위해 0000~9999까지 시도해 보는 for문 이와 같은 것들이 모두 brute force를 실행하는 예시라 할 수 있다. 대입해 볼 값이 많으면 많을수록 시간도 오래 걸리고 사람들이 일일이 입력해 볼 수 없는 노릇이기 때문에 컴퓨터에게 넣어볼 값의 목록을 주고 brute force 공격을 실행한다. *dictionary file = brute force 공격을 실행할..
사용자가 어쩌다가 공격자가 보낸 위와 같은 사이트(or 메일)를 열었다고 하자. "click" 버튼을 누르게 되면 사용자에게는 "Done"이라는 팝업창만 뜨지만 사실 저 click이라는 버튼에는 공격자가 숨겨둔 js파일이 있다. js 코드에는 사용자의 비밀번호를 hacker로 변경한다는 내용이 적혀있다. 즉 공격자가 지정한 임의 비밀번호로 사용자의 비밀번호가 변경된다는 것이다. 이 요청을 사용자의 브라우저에서 보내기 때문에 서버는 이 요청을 받고 별생각 없이 처리해 주게 된다. username = admin & password = hacker로 로그인을 해보면 성공적으로 로그인 된 것을 볼 수 있다. 이 말은 즉슨 위에서 사용자가 누른 click 버튼에 숨어 있는 js가 실행되어 공격자가 지정한 비밀번호..
CSRF Defenses (server side) CSRF 공격은 공격자가 사이트를 거쳐 "서버에 있는 데이터를 조작하거나 정보를 빼오는 등의 형태"라는 걸 알아보았다. 그렇다면 CSRF 공격을 막기 위해선 어떤 방법이 있을지 살펴보자. (* server side = CSRF Defense는 서버에 의해 실행된다.) :: CSRF Tokens 사용자가 로그인 페이지에 접근할 때마다 서버는 CSRF token을 만들어 응답과 같이 보낸다. CSRF token을 받은 사용자는 자신의 로그인 정보를 입력한 form을 제출할 때 이 토큰을 함께 보내야 한다. 만약 CSRF token이 서버가 만든 값과 일치하지 않으면 사용자의 요청을 처리해주지 않으며 Session token과 달리 CSRF token은 req..
Header는 client가 request를 만들 때 추가할 수 있는 데이터를 말한다. http request & response를 살펴보면 첫 번째 라인을 제외한 내용은 "Header" : value 형태로 되어있는 것을 볼 수 있다. 이번 글에서는 대표적으로 볼 수 있는 request & response header를 살펴보자. Common Request Headers Host :: 요청을 보낼 대상 서버 호스트와 포트 번호 지정 User-agent :: User side의 일꾼, browser를 생각하면 된다. broswer의 종류와 버전에 대한 정보가 기재 Content-length :: 서버에게 보낼 데이터의 길이를 나타낸다. 이 데이터를 보고 서버는 자신이 받은 데이터의 길이와 비교해서 중간에..
XSS :: cross site scripting XSS에서의 script는 javascript를 얘기한다. client & server가 통신하면서 web page에 대한 정보를 받으면 browser가 분석해서 client 쪽에 페이지를 출력해 준다. web page에 대한 정보가 html 파일로 오면 해당 파일에서 사용된 css나 js 파일도 같이 들어있다. 그렇다 보니 javascript는 client side에서 실행된다고 할 수 있다. Xss 공격이 가능한지 확인해 볼 때 사용하는 대표적인 js는 다음과 같다. 위의 코드는 간단하게 " 1 "이라는 내용의 팝업창을 띄워라 하는 문구이다. 간단하게 확인차 사용하는 코드이다 보니 독립적인 js 파일로 작성하기보다는 script tag로 작성한다. X..
CSRF :: Cross Site Request Forgery web은 client & server 사이에서 request & response를 주고받으며 동작한다. client가 server에게 요청을 보내고 server는 자신이 받은 요청대로 응답을 만들어 client에게 답장을 보내는데 이런 부분을 이용해 사이트를 거쳐 client가 보내는 요청을 위조해서 이뤄지는 공격을 CSRF 라고 한다. CSRF의 전반적인 과정을 살펴보자. 1) 사용자가 로그인을 하면 서버로부터 받은 Session token을 가지고 있을 것이다. 이 token을 보고 서버는 "이미 로그인 된 사용자다"를 알고 이 사용자로부터 오는 요청을 처리해준다. 2) 이런 상황에서 공격자가 어떻게든 사용자를 속여 악의적인 요청을 보내게..
HTTP Methods HTTP request를 만들 때 사용자가 원하는 동작이 무엇인지를 볼 수 있는 방법이라 할 수 있다. HTTP Method에는 대표적으로 GET & POST가 있고 더 많은 Method가 존재하지만 대략적인 것만 살펴보도록 하자. GET request :: 웹 서버로부터 정보를 얻고자 할 때 사용 POST request :: 잠재적으로 새 record를 만들고 웹 서버에게 데이터를 제출할 때 사용 (ex. login - id & password 정보를 웹 서버에게 보내 신규 회원 정보를 저장하거나 기존의 회원인지 확인) PUT request :: 정보를 업데이트하기 위해 데이터를 보낼 때 사용 DELETE request :: 웹 서버에 있는 record / data를 삭제하기 위..