일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- file upload
- php 파일 업로드하기
- SQLi
- War Game
- Cryptography
- active recon
- Leviathan
- access control
- sql injection
- BANDiT
- Server Side Request Forgery
- php
- over the wire
- Authentication
- ssrf
- php 로그인 페이지 만들기
- php login page
- overthewire
- Cookie
- FTZ
- active reconnaissance
- 파일 업로드 취약점
- Recon
- privilege escalation
- php To Do List
- THM
- php file upload
- Reconnaissance
- tryhackme
- OS Command Injection
- Today
- Total
목록Daily-Note (30)
R's Hacking Daily Log
Steganography Steganos + Graphein의 합성어로 메세지를 숨긴다! 는 뜻이라 얘기할 수 있다. 많은 이들이 알만한 대표적인 스테가노그래피는 아마 세로 드립일 것 보통 메세지를 숨긴다라고 하면 디지털의 경우를 생각할 텐데 스테가노그래피는 예~~~~~~~~ㅅ날부터 있었다. 지령보내는 사람의 머리를 깎아 메세지를 쓰고 그 사람의 머리가 자라면 목적지로 보낸다. 목적지에 도착하면 머리를 다시 미는 것.. 그러면 타투로 새겨 숨겨둔 메세지를 볼 수 있게 되는 것이다. (굉장히 시간도 오래 걸리고 비효율적일 거 같..) 디지털의 경우를 보자면 디지털 스테가노 그래피는 "파일 안에다 파일 숨기기"라 보면 된다. 이미지 스테가노그라피의 경우에는 LSB기법을 사용한다. 이미지의 각 RGB 마지막 ..
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..
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) 이런 상황에서 공격자가 어떻게든 사용자를 속여 악의적인 요청을 보내게..
Cookie cookie에 대해 살펴보기 전에 cookie가 왜 필요한지에 대해 먼저 알아보도록 하자. web을 사용하다고 하면 Application layer에서는 HTTP(s) 프로토콜을 사용한다. HTTP의 특징 중 하나는 "Stateless protocol"이라는 것! *Stateless = client가 보낸 요청에 대해 server가 그 어떤 내용도 유지하고 있지 않은 것을 의미한다. server가 어디까지 처리했었는지, 어느 상태까지 진행되었는지 기억하지 않는 걸 말한다. Stateless를 왜 언급했느냐! 를 설명하기 위해 어떤 쇼핑 사이트에 방문해서 로그인을 하고 A & B라는 상품을 각각 장바구니에 담는 상황을 상상해 보자. 1) 사용자는 우선 사이트에 방문할 것이고 2) 로그인을 한 ..