일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php login page
- tryhackme
- php To Do List
- php file upload
- 파일 업로드 취약점
- Leviathan
- php
- access control
- active recon
- php 파일 업로드하기
- Recon
- active reconnaissance
- Authentication
- Reconnaissance
- overthewire
- Cookie
- over the wire
- FTZ
- ssrf
- THM
- privilege escalation
- file upload
- php 로그인 페이지 만들기
- BANDiT
- sql injection
- SQLi
- War Game
- Server Side Request Forgery
- Cryptography
- OS Command Injection
- Today
- Total
목록Port Swigger (50)
R's Hacking Daily Log
Privilege escalation이란 줄여서 privesc이라고도 표현되는 데, 이는 말 그대로 권한 상승을 의미한다. 원래는 실행시킬 수 없는 작업을 수행하거나 제한되는 데이터에 접근했을 경우 이를 Vertical privilege escalation이라 한다. 이전 글에서 정리했듯이 access control에는 크게 3가지 유형이 있는데 그중에서도 주어지지 않은 더 높은 권한의 기능을 실행하지 못하도록 제어하는 걸 vertical access control이라 정의했다. Vertical privilege escalation은 반대로 Vertical access control을 깨뜨려버리는 경우로 일반 사용자가 관리자 권한으로 실행할 수 있는 계정 삭제와 같은 기능을 실행하게 되면 이를 Broke..
What is Access Control Access control(or authorization)이란 실행하고자 하는 기능을 실행할 수 있는지, 요청한 데이터에 접근 가능한 지 등등 사용자 권한에 제약 조건을 적용하는 걸 얘기한다. 어떤 application에 로그인을 하는 과정은 사용자가 스스로 주장하는 신원이 일치하는 지를 확인하기 위한 것으로 이를 authentication이라 정의했다. 다른 말로 하자면 접근 권한이 아예 없는 자인지, 있는 자인지를 확인하는 절차인 셈이다. 어떤 건물은 특정 절차를 통해 정보가 등록된 사람만 출입이 가능하다고 한다. 신원을 확인한 후에야 건물에 출입할 수 있는 권한이 생긴다. 하지만 건물에 출입할 수 있다고 해서 모든 층에 있는 모든 공간에 들어갈 수 있는 건 ..
Exploiting blind OS command injection by redirecting output 이번에 살펴볼 내용은 Blind OS command injection 기술 중 Redirection과 관련되어 있다. 여기서 말하는 Redirection이란, 어떤 데이터가 저장되는 원래 위치가 아닌 사용자가 임의로 지정한 곳으로 데이터가 지정되도록 위치를 변경하는 것을 말한다. 기본적으로 사용자가 만든 파일이 현재 directory에 저장된다고 할 때 현재 directory가 아닌 다른 directory에 파일이 저장되도록 하는 게 redirection의 예시가 될 수 있다. 현재 사용자가 /root/bandit directory에 위치해 있고 hello.txt file을 하나 만들고자 한다. "..
Blind OS command injection vulnerabilities 앞에서 살펴본 command injection은 공격자가 입력한 Command 결과를 확인할 수 있었다. Lab1에서와 같이 Check stock 버튼을 눌렀을 때 재고가 출력되는 부분에 Whoami command 결과가 나타나는 것을 확인했을 것이다. 하지만 반대로 command 결과를 확인할 수 없는 Blind 취약점일 경우도 존재한다. Blind라는 개념을 이해하기 위해 다음과 같은 상황을 상상해 보자. :) 사용자가 피드백을 작성할 수 있는 사이트 :) 사용자가 자신의 이메일과 피드백 내용을 입력 :) 서버에서는 피드백을 받으면 해당 내용으로 메일을 만들어 Administrator에게 전달 이때 서버에서는 다음과 같은 c..
Lab - OS command injection, simple case OS command injection의 간단한 예시를 살펴볼 수 있는 lab을 한 번 풀어보도록 하자! 최종 목표는 command injection attack으로 whoami command를 주입하여 username을 획득하는 것이다. Lab에 들어가면 여러 아이템들이 나열되어 있는 걸 볼 수 있는 데 하나를 클릭해보면 상품에 대한 이미지와 설명 밑에 "check stock"이라는 버튼이 눈에 들어올 것이다. 왼쪽에 있는 박스에서는 해당 상품이 있는 지점을 선택할 수 있고 check stock 버튼을 누르면 사용자가 고른 지점에 상품이 몇 개 남았는지 출력해 준다. Check Stock 버튼을 눌렀을 때 서버로 날아가는 packet..
What is OS command injection? 오늘부터 살펴볼 OS command injection [= command injection or shell injection]은 서버에서 돌아가는 applicaiton에 Command를 주입하는 공격으로 여기서 말하는 command는 흔히 Terminal에서 사용되는 Command라 생각하면 된다. 이해를 돕기 위해 Command injection 예시를 하나 살펴보도록 하자. :) 상품 재고를 조회하는 쇼핑 application :) 상품 재고를 확인하기 위해서는 ProductID & StoreID를 활용 https://insecure-website.com/stockStatus?productID=381&storeID=29 사용자가 상품과 지점을 선택..
Changing user passwords Authentication에 대하여 살펴볼 마지막 부가 기능은 "비밀번호 변경"에 관한 내용이다. password reset과는 조금 다른 게, password reset은 사용자가 자신의 비밀번호를 잊어버린 상황을 전제로 하기 때문에 현재 설정된 password로 인증 절차를 검증할 수 없다. 이와 달리 change password는 현재 비밀번호를 알고 있지만 그 값을 변경하고자 할 때 실행되는 기능이기 때문에 사용자는 비밀번호 변경을 위해서 대부분 자신의 현재 비밀번호로 인증 절차를 거치게 된다. 사실 새로운 비밀번호를 설정한다는 것은 사용자가 자신의 계정명 & 비밀번호를 가지고 권한이 있는지 없는지 검증하는 절차[= 로그인]를 거치는 것과 다를 바 없기 ..
두 번째로 살펴볼 추가 기능은 "password reset"에 대한 내용이다. 자신의 비밀번호를 잊어버린 사용자는 흔히 비밀번호 재설정 기능을 사용하는 데 비밀번호를 모르는 상황에서 password 기반의 인증이 불가하기 때문에 다른 대안에 의존할 수밖에 없다. 그렇다보니 password reset이라는 기능은 본질적으로 위험하다고 할 수 있다. 비밀번호 재설정 기능을 수행하기 위한 방안 중 하나는 Email을 이용하는 것으로 랜덤 하게 만든 비밀번호를 사용자에게 메일로 보내거나 비밀번호 재설정이 가능한 페이지 링크를 보내는 식으로 이루어진다. 또 다른 방안으로는 고유 URL을 사용하는 것인데 URL의 경우, http://vulnerable-website.com/reset-password?user=vic..