Blame


1 84c190b6 2021-12-17 jrmu <?php
2 84c190b6 2021-12-17 jrmu
3 84c190b6 2021-12-17 jrmu $hashirc = isset($_REQUEST['hashirc']) ? $_REQUEST['hashirc'] : NULL;
4 84c190b6 2021-12-17 jrmu $hashbnc = isset($_REQUEST['hashbnc']) ? $_REQUEST['hashbnc'] : NULL;
5 84c190b6 2021-12-17 jrmu $hashshell = isset($_REQUEST['hashshell']) ? $_REQUEST['hashshell'] : NULL;
6 84c190b6 2021-12-17 jrmu $hashsmtp = isset($_REQUEST['hashsmtp']) ? $_REQUEST['hashsmtp'] : NULL;
7 84c190b6 2021-12-17 jrmu $lines = file('botnow.conf');
8 84c190b6 2021-12-17 jrmu
9 84c190b6 2021-12-17 jrmu foreach ($lines as $i => $line) {
10 84c190b6 2021-12-17 jrmu if (preg_match('/^\#/', $line, $matches)) {
11 84c190b6 2021-12-17 jrmu } elseif (preg_match('/^\s*$/', $line, $matches)) {
12 84c190b6 2021-12-17 jrmu } elseif (preg_match('/^([^=\s]+)\s*=\s*(.*)$/', $line, $matches)) {
13 84c190b6 2021-12-17 jrmu $key = $matches[1];
14 84c190b6 2021-12-17 jrmu $val = $matches[2];
15 84c190b6 2021-12-17 jrmu $conf{$key} = $val;
16 84c190b6 2021-12-17 jrmu }
17 84c190b6 2021-12-17 jrmu }
18 84c190b6 2021-12-17 jrmu
19 84c190b6 2021-12-17 jrmu $wordslist = file('words');
20 84c190b6 2021-12-17 jrmu $wordslen = sizeof($wordslist);
21 84c190b6 2021-12-17 jrmu for ($n = 0; $n < 5; $n++) {
22 84c190b6 2021-12-17 jrmu $i = rand(0, $wordslen-1);
23 84c190b6 2021-12-17 jrmu $words[] = substr($wordslist[$i],0,-1); // remove newline
24 84c190b6 2021-12-17 jrmu }
25 84c190b6 2021-12-17 jrmu $passphrase = implode(" ", $words);
26 84c190b6 2021-12-17 jrmu $passphrase = ucwords($passphrase);
27 84c190b6 2021-12-17 jrmu $fpr{"passphrase"} = $passphrase;
28 84c190b6 2021-12-17 jrmu $fpr{"remoteaddr"} = $_SERVER['REMOTE_ADDR'];
29 84c190b6 2021-12-17 jrmu $fpr{"httpxforwarded"} = $_SERVER['HTTP_X_FORWARDED_FOR'];
30 84c190b6 2021-12-17 jrmu $fpr{"time"} = date("Y-m-d H:i:s");
31 84c190b6 2021-12-17 jrmu if (isset($hashirc)) {
32 84c190b6 2021-12-17 jrmu $fpr{"hashirc"} = $hashirc;
33 84c190b6 2021-12-17 jrmu } elseif (isset($hashbnc)) {
34 84c190b6 2021-12-17 jrmu $fpr{"hashbnc"} = $hashbnc;
35 84c190b6 2021-12-17 jrmu } elseif (isset($hashshell)) {
36 84c190b6 2021-12-17 jrmu $fpr{"hashshell"} = $hashshell;
37 84c190b6 2021-12-17 jrmu } elseif (isset($hashsmtp)) {
38 84c190b6 2021-12-17 jrmu $fpr{"hashsmtp"} = $hashsmtp;
39 84c190b6 2021-12-17 jrmu }
40 84c190b6 2021-12-17 jrmu
41 84c190b6 2021-12-17 jrmu foreach (getallheaders() as $key => $value) {
42 84c190b6 2021-12-17 jrmu if ($key == "User-Agent") {
43 84c190b6 2021-12-17 jrmu $key = "useragent";
44 84c190b6 2021-12-17 jrmu } elseif ($key == "Upgrade-Insecure-Requests") {
45 84c190b6 2021-12-17 jrmu $key = "upgradeinsecure";
46 84c190b6 2021-12-17 jrmu } elseif ($key == "Host") {
47 84c190b6 2021-12-17 jrmu $key = "host";
48 84c190b6 2021-12-17 jrmu } elseif ($key == "Dnt") {
49 84c190b6 2021-12-17 jrmu $key = "dnt";
50 84c190b6 2021-12-17 jrmu } elseif ($key == "Connection") {
51 84c190b6 2021-12-17 jrmu $key = "connection";
52 84c190b6 2021-12-17 jrmu } elseif ($key == "Cache-Control") {
53 84c190b6 2021-12-17 jrmu $key = "cachecontrol";
54 84c190b6 2021-12-17 jrmu } elseif ($key == "Accept-Language") {
55 84c190b6 2021-12-17 jrmu $key = "acceptlanguage";
56 84c190b6 2021-12-17 jrmu } elseif ($key == "Accept-Encoding") {
57 84c190b6 2021-12-17 jrmu $key = "acceptencoding";
58 84c190b6 2021-12-17 jrmu } elseif ($key == "Accept") {
59 84c190b6 2021-12-17 jrmu $key = "accept";
60 84c190b6 2021-12-17 jrmu } elseif ($key == "Cookie") {
61 84c190b6 2021-12-17 jrmu $key = "cookie";
62 84c190b6 2021-12-17 jrmu }
63 84c190b6 2021-12-17 jrmu $fpr{$key} = $value;
64 84c190b6 2021-12-17 jrmu }
65 84c190b6 2021-12-17 jrmu
66 84c190b6 2021-12-17 jrmu setcookie("ircnow[hashirc]", $hashirc, time()+86400*30, '/', 'ircnow.org', true);
67 84c190b6 2021-12-17 jrmu setcookie("ircnow[hashbnc]", $hashbnc, time()+86400*30, '/', 'ircnow.org', true);
68 84c190b6 2021-12-17 jrmu setcookie("ircnow[hashshell]", $hashshell, time()+86400*30, '/', 'ircnow.org', true);
69 84c190b6 2021-12-17 jrmu setcookie("ircnow[hashsmtp]", $hashsmtp, time()+86400*30, '/', 'ircnow.org', true);
70 84c190b6 2021-12-17 jrmu
71 84c190b6 2021-12-17 jrmu class wwwdb extends SQLite3 {
72 84c190b6 2021-12-17 jrmu function __construct() {
73 84c190b6 2021-12-17 jrmu $this->open('/botnow/botnow.db');
74 84c190b6 2021-12-17 jrmu }
75 84c190b6 2021-12-17 jrmu }
76 84c190b6 2021-12-17 jrmu $wwwdb = new wwwdb();
77 84c190b6 2021-12-17 jrmu if(!$wwwdb) {
78 84c190b6 2021-12-17 jrmu echo $wwwdb->lastErrorMsg();
79 84c190b6 2021-12-17 jrmu } else {
80 84c190b6 2021-12-17 jrmu foreach ($fpr as $key => $value) {
81 84c190b6 2021-12-17 jrmu $keys[] = $key;
82 84c190b6 2021-12-17 jrmu $values[] = $value;
83 84c190b6 2021-12-17 jrmu }
84 84c190b6 2021-12-17 jrmu $keystr = '"'.implode('","', $keys).'"';
85 84c190b6 2021-12-17 jrmu $valstr = '"'.implode('","', $values).'"';
86 84c190b6 2021-12-17 jrmu $sql =<<<EOF
87 84c190b6 2021-12-17 jrmu INSERT INTO www ($keystr)
88 84c190b6 2021-12-17 jrmu VALUES ($valstr);
89 84c190b6 2021-12-17 jrmu EOF;
90 84c190b6 2021-12-17 jrmu if (!$wwwdb->exec($sql)) {
91 84c190b6 2021-12-17 jrmu echo $db->lastErrorMsg();
92 84c190b6 2021-12-17 jrmu }
93 84c190b6 2021-12-17 jrmu $clients = array("AdiIRC", "Adium", "AndroIRC", "Atomic", "Colloquy", "Hexchat", "HydraIRC", "IRCForAndroid", "IRCCloud", "IceChat", "ircEX", "irssi", "Igloo", "KVIrc", "KiwiIRC", "Limechat", "Mibbit", "mIRC", "nettalk", "Pidgin", "qwebirc", "Quassel", "RevolutionIRC", "SimpleIRC", "Smuxi", "Textual", "Thunderbird", "TurboIRC", "Weechat", "Yaaic", "XChat");
94 84c190b6 2021-12-17 jrmu $sql =<<<EOF
95 84c190b6 2021-12-17 jrmu SELECT * from irc where hashid = "$hashirc";
96 84c190b6 2021-12-17 jrmu EOF;
97 84c190b6 2021-12-17 jrmu $ret = $wwwdb->query($sql);
98 84c190b6 2021-12-17 jrmu while($row = $ret->fetchArray(SQLITE3_ASSOC)) {
99 84c190b6 2021-12-17 jrmu echo "Don't worry I got called";
100 84c190b6 2021-12-17 jrmu $ircid = $row['id'];
101 84c190b6 2021-12-17 jrmu $ctcpversion = $row['ctcpversion'];
102 84c190b6 2021-12-17 jrmu $hostmask = $row['hostmask'];
103 84c190b6 2021-12-17 jrmu foreach ($clients as $i => $value) {
104 84c190b6 2021-12-17 jrmu if (preg_match("/$value/i", $ctcpversion, $matches)) {
105 84c190b6 2021-12-17 jrmu $client = $value;
106 84c190b6 2021-12-17 jrmu }
107 84c190b6 2021-12-17 jrmu }
108 84c190b6 2021-12-17 jrmu if (!isset($client)) {
109 84c190b6 2021-12-17 jrmu if (preg_match('/!~?uid\d+/i', $hostmask, $matches)) {
110 84c190b6 2021-12-17 jrmu $client = "IRCCloud";
111 84c190b6 2021-12-17 jrmu } elseif(preg_match('/!~?quassel/i', $hostmask, $matches)) {
112 84c190b6 2021-12-17 jrmu $client = "Quassel";
113 84c190b6 2021-12-17 jrmu } elseif(preg_match('/!~?IceChat/i', $hostmask, $matches)) {
114 84c190b6 2021-12-17 jrmu $client = "IceChat";
115 84c190b6 2021-12-17 jrmu } elseif(preg_match('/Purple\s+IRC/i', $ctcpversion, $matches)) {
116 84c190b6 2021-12-17 jrmu $client = "Pidgin";
117 84c190b6 2021-12-17 jrmu } elseif(preg_match('/X-Chat/i', $ctcpversion, $matches)) {
118 84c190b6 2021-12-17 jrmu $client = "XChat";
119 84c190b6 2021-12-17 jrmu } elseif(preg_match('/Kiwi\s+IRC/i', $ctcpversion, $matches)) {
120 84c190b6 2021-12-17 jrmu $client = "KiwiIRC";
121 84c190b6 2021-12-17 jrmu } elseif(preg_match('/Android\s+IRC/i', $ctcpversion, $matches)) {
122 84c190b6 2021-12-17 jrmu $client = "AndroIRC";
123 84c190b6 2021-12-17 jrmu } elseif(preg_match('/IRC\s+for\s+Android/i', $ctcpversion, $matches)) {
124 84c190b6 2021-12-17 jrmu $client = "IRCForAndroid";
125 84c190b6 2021-12-17 jrmu } elseif(preg_match('/Revolution\s+IRC/i', $ctcpversion, $matches)) {
126 84c190b6 2021-12-17 jrmu $client = "RevolutionIRC";
127 84c190b6 2021-12-17 jrmu } elseif(preg_match('/Yet\s+another\s+Android\s+IRC\s+client/i', $ctcpversion, $matches)) {
128 84c190b6 2021-12-17 jrmu $client = "Yaaic";
129 84c190b6 2021-12-17 jrmu } else {
130 84c190b6 2021-12-17 jrmu $client = "Bouncer";
131 84c190b6 2021-12-17 jrmu }
132 84c190b6 2021-12-17 jrmu }
133 84c190b6 2021-12-17 jrmu
134 84c190b6 2021-12-17 jrmu }
135 84c190b6 2021-12-17 jrmu $sql =<<<EOF
136 84c190b6 2021-12-17 jrmu SELECT * from bnc where ircid = "$ircid";
137 84c190b6 2021-12-17 jrmu EOF;
138 84c190b6 2021-12-17 jrmu $ret = $wwwdb->query($sql);
139 84c190b6 2021-12-17 jrmu while($row = $ret->fetchArray(SQLITE3_ASSOC)) {
140 84c190b6 2021-12-17 jrmu $username = $row['username'];
141 84c190b6 2021-12-17 jrmu }
142 84c190b6 2021-12-17 jrmu $wwwdb->close();
143 84c190b6 2021-12-17 jrmu }
144 84c190b6 2021-12-17 jrmu function myURLEncode($string) {
145 84c190b6 2021-12-17 jrmu $replace = array('%20', '%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%23', '%5B', '%5D');
146 84c190b6 2021-12-17 jrmu $search = array(' ', '!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "#", "[", "]");
147 84c190b6 2021-12-17 jrmu return str_replace($search, $replace, $string);
148 84c190b6 2021-12-17 jrmu }
149 84c190b6 2021-12-17 jrmu $hostname = $conf{"hostname"};
150 84c190b6 2021-12-17 jrmu ?>
151 84c190b6 2021-12-17 jrmu
152 84c190b6 2021-12-17 jrmu <!DOCTYPE html>
153 84c190b6 2021-12-17 jrmu <html lang="en">
154 84c190b6 2021-12-17 jrmu <head>
155 84c190b6 2021-12-17 jrmu <meta charset="utf-8">
156 84c190b6 2021-12-17 jrmu <meta name="viewport" content="width=device-width, initial-scale=1">
157 84c190b6 2021-12-17 jrmu <meta name="robots" content="index, follow"/>
158 84c190b6 2021-12-17 jrmu <title>IRCNow -- Verify Account</title>
159 84c190b6 2021-12-17 jrmu <style>
160 84c190b6 2021-12-17 jrmu body {
161 84c190b6 2021-12-17 jrmu width: 80%;
162 84c190b6 2021-12-17 jrmu margin: 5rem auto;
163 84c190b6 2021-12-17 jrmu text-align: center;
164 84c190b6 2021-12-17 jrmu font-family: "Tahoma", "Verdana", "Arial";
165 84c190b6 2021-12-17 jrmu }
166 84c190b6 2021-12-17 jrmu </style>
167 84c190b6 2021-12-17 jrmu <script>
168 84c190b6 2021-12-17 jrmu console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
169 84c190b6 2021-12-17 jrmu var offset = new Date().getTimezoneOffset();
170 84c190b6 2021-12-17 jrmu console.log(offset);
171 84c190b6 2021-12-17 jrmu console.log(new Date().toString());
172 84c190b6 2021-12-17 jrmu console.log(window.screen.width);
173 84c190b6 2021-12-17 jrmu console.log(window.screen.height);
174 84c190b6 2021-12-17 jrmu //console.log(screen.availWidth);
175 84c190b6 2021-12-17 jrmu //console.log(screen.availHeight);
176 84c190b6 2021-12-17 jrmu console.log(screen.colorDepth);
177 84c190b6 2021-12-17 jrmu </script>
178 84c190b6 2021-12-17 jrmu </head>
179 84c190b6 2021-12-17 jrmu
180 84c190b6 2021-12-17 jrmu <body>
181 84c190b6 2021-12-17 jrmu <p>Please email <a href="mailto:<?php echo $conf{"mailfrom"}."?subject=".myURLEncode("IRCNow Verify: $passphrase")."&body=".myURLEncode("IRCNow Verify: $passphrase") ?>"><?php echo $conf{"mailfrom"} ?></a> with the following passphrase:</p>
182 84c190b6 2021-12-17 jrmu
183 84c190b6 2021-12-17 jrmu <p>IRCNow Verify: <?php echo $passphrase ?></p>
184 84c190b6 2021-12-17 jrmu
185 84c190b6 2021-12-17 jrmu <p><a href="https://wiki.ircnow.org/index.php?n=Bouncer.<?php echo $client ?>">Click here for <?php echo $client ?> connection instructions.</a></p>
186 84c190b6 2021-12-17 jrmu
187 84c190b6 2021-12-17 jrmu <p>To change your password, login to <a href="<?php echo "https://bnc.$hostname/" ?>"><?php echo "https://bnc.$hostname/" ?></a>, fill in the password field, then click on the "Save and Return" button.</p>
188 84c190b6 2021-12-17 jrmu
189 84c190b6 2021-12-17 jrmu <p>Or, you can change the password from your IRC client. Once you have logged in, type:</p>
190 84c190b6 2021-12-17 jrmu
191 84c190b6 2021-12-17 jrmu <code>/msg *controlpanel set password <?php echo $username ?> newpassword</code>
192 84c190b6 2021-12-17 jrmu
193 84c190b6 2021-12-17 jrmu </body>
194 84c190b6 2021-12-17 jrmu </html>