공격자가 원하는 임의의 파일업로드
제한이 없다면
<?php echo "good"; ?>~.com/upload/test.phpgood만 화면에 return| 서버측 언어인 경우 |
|---|
![]() |
| 서버측 언어가 아닌 경우 |
|---|
![]() |
-> phising가능
-> index 파일(덮어쓰기)
-> stored xss
서버에 원격으로 명령을 실행할 수 있도록 하는 스크립트
get방식으로 데이터를 전송하면 쉘 실행
<?php system($_GET['cmd']); ?>
| requests & response(pwd명령어 실행) |
|---|
![]() |
내가 업로드 파일 경로를 알아야함
업로드한 파일의 경로를 알아내는 이유
-> 요청해서 실행하기 때문에(경로확인 방법으로 URL 파악)
-> 랜섬웨어 코드를 만들어도 실행이 안되면 의미없음
-> 서버측 언어로 올리기 때문에 서버에서 실행하고 결과값 return
경로확인 확인법
다운로드하는 곳 링크카피
<img src="">or <a href="">
.com/file/upload/test.php 복사됨
| 링크 카피 | 붙여넣기 |
|---|---|
![]() | ![]() |
| 서버를 공격 | 서버를 이용하는 이용자 공격 |
|---|---|
| XSS,CSRF | SQLi, webshell(파일업로드는 둘다 가능) |
| content-Type 변경전 | content-Type 변경후 |
|---|---|
![]() | ![]() |
문제점
업로드후에 파일 서버로 파일을 요청하면 실행이 안되고 코드가 보임
해결법
저장할때 Burp에서 ..%2Ftest.php로 저장
-> 해당페이지에서 실행이 막혀있기때문에 상위폴더에 저장
../ 뜻 상위폴더의미
../ -URL인코딩->..%2F
| 입력 |
|---|
![]() |
다른 확장자를 쓰게하면됨
php인 경우
<?php $_GET['cmd']; ?>삽입| 그림 예시 |
|---|
![]() |
Normaltic Study 6기 14주차