일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 악성코드 분석
- cve-2024-10924
- kioptrix
- MALWARE
- Burp Suite
- LPE
- SQL Injection
- wordpress
- wp-automatic
- authentication bypass
- cve-2024-2242
- plugin
- rce
- Command Injection
- DLL Injection
- 1-day analysis
- cve-2024-27954
- 악성코드
- really simple security plugin
- cve-2024-27956
- nmap
- cve-2024-5084
- Stored XSS
- 리버스 쉘
- pentesting
- wp-automatic plugin
- broken access control
- cve-2024-4439
- 모의해킹
- XSS
- Today
- Total
목록Wargame/Nebula (15)
Psalm

파일을 읽고, buffer로 출력해주는 코드다. token파일을 읽으려고 시도했지만 파일 권한이 없다고 나온다. 이 부분을 race condition으로 해결해볼까한다. 모든 사용자가 파일을 생성할 수 있는 /tmp파일에 임의의 파일을 생성한다. 그리고 쉘 스크립트를 이용해 반복적으로 링크한다.(백그라운드로 실행) 그다음 18211 포트를 열어주고 대기시켜준다. 반복적으로 파일을 실행시켜주면 아까 권한이 없는 token파일과 임의로 만든 abcd 파일이 권한을 계속해서 변경중일 때 권한이 있는 abcd 파일을 access함수에서 열고, open함수에서는 권한이 없는 파일을 열게되면 token파일의 내용을 볼 수 있다. 그리고 내용을 복사해 flag10의 password로 입력해주면 flag1..

setuid가 걸려있는 php 코드가 있고, 이걸 우회해 flag를 획득하면 된다. spam함수로 “[email” 뒤에 오는 모든 문자를 전달하고, “.” 이가 나오면 “dot”으로 치환하고, ‘@’이가 나오면 “AT”으로 치환한다. 그리고 “[“가 나오면 “”로 치환한다. 여기서 취약점은 첫 번째 치환 함수에서 발생한다. “/e” 정규표현식은 치환 문자열을 php 코드 그대로 실행한다. (보안취약점 때문에 PHP 5.5.0 이후로 제거되었다.) ‘@’가 ‘AT’으로 ‘.’이 ‘dot’으로 바뀐걸 볼 수 있다. 그럼 어떻게하면 쉘을 실행시킬수 있을까? 파일을 생성할 수 있는 tmp폴더를 이용하면 된다.tmp폴더에 쉘을 실행시킬 수 있는 코드의 파일을 만들고, 호출시키면 된다. echo ‘[email ..

모든 사용자에게 읽기 권한이 있는 파일이 있고, 그걸 분석해 flag08로 로그인하라고 한다. pcap 파일이 하나 있다. 네트워크 패킷 캡처 파일인데, python의 HTTPserver 기능을 사용해 서버를 열어 pcap파일을 다운로드 한다. TCP 프로토콜을 사용해 통신한 내역을 볼 수 있고, TCP stream으로 어떤 내용이 통신되는지 확인해본다. 로그인 시도했던 내용이 들어있는걸 확인할 수 있다. 처음에 backdoor00Rm8ate라고 입력했지만 틀렸다. 그래서 통신내역을 16진수로 변환해 어떤 내용을 통신했는지 정확하게 파악했다. 7f는 ASCII에서 backspace를 뜻한다. 그럼 “backd00Rmate” 문자열이 완성된다.

perl로 ping을 날릴수 있는 프로그램이 서버에서 돌아가고 있다. 이렇게 Host파라미터로 ip를 넘겨주면 통신 상태를 확인할 수 있다.하지만 여기서 취약점이 터진다. Host에 우리가 입력한 문자열이 그대로 들어가기 때문에 command injection이 가능하다.만약 여기에 “%3Bgetflag”를 입력하면 앞에 명령을 실행한 뒤에 getflag 명령이 실행되어 또 다른 명령을 실행시킬 수 있게된다. thttpd.conf 설정파일을 보면 프로그램은 flag07권한으로 실행이된다. 그러니까 %3Bgetflag를 입력하면 flag07권한으로 getflag가 실행돼 위 그림처럼 getflag가 실행된다. CGI(Common Gateway Interface)서버와 웹 어플리션이 동적으로 데이터를 주..

이번 레벨에서는 flag04 디렉토리에 있는 token파일을 읽으면 된다. 하지만 코드에서 token문자열이 있으면 에러를 반환하기 때문에 우회가 필요하다. 우회 방법으로 심볼릭 링크를 사용해 파일 이름을 재정의할 수 있다. /tmp 디렉토리에 새 파일을 생성할 수 있으므로 token파일을 /tmp 폴더에 심볼릭 링크로 새로 생성한다. flag04 이름으로 심볼릭을 새로 생성하고, 실행하면 token 값을 읽을 수 있다.

flag03디렉토리에 파일이 하나있고, crontab으로 몇 분마다 실행되는 파일이 있다고 한다. 해당 파일을 보면 5분에 한번씩 파일이 실행되고, writable.d 디렉토리에서 파일을 가져와 실행을 시킨다.crontab으로 실행되는 파일은 flag03 권한으로 실행이되고, writable.d 디렉토리에는 일반 사용자도 파일을 생성시킬 수 있다. 이 점을 이용해 /bin/sh를 복사하고, setuid권한으로 실행시킬 수 있게 한다. 그럼 setuid가 걸린 sh파일이 하나 생성되고, 실행시키면 flag03권한으로 쉘을 실행시켜 flag를 획득할 수 있다.