TryHackMe | CTF

tryhackme OWASP TOP 10 2021 [실습] [초보강의] 1 ~ 5

건우Sec 2024. 8. 18. 17:02

tryhackme owasp top 10 링크 주소

https://tryhackme.com/r/room/owasptop102021

 

OWASP Top 10 - 2021

Learn about and exploit each of the OWASP Top 10 vulnerabilities; the 10 most critical web security risks.

tryhackme.com

 

openvpn 체크 하시고 봐주세요 !!

 

해석

 

1. Broken Access Control (취약한 접근제어)

 

2. Cryptographic Failures (암호화 오류)

 

3. Injection (인젝션) sql,command injection 등등...

 

4. A04: Insecure Design (불안전한 설계)

 

5. Security Misconfiguration (보안 구성 오류)

 

6. Vulnerable and Outdated Components (취약하고 오래된 요소)

 

7. Identification and Authentication Failures (식별 및 인증 오류)

 

8. Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 오류)

 

9. Security Logging and Monitoring Failures (보안 로깅 및 모니터링 오류)

 

10. Server-Side Request Forgery (SSRF, 서버측 요청 위조)

 

실습 Tryhackme OWASP TOP 10

 

1. Broken Access Control

Broken Access Control 이란?

간단히 말해, 우리집 현관문을 지나가던 광견병 걸린 개가 들락날락하는 상황이라 이해하면 된다. 이렇게 잘못된 접근 제어로 인해 발생하는 잘못된 접근 취약점을 Broken Access Control이라 부른다. 참고로 한국어로는 “잘못된 접근 제어”라고 부르겠다.

 

[실습]

 [자신의 IP] 주소로 들어가자

 

 

noot

test1234

 

로 로그인

 

 

 

위와 같이 설명하자면.

사용자가 은행 계좌의 로그인하게 되고 

 

https://bank.thm/account?id=111111

 

하지만 잘못된 접근으로 id 파라미터를 변경하게 되면

 

https://bank.thm/account?id=222222

 

다른 사용자의 은행 계좌를 볼수 있다

 

 

http://10.10.26.76/note.php?note_id=0

id 파라미터를 0으로 변경했는데 플레그가 나왔다

 

( 따라하시면서 작성해주세요 !! )

 

2. Cryptographic Failures 이란?

 

위와같이 설명

Cryptographic failures 취약점은 민감한 정보를 보호하기 위해 암호화 알고리즘을 잘못 사용하거나 사용하지 않음으로 인해 발생하는 취약점입니다.

 

그로인해 발생하는거

 

민감한 데이터 노출: 암호화 실패는 종종 고객과 관련된 민감한 데이터(예: 이름, 생년월일, 금융 정보)나 기술적 정보(예: 사용자 이름과 비밀번호)의 노출로 이어집니다.

 

중간자 공격 (Man-in-the-Middle Attack): 공격자가 사용자의 연결을 자신의 장치를 통해 강제로 통과시킨 후, 약한 암호화를 이용해 전송된 데이터를 가로채고 접근할 수 있습니다.

 

[실습]

준비물

 

sqlite3  https://crackstation.net/

 

CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.

Free Password Hash Cracker Enter up to 20 non-salted hashes, one per line: Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults How Crack

crackstation.net

 

 

 

경로 /assets 로 들어가면

 

webapp.db 가 보일것이다

 

다운로드

 

 

admin 6eea9b7ef19179a06954edd0f6c05ceb

 

 

6eea9b7ef19179a06954edd0f6c05ceb 크랙하여 비밀번호를 알아낼것이다.

 

 

qwertyuiop

 

얻은 정보로 

 

admin

 

qwertyuiop

 

 

 

3. injection 주입 ( command injection )

 

위와같이 설명

SQL 인젝션 (SQL Injection):

  • 문제: 사용자 입력이 SQL 쿼리에 전달될 때 발생합니다. 공격자는 SQL 쿼리를 삽입하여 데이터베이스 쿼리의 결과를 조작할 수 있습니다. 이를 통해 데이터베이스의 정보에 접근하거나, 정보를 수정하거나 삭제할 수 있으며, 민감한 정보를 탈취할 수 있습니다.

커멘드 인젝션 (Command Injection):

  • 문제: 사용자 입력이 시스템 명령어에 전달될 때 발생합니다. 공격자는 서버에서 임의의 시스템 명령어를 실행할 수 있으며, 이는 사용자의 시스템에 접근하거나 시스템에 피해를 줄 수 있습니다.

[실습]

 

whoami 명령어를 치면 그대로 입력되어 

 

apache 라는 버전을 쓰고있다는걸 알려주고 있다

 

 

drepepper.txt 

 

 

4. Insecure Design 이란?

Insecure Design 취약점은 웹 애플리케이션의 설계 단계에서 발생하는 보안 문제를 의미합니다. 이는 애플리케이션의 아키텍처나 디자인에서 보안 고려 사항이 부족하거나 전혀 반영되지 않을 때 발생합니다. 잘못된 설계는 다양한 보안 취약점을 초래할 수 있으며, 이는 공격자가 시스템을 악용하거나 데이터를 훔치는 데 이용될 수 있습니다.

 

[실습]

 

 

 

 joseph

 

 

 

 

 

5. Security Misconfiguration 이란?

 

위와같이 설명

Security Misconfigurations는 애플리케이션, 서버, 또는 클라우드 서비스의 보안 설정이 적절하게 구성되지 않은 경우 발생하는 취약점입니다. 이러한 설정 문제는 최신 소프트웨어를 사용하더라도 보안 문제를 일으킬 수 있으며, 악의적인 공격자가 이를 악용할 수 있습니다.

 

한마디로 개발자가 보안을 허술하게 만들면 해커의 먹잇감이 될수있다는거.

 

[실습]

 

 

import os; print(os.popen("ls -l").read())

커멘드 인젝션처럼 임의로 서버에 명령을 내려 플레그를 획득할수 있는걸로 보인다...

 

 

데이터베이스에 이름은 todo.db 가 된다.

 

 

 

밑줄을좀 그지같이 쓰긴했는데 요게 플레그다

 

나머지는 다음에 설명 해드리겠습니다 !!

여기까지 봐주셔서 감사합니다.