mirror of
				https://codeberg.org/crimeflare/cloudflare-tor
				synced 2025-10-31 00:26:49 +01:00 
			
		
		
		
	index.php
This commit is contained in:
		
							parent
							
								
									25c24b8305
								
							
						
					
					
						commit
						6704bf6d78
					
				
					 1 changed files with 124 additions and 68 deletions
				
			
		|  | @ -1,80 +1,136 @@ | |||
| <?php | ||||
| ignore_user_abort(true); | ||||
| set_time_limit(180); | ||||
| $toots = []; | ||||
| $mastodon_servers = ['your.server.fqdn' => 'https://your.server.fqdn/write_this_block_yourself', 'yours2.fqdn' => 'https://...']; | ||||
| shuffle_assoc($mastodon_servers); | ||||
| $date_ym = gmdate('Ym'); | ||||
| $sqlme = @new mysqli('localhost', 'sseeccrreett', 'sseeccrreett', 'sseeccrreett'); | ||||
| if ($sqlme->connect_errno) | ||||
| { | ||||
|     exit; | ||||
| } | ||||
| foreach ($mastodon_servers as $svF => $svU) | ||||
| $count_all = - 1; | ||||
| if ($r = $sqlme->query("SELECT count(id) FROM toot_scanned;")) | ||||
| { | ||||
|     $got = @json_decode(wget($svU) , true); | ||||
|     if (!is_array($got) || count($got) < 10 || !isset($got[0])) | ||||
|     { | ||||
|         continue; | ||||
|     } | ||||
|     foreach ($got as $g) | ||||
|     { | ||||
|         if (!isset($g['url']) || !preg_match("/write_this_block_yourself/", $g['url'])) | ||||
|         { | ||||
|             continue; | ||||
|         } | ||||
|         if (!isset($g['content']) || strlen($g['content']) < 8) | ||||
|         { | ||||
|             continue; | ||||
|         } | ||||
|         if (!isset($g['account']) || !isset($g['account']['acct']) || !preg_match("/write_this_block_yourself/", $g['account']['acct'])) | ||||
|         { | ||||
|             continue; | ||||
|         } | ||||
|         if (strpos($g['account']['acct'], '@') === false) | ||||
|         { | ||||
|             $g['account']['acct'] = $g['account']['acct'] . '@' . $svF; | ||||
|         } | ||||
|         $txt = array_unique(array_filter(array_map(function ($l) | ||||
|         { | ||||
|             $isURL = (preg_match("/write_this_block_yourself/", $l) && !preg_match("/write_this_block_yourself/", $l)) ? true : false; | ||||
|             return $isURL ? explode('/', explode('://', $l, 2) [1], 2) [0] : ''; | ||||
|         } | ||||
|         , explode('"', strip_tags($g['content'], '<a>'))))); | ||||
|         if (count($txt) == 0) | ||||
|         { | ||||
|             continue; | ||||
|         } | ||||
|         $cfFound = 0; | ||||
|         foreach ($txt as $fqdn) | ||||
|         { | ||||
|             $tmp_id2 = sha1($g['url'] . ';' . $fqdn); | ||||
|             $junk = $sqlme->query("INSERT IGNORE INTO toot_sharefqdn (id,fqdn,ym) VALUES ('{$tmp_id2}','{$fqdn}','{$date_ym}');"); | ||||
|             if (is_known_cf(get_domainname($fqdn) [1])) | ||||
|             { | ||||
|                 $cfFound = 1; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 $junk = $sqlme->query("INSERT IGNORE INTO toot_notcf_fqdn (fqdn,dl) VALUES ('{$fqdn}','0');"); | ||||
|             } | ||||
|         } | ||||
|         $toots[sha1($g['url']) ] = [$g['account']['acct'], $g['url'], $cfFound]; | ||||
|     } | ||||
|     $rr = mysqli_fetch_assoc($r); | ||||
|     $r->free(); | ||||
|     $count_all = $rr['count(id)']; | ||||
| } | ||||
| foreach ($toots as $k => $v) | ||||
| $count_cf = - 1; | ||||
| if ($r = $sqlme->query("SELECT count(id) FROM toot_scanned WHERE iscf=1;")) | ||||
| { | ||||
|     $junk = $sqlme->query("INSERT IGNORE INTO toot_scanned (id,who,iscf,ym) VALUES ('{$k}','{$v[0]}','{$v[2]}','{$date_ym}');"); | ||||
|     if ($v[2] == 1) | ||||
|     { | ||||
|         $junk = $sqlme->query("INSERT IGNORE INTO toot_cfsaid (id,who,url,ym) VALUES ('{$k}','{$v[0]}','{$v[1]}','{$date_ym}');"); | ||||
|     } | ||||
|     $rr = mysqli_fetch_assoc($r); | ||||
|     $r->free(); | ||||
|     $count_cf = $rr['count(id)']; | ||||
| } | ||||
| if (gmdate('G') == 0) | ||||
| if ($count_all == - 1 || $count_cf == - 1) | ||||
| { | ||||
|     $date_ym = gmdate('Ym', strtotime('7 months ago')); | ||||
|     $junk = $sqlme->query("DELETE FROM toot_scanned WHERE ym = '{$date_ym}';"); | ||||
|     $junk = $sqlme->query("DELETE FROM toot_cfsaid WHERE ym = '{$date_ym}';"); | ||||
|     $junk = $sqlme->query("DELETE FROM toot_sharefqdn WHERE ym = '{$date_ym}';"); | ||||
|     exit; | ||||
| } | ||||
| file_put_contents('/onion/sseeccrreett/data/mastodon.toot.scan', ''); | ||||
| $count_acpct = round(($count_cf * 100) / $count_all, 2); | ||||
| $count_all = number_format($count_all); | ||||
| $count_cf = number_format($count_cf); | ||||
| $count_waitask = - 1; | ||||
| if ($r = $sqlme->query("SELECT count(fqdn) FROM toot_notcf_fqdn WHERE dl=0;")) | ||||
| { | ||||
|     $rr = mysqli_fetch_assoc($r); | ||||
|     $r->free(); | ||||
|     $count_waitask = $rr['count(fqdn)']; | ||||
| } | ||||
| $count_waitask = number_format($count_waitask); | ||||
| $lastuptime = humanTiming(filemtime('/onion/sseeccrreett/data/mastodon.toot.scan')); | ||||
| $var_who = htmlspecialchars($_GET['who'], ENT_QUOTES); | ||||
| $resultHTML = ''; | ||||
| if (write_this_block_yourself) | ||||
| { | ||||
|     $var_who = ''; | ||||
| } | ||||
| if (preg_match("/write_this_block_yourself/", $var_who)) | ||||
| { | ||||
|     $resultHTML .= '<br><table border=1>'; | ||||
|     $person_a = 0; | ||||
|     if ($r = $sqlme->query("SELECT count(id) FROM toot_scanned WHERE who='{$var_who}';")) | ||||
|     { | ||||
|         $rr = mysqli_fetch_assoc($r); | ||||
|         $r->free(); | ||||
|         $person_a = $rr['count(id)']; | ||||
|     } | ||||
|     $person_b = 0; | ||||
|     if ($r = $sqlme->query("SELECT count(id) FROM toot_scanned WHERE who='{$var_who}' AND iscf=1;")) | ||||
|     { | ||||
|         $rr = mysqli_fetch_assoc($r); | ||||
|         $r->free(); | ||||
|         $person_b = $rr['count(id)']; | ||||
|     } | ||||
|     $person_c = round(($person_b * 100) / $person_a, 2); | ||||
|     if (is_nan($person_c)) | ||||
|     { | ||||
|         $person_c = 0; | ||||
|     } | ||||
|     $person_a = number_format($person_a); | ||||
|     $person_b = number_format($person_b); | ||||
|     $resultHTML .= "<tr><th>About</th><th>{$var_who}</th></tr>"; | ||||
|     $resultHTML .= "<tr><td>Toots has links</td><td>{$person_a}</td></tr>"; | ||||
|     $resultHTML .= "<tr><td>⮡  Toots has Cloudflare link</td><td>{$person_b}  [<i>{$person_c}</i>%]</td></tr>"; | ||||
|     $resultHTML .= "<tr><td> </td><td>Detected (LIMIT 100)</td></tr>"; | ||||
|     if ($r = $sqlme->query("SELECT url FROM toot_cfsaid WHERE who='{$var_who}' LIMIT 100;")) | ||||
|     { | ||||
|         while ($row = mysqli_fetch_assoc($r)) | ||||
|         { | ||||
|             $vurl = htmlspecialchars($row['url'], ENT_QUOTES); | ||||
|             $resultHTML .= "<tr><td></td><td><a href=\"{$vurl}\" target=\"_blank\">{$vurl}</a></td></tr>"; | ||||
|         } | ||||
|     } | ||||
|     $resultHTML .= '</table>'; | ||||
| } | ||||
| elseif ($var_who == 'a') | ||||
| { | ||||
|     $resultHTML .= '<br><table border=1><tr><th>Shared any links</th><th>Toots</th></tr>'; | ||||
|     if ($r = $sqlme->query("SELECT who,count(*) as count FROM toot_scanned GROUP BY who ORDER BY count DESC LIMIT 100;")) | ||||
|     { | ||||
|         while ($row = mysqli_fetch_assoc($r)) | ||||
|         { | ||||
|             $rcount = number_format($row['count']); | ||||
|             $resultHTML .= "<tr><td><a href=\"./?who={$row['who']}\">{$row['who']}</a></td><td>{$rcount}</td></tr>"; | ||||
|         } | ||||
|     } | ||||
|     $resultHTML .= '</table>'; | ||||
| } | ||||
| elseif ($var_who == 'c') | ||||
| { | ||||
|     $resultHTML .= '<br><table border=1><tr><th>Shared Cloudflare links</th><th>Toots</th></tr>'; | ||||
|     if ($r = $sqlme->query("SELECT who,count(*) as count FROM toot_scanned WHERE iscf=1 GROUP BY who ORDER BY count DESC LIMIT 100;")) | ||||
|     { | ||||
|         while ($row = mysqli_fetch_assoc($r)) | ||||
|         { | ||||
|             $rcount = number_format($row['count']); | ||||
|             $resultHTML .= "<tr><td><a href=\"./?who={$row['who']}\">{$row['who']}</a></td><td>{$rcount}</td></tr>"; | ||||
|         } | ||||
|     } | ||||
|     $resultHTML .= '</table>'; | ||||
| } | ||||
| elseif ($var_who == 'f') | ||||
| { | ||||
|     $resultHTML .= '<br><table border=1><tr><th>Shared FQDN</th><th>Cloudflare</th><th>Found in Toots</th></tr>'; | ||||
|     if ($r = $sqlme->query("SELECT fqdn,count(*) as count FROM toot_sharefqdn GROUP BY fqdn ORDER BY count DESC LIMIT 50;")) | ||||
|     { | ||||
|         while ($row = mysqli_fetch_assoc($r)) | ||||
|         { | ||||
|             $rcount = number_format($row['count']); | ||||
|             $riscf = is_known_cf(get_domainname($row['fqdn']) [1]) ? '<font color="red">Yes</font>' : 'No'; | ||||
|             $resultHTML .= "<tr><td>{$row['fqdn']}</td><td>{$riscf}</td><td>{$rcount}</td></tr>"; | ||||
|         } | ||||
|     } | ||||
|     $resultHTML .= '</table>'; | ||||
| } | ||||
| else | ||||
| { | ||||
|     $resultHTML .= '<ul><li> <a href="./?who=a">Show Top 100 (Shared any links)</a></li>'; | ||||
|     $resultHTML .= '<li> <a href="./?who=c">Show Top 100 (Shared Cloudflare links)</a></li>'; | ||||
|     $resultHTML .= '<li> <a href="./?who=f">Show Top 50 (Shared FQDN)</a></li>'; | ||||
|     $resultHTML .= '<li> <a href="#" onclick="location.href=\'./?who=\'+(prompt(\'user@example.com\')||\'\');">Search by Mastodon ID</a></li></ul>'; | ||||
| } | ||||
| $finalpage = <<<HTMLRESULT | ||||
| <html><title>Shared on Mastodon</title><br><br><div> | ||||
| [ <a href="./">INDEX</a> ] Update <i>{$lastuptime} ago</i><br> | ||||
| <b>Toots has links</b>: {$count_all}<br> | ||||
| ⮡  <b>Toots has Cloudflare link</b>: {$count_cf}  [<i>{$count_acpct}</i>%]<br>
 | ||||
| <b>Pending Investigation</b>: {$count_waitask}<br> | ||||
| <hr>{$resultHTML}</div></html> | ||||
| HTMLRESULT; | ||||
| echo (str_replace("\n", '', $finalpage)); | ||||
		Loading…
	
	Add table
		
		Reference in a new issue