제목 : 특정 시금치 웹 사이트에 대한 침투 테스트

실수로 ThinkPhp 시금치 사이트를 발견했습니다. 최근 TP에 허점이 없었습니까?
그런 다음 우연히 테스트했지만 프로세스는 그리 매끄럽지 않았지만 마침내 이겼 으므로이 기사를 게시하여 아이디어를 공유했습니다.

0x00 一键getshell​

간단한 모습을 보이면 많은 사람들이 놀아야합니까?
1049983-20240105093324133-383409570.png
며칠 전, 나는 테스트 도구를 작성하여 먼저 테스트하기 위해 꺼냈습니다.
이 도구는 취약성을 보여줍니다
1049983-20240105093335090-2095780538.png
한 클릭 getshell, 매우 매끄럽게 보입니다.
1049983-20240105093335989-559902528.png
그러나 . Xiao Ming은 머리를 흔들어 상황이 간단하지 않다는 것을 알았습니다.
1049983-20240105093336787-674964719.png
주방 나이프가 연결되면 500의 오류가 반환됩니다.
1049983-20240105093337570-1853999192.png
우리는 Firefox의 해킹 바를 사용하여 확인했습니다. 아무 문제가 없으므로 왜 부엌 칼을 연결할 수 없습니까?
인색 한 사람으로서, 나는 도울 수 없었지만 깊은 생각에 빠지게되었습니다 .
1049983-20240105093338367-558319976.png

0x01 开始分析​

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

0x02 尝试突破拿shell​

Echo를 실행할 수 있으므로 조랑말을 쓸 수 있습니다. 그것이 성공하면, 우리는 조랑말을 사용하여 조랑말을 업로드하여 말하자마자 그것을 할 것입니다. 열심히 일할 때, 우리는 그것을 라인으로 써야합니다.
참고 : 코드의 기호는 ^^로 피해야합니다. 예를 들어? PHP는 ^^? php로 탈출했습니다
1049983-20240105093340495-1537021683.png
라인 별 글쓰기가 완료된 후에는 액세스 할 때 정상적으로 실행할 수 없다는 것을 알았습니다. 여기서 스크린 샷을 찍는 것을 잊었습니다.
다음으로 다음 방법을 사용하여 파일을 서버로 다운로드하려고했고 실패했습니다.
1049983-20240105093351352-1328543067.png
포기하려고했을 때, 나는 여전히 쓸모없는 다운로드 명령이 있다는 것을 기억했습니다.
그것은 certutil.exe입니다
그냥, 말레이시아를 서버에 넣고 HFS를 활성화하십시오.
그런 다음 다음 명령을 실행하십시오.
1049983-20240105093352245-99523761.png
는 말레이시아에 성공적으로 입국했지만 너무 일찍 행복하지는 않습니다.
1049983-20240105093353277-1543002363.png
Xiao Ming은 머리카락을 다시 흔들어 상황이 더 어려웠다는 것을 알았습니다 .
1049983-20240105093354070-918181612.png
말레이시아는 파일 업로드 및 이름을 변경할 수 있지만 파일을 편집 할 수는 없거나 파일 소스 코드를 볼 수 없으며 클릭하여 빈 공간을 표시 할 수 없습니다.
1049983-20240105093354903-784253893.png
그렇기 때문에 데이터베이스로 가서 살펴 보겠습니다.
우리는 모두 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를 사용하여 소스 코드를 읽을 수도 있습니다.
1049983-20240105093405723-1104995441.png
DAMA를 사용 하여이 파일을 루트 디렉토리에 업로드 한 다음 액세스 한 다음 데이터베이스 구성 정보를 성공적으로 얻습니다.
1049983-20240105093407641-1694905724.png
다음 구성 정보를 채우고 데이터베이스를 입력하십시오.
1049983-20240105093408996-20299154.png
1049983-20240105093415084-497983513.png
이 기사가 작성된 밤 늦은 밤 이었어요. 나는 테이블에서 인스턴트 국수의 절반을 먹은 인스턴트 국수를보고 마침내 수프 한 모금을 마시고 전화를 끄고 잠자리에 들었다 .
원래 링크에서 재 인쇄 : https://www.jianshu.com/p/1f9b02780f1c
 
뒤로
상단