카테고리 없음

14주차 모의해킹 공부 이야기

h/bhacker 2025. 1. 27. 00:36

14주차 수업

 

*CSRF

정의

> 피해자 서버로 공격자가 원하는 요청을 보내게 만드는 공격

 

공격 시나리오

- Link

(POST Method방식이면) form 태그 삽입하는 XSS 취약점과 연계해서 사용함

-(임의의 데이터를 탈취하거나 토큰이 필요하다면) iframe을 이용함

 

CSRF 대응 방안

상황에 따라 다르게 맞는 방법을 사용해야함

> 인증정보를 추가하는 것(중요정보 바꾸는 것등)

> 레퍼러 검증(글쓰기 등 중요허자않은 것등) (API형식으로 개발한다. but 레퍼러 검증을 하면 확장성이 떨어짐)

 

*File Upload

*정의

공격자가 원하는 임의의 파일을 업로드하는 공격

 

*발생 원인

> 파일을 업로드 받을 때

> 검증, 검사를 안한다.

 

ex)

프로필 사진

이미지 파일만 받으려고 만든 서비스 임

but 다른 이상한 파일들도 올라갈 수 있다.

 

발생위치

>파일을 업로드 할 수 있는 곳 어디든지 가능하다.

 

-burp suite로 확인하기

----------------------------------------------------------------------------------------------

--File Upload 공격으로 뭘 할 수 있는데?

 

* 공격 시나리오

(제한이 없이 파일을 올릴 수 있는 곳이 있다)

Unlimited

 

서버측 실행 파일을 업로드 할 수 있다.

>php파일(서버에서 실행되는 서버측 파일)

>서버에서 우리가 원하는 코드를 실행할 수 있다.

>우리가 서버에게 원하는 명령을 내릴 수 있다.

그렇게 되면 그 서버는 내꺼다.

>그 서버를 장악할 수 있다.

windiws =-> exe파일

 

 

ex)

> test.php (php코드인데 너무 나쁜 코드를 작성해서 이것을 업로드한다.->test.php파일을 주세요라고 서버에 요청하면

<?php 된다. 그럼 우리가 삽입했던 나쁜 코드가 서버 측에서 실행된다.)

ejfiwejfiewijf

fjeijfiwefj

?>

 

normaltic.com/test.php

 

 

-DoS(서비스 거부)공격 -백도어

-웹 셀 - 악성 프로그램 설치 파일

-악성코드 업로드

 

 

----------------------------------------------------------------------------------------

*Server Side Scropt VS Client Side Script(

백엔드 vs 프론트 엔드

서버측 실행 코드(php,asp,jsp,python, nodejs .. 웹 브라우저 실행 코드(html,css,javascript)

XSS

php는 서처측 실행 코드라서 서버에서 다 실행 후 실행 결과를 요청자에게 준다

 

2. Phishg : HTML 파일을 업로드

(파일 업로드 공격이 가능하다면)

login.php 만들었다.

(그런데)naver.com/login.php 로 올라가게 되어있다.

 

3.Deface 공격

>index 파일 (덮어쓰기, 메인 퍼이지 바꾸는 것)

 

4.XSS

>Stored XSS

(ex)

메인페이지를 덮어쓰기래서

<script>

aifhaf;afjpa;fa;f

asfjap;faaksdf’;

</script>

 

Stored XSS 공격을 할 수 있다.

 

5. DoS(도스 공격)

 

-----------------------------------------------------------------------------------------------

-서버측 실생 파일

: Web Shell (인터넷 상에서 명령을 내리게 하는 것)

 

ex)

<?php

echo system($_GET[‘cmd’[];

?>

 

웹 해킹

 

 

-- --

침투테스트 (모의해킹과 영역이 조금 다름 이런 게 있구나 정로로 알고 지나가자)

> shell.

> root 권한

 

*웹쉘 공격의 핵심

웹 서버측 실행 코드를 업로드 할 수 있어야 함

 

2.업로드된 파일의 경로를 알고 있어야 함

 

*경로 확인

- 업로드한 파일이 출력되는 곳을 확인한다.

 

업로드한 파일의 경로를 알아내는 이유

-> 알아야 요청을 하고 >요청해야 실행하기때문임

 

XSS, CSRF : Client 공경

 

SQL Injection. --

| - 서버측 공격

Web shell. --

 

-----------------------------------------------

 

 

jsp언어에서는 jsp언어로 코드를 작성해서 올릴 수 있다 php처럼

jspjava 파일로도 실행시킬 수 있다.

-핵심은 서버에서 실행할 수 있는 파일을 올린다.-

 

파일 업로드 약한 대응?

>업로드 되는 파일을 검사하자! 제한!

 

MIME

 

Content-Typey: text/php (=검사하는 것)\

 

실행 x

/files/avatars/‘~~~~

실행x

 

*php 확장자

-> PhP, pHp, pHP

 

*.phtml, .php3, .php5

 

*jsp

-> jspx, jsw

 

=> 결론 다른 확장자를 사용할 수 있다.

 

*정상적인 이미지

normaltic.png

-> hex editor

핵스 값이 막 나오는데 그 중간이나 끝에다가 아래 문장을 쓰면 된다,

<?php system($_GET[‘cmd’]);?>

그리고 확장자를 png에서 php로 바꾼다. 그리고 난 후 파일을 올린다.

 

File Signature

: jpeg, png, pdf, img

 

**

서버측 실행 코드를 업로드 하는 이유는

->서버에서 실행하기 위해서이다,

-> 서버에서 실행할 수 있도록 업로드 해야한다.

그렇기 때문에 webshell.png라고 올려도 실행이 안된다, why? -> 서버에서 실행할 수 있는 언어가 없기 때문

webshell.php로 올려야 실행됨

 

*파일 업로드 취약점을 찾을 때 주의할 점

모의해킹을 할 때 주의할 점

-웹 셀을 올리면 안된

-> 노매너임

 

테스트 할 때 웹셀을 올리는 이유

업로드 한 파일을 실행할 수 있는지 체크

 

XSS : alert(1) 크사 취약점 시 얼럿을 띄우는 이유는 스크립트가 실행되는 것을 보여주려고 올리는 것임 poc

 

poc

<?php

echo “hello”

?>

실행이 되었다면 hello만 출력되고 안되면 <php전체가 나옴

 

증명이 끝나고 협의하는 것임

웹셀을 올려도 되는지 협의 후 올려도 된다고 할 때 올리는 것임 -> 매너임

웹셀 테스트 후 바로 삭제해야험

담당자엑세 삭제 요청을 해야함 체크

 

14주차 과제

웹서버 개발 제출

웹쉘 문제 풀기

3.개링 웹쉫 서버 :업로드

+reverse shell 연결해보기