KoreanHackerTeam
Moderator
실수로 ThinkPhp 시금치 사이트를 발견했습니다. 최근 TP에 허점이 없었습니까?
그런 다음 우연히 테스트했지만 프로세스는 그리 매끄럽지 않았지만 마침내 이겼 으므로이 기사를 게시하여 아이디어를 공유했습니다.
며칠 전, 나는 테스트 도구를 작성하여 먼저 테스트하기 위해 꺼냈습니다.
이 도구는 취약성을 보여줍니다
한 클릭 getshell, 매우 매끄럽게 보입니다.
그러나 . Xiao Ming은 머리를 흔들어 상황이 간단하지 않다는 것을 알았습니다.
주방 나이프가 연결되면 500의 오류가 반환됩니다.
우리는 Firefox의 해킹 바를 사용하여 확인했습니다. 아무 문제가 없으므로 왜 부엌 칼을 연결할 수 없습니까?
인색 한 사람으로서, 나는 도울 수 없었지만 깊은 생각에 빠지게되었습니다 .
다음과 같이 POC
/?
POC 후에 Whoami를 입력하여 권한을보기합시다.
/?
IIS 허가
그러나 Echo dir 등과 같은 일부 명령을 실행할 수 있습니다.
참고 : 코드의 기호는 ^^로 피해야합니다. 예를 들어? PHP는 ^^? php로 탈출했습니다
라인 별 글쓰기가 완료된 후에는 액세스 할 때 정상적으로 실행할 수 없다는 것을 알았습니다. 여기서 스크린 샷을 찍는 것을 잊었습니다.
다음으로 다음 방법을 사용하여 파일을 서버로 다운로드하려고했고 실패했습니다.
포기하려고했을 때, 나는 여전히 쓸모없는 다운로드 명령이 있다는 것을 기억했습니다.
그것은 certutil.exe입니다
그냥, 말레이시아를 서버에 넣고 HFS를 활성화하십시오.
그런 다음 다음 명령을 실행하십시오.
는 말레이시아에 성공적으로 입국했지만 너무 일찍 행복하지는 않습니다.
Xiao Ming은 머리카락을 다시 흔들어 상황이 더 어려웠다는 것을 알았습니다 .
말레이시아는 파일 업로드 및 이름을 변경할 수 있지만 파일을 편집 할 수는 없거나 파일 소스 코드를 볼 수 없으며 클릭하여 빈 공간을 표시 할 수 없습니다.
그렇기 때문에 데이터베이스로 가서 살펴 보겠습니다.
우리는 모두 TP의 데이터베이스 구성 파일이 다음 위치에 있음을 알고 있습니다.
/application/database.php
말레이시아를 열 수 없으므로 TP 명령을 사용하여 취약점을 실행하고 유형 명령을 사용 하여이 파일을 읽을 수 있습니다.
/?s=Index/\think\app/invokefunctionfunction=call_user_func_arrayvars=]=systemvars=]==thempplication\database.php
유형을 읽으려는 시도는 실패한 다음 사본 명령이 떠 올랐습니다.
Database.php를 웹 루트 디렉토리로 복사하고 이름을 1.txt로 변경합니다.
/?
복사 후 URL/1.txt를 방문하여 비어 있음을 알게됩니다.
DAMA를 사용 하여이 파일을 루트 디렉토리에 업로드 한 다음 액세스 한 다음 데이터베이스 구성 정보를 성공적으로 얻습니다.
다음 구성 정보를 채우고 데이터베이스를 입력하십시오.
이 기사가 작성된 밤 늦은 밤 이었어요. 나는 테이블에서 인스턴트 국수의 절반을 먹은 인스턴트 국수를보고 마침내 수프 한 모금을 마시고 전화를 끄고 잠자리에 들었다 .
원래 링크에서 재 인쇄 : https://www.jianshu.com/p/1f9b02780f1c
그런 다음 우연히 테스트했지만 프로세스는 그리 매끄럽지 않았지만 마침내 이겼 으므로이 기사를 게시하여 아이디어를 공유했습니다.
0x00 一键getshell
간단한 모습을 보이면 많은 사람들이 놀아야합니까?
이 도구는 취약성을 보여줍니다




인색 한 사람으로서, 나는 도울 수 없었지만 깊은 생각에 빠지게되었습니다 .

0x01 开始分析
이 도구를 직접 썼기 때문에 위의 getshell 그림에서 세 번째 exp가 호출되었다는 것을 알았으므로 분석하고 살펴 보겠습니다.다음과 같이 POC
/?
POC 후에 Whoami를 입력하여 권한을보기합시다.
/?
IIS 허가
그러나 Echo dir 등과 같은 일부 명령을 실행할 수 있습니다.

0x02 尝试突破拿shell
Echo를 실행할 수 있으므로 조랑말을 쓸 수 있습니다. 그것이 성공하면, 우리는 조랑말을 사용하여 조랑말을 업로드하여 말하자마자 그것을 할 것입니다. 열심히 일할 때, 우리는 그것을 라인으로 써야합니다.참고 : 코드의 기호는 ^^로 피해야합니다. 예를 들어? PHP는 ^^? php로 탈출했습니다

다음으로 다음 방법을 사용하여 파일을 서버로 다운로드하려고했고 실패했습니다.

그것은 certutil.exe입니다
그냥, 말레이시아를 서버에 넣고 HFS를 활성화하십시오.
그런 다음 다음 명령을 실행하십시오.




우리는 모두 TP의 데이터베이스 구성 파일이 다음 위치에 있음을 알고 있습니다.
/application/database.php
말레이시아를 열 수 없으므로 TP 명령을 사용하여 취약점을 실행하고 유형 명령을 사용 하여이 파일을 읽을 수 있습니다.
/?s=Index/\think\app/invokefunctionfunction=call_user_func_arrayvars=]=systemvars=]==thempplication\database.php
유형을 읽으려는 시도는 실패한 다음 사본 명령이 떠 올랐습니다.
Database.php를 웹 루트 디렉토리로 복사하고 이름을 1.txt로 변경합니다.
/?
복사 후 URL/1.txt를 방문하여 비어 있음을 알게됩니다.
0x03 成功突破
일련의 실패를 경험 한 후, 나는 진정하고 생각했으며 File_path를 사용하여 소스 코드를 읽을 수도 있습니다.



원래 링크에서 재 인쇄 : https://www.jianshu.com/p/1f9b02780f1c