[Hackthebox] Fawn Challenges Writeup
·
Writeup
핵더박스의 Fawn 챌린지를 풀어보았다일단 FTP란 File Transmission Protocol, 즉 클라이언트와 서버 간에 파일 전송을 위한 프로토콜을 의미함  FTP에서 사용되는 포트는 20, 21: 20번은 데이터 전송, 21번은 명령어 전송에 사용함FTP의 더 안전한 프로토콜은 SFTP Task 5From your scans, what version is FTP running on the target? 타겟의 ftp 버전을 파악하는 문제이다 출력 결과를 살펴보자  vsFTPd 3.0.3인것이 확인되고 운영되는 OS는 유닉스 환경이다계정 없이 로그인하는 상황이기 때문에 username이 anonymous으로 설정로그인 성공에 뜨는 상태 코드는 230  파일과 디렉토리를 출력하는 명령어 ls, 다..
[웹해킹] SSRF with filter bypass via open redirection vulnerability Writeup
·
Writeup
저번 SSRF 포스팅에 이어서 이번에는 practitioner 레벨의 랩을 풀어보자리디렉션 취약점을 이용해서 필터를 바이패스해야 한다 Open Redirection vulnerability웹 서비스에서 사용자의 입력을 기반으로 redirect 하는 기능을 이용하여 공격자가 의도한 도메인으로 사용자를 이동시키는 공격 방법. 서버에서 입력값을 검증하지 않고 유저가 의도한 경로로 리다이렉션이 허용되는 취약점이다. SSRF with filter bypass via open redirection vulnerability Writeup   내부 시스템에서 데이터를 가져와서 상품의 재고를 확인하는 기능이 있다재고를 확인하는 url을 변조해서 admin 페이지에 접근해서 carlos 계정을 삭제하면 된다  재고확인 쿼..
[웹해킹] Lab: Basic SSRF against another back-end system Writeup
·
Writeup
저번 ssrf 포스팅: https://eggsmong.tistory.com/85 웹해킹 :: SSRF 취약점/ Lab: Basic SSRF against the local serverSSRF이란? 공격자가 서버사이드에서 의도하지 않은 지점으로 요청을 하도록 만드는 행위이다.일반적으로 서버가 조직의 인프라 내에 내부망 서비스에 연결을 하도록 하거나, 외부 시스템에 연eggsmong.tistory.com   이전의 ssrf 랩과 마찬가지로 재고 확인 기능이 있고,백엔드에 쿼리 하는 파켓을 이용해서 ssrf 공격을 하면 된다이번 랩에서는 ip 주소와 포트가 추가되었음 일단 burpsuite으로 재고확인하는 파켓부터 인터셉트해보자   재고확인하는 파켓의 경우 HTTP POST 메소드를 사용하고 있다이 파켓을 수..
[Dreamhack] 리버싱 rev-basic-6 Writeup
·
Writeup
드림핵의 6번째 리버싱 워게임 문제다앞 시리즈와 동일하게 인풋을 입력하면 Correct/Wrong이 출력되고Correct를 출력하는 플래그 값을 찾으면 된다  대략 위와 같은 구조의 프로그램디컴파일해서 살펴보자  플래그를 찾는 함수와 조건을 찾았다위의 함수를 간편하게 바꿔보자byte_140003020[*(unsigned __int8 *)(a1 + i)] != byte_140003000[i]byte_140003020[a1[i]]!= byte_140003000[i] 첫 번째 배열에 있는 요소와 두 번째 배열 요소가 일치하면 인덱스를 플래그에 추가해서chr() 이렇게 변환하면 되겠다 편의를 위해서 배열 이름은 f1[a1[i]] = f2[i] 이렇게 바꿔서 코드를 짜겠음일단 두 배열의 요소들을 보면 Hex 값 ..
[Dreamhack] 리버싱 rev-basic-5 Writeup
·
Writeup
이전 rev-basic 시리즈와 유사한 구조의 문제다correct를 출력하는 플래그를 찾으면 됨틀린 값을 입력하면 wrong을 출력함 IDA에 로드해서 실행파일을 분석해 보겠음  input: 여기서 사용자에게 입력값을 받고if 문에 있는 sub_140001000에서 비교해서 일치하면 correct 출력 __int64 __fastcall sub_140001000(__int64 a1){ int i; // [rsp+0h] [rbp-18h] for ( i = 0; (unsigned __int64)i  if ( *(unsigned __int8 *)(a1 + i + 1) + *(unsigned __int8 *)(a1 + i) != byte_140003000[i] )위의 수식을 간소화하면 이렇게 되겠다a1[i+1..
[Hackthebox] Behind the Scenes 리버싱 챌린지 Writeup
·
Writeup
behindthescenes이라는 리버싱 챌린지를 풀어보았음$ ./behindthescenes ./challenge  어떤 패스워드를 입력하면 플래그를 알려주는 방식인듯하다파워쉘 powershell에서 strings 명령어로 대략 내용을 볼 수 있다  챌린지의 패스워드가 HTB{strings} 이런 구조라는 힌트가 있다디컴파일러 IDA에서 살펴보자  지금까지 했던 리버싱 문제들과는 다르게 cmp 조건문으로correct wrong 으로 나뉘는게 아니라 쭉 이어지는 구조다메모리 할당하는 _memset, _sigaction 같은 함수가 호출된다  디컴파일된 모습을 보니까 sigaction 구조체가 선언딘후에 memset으로 초기화된다sigaction() 함수를 호출해서 핸들러가 동작하도록 한다 근데 코..