ToKeiChun

Shodan Extractor w/ Browser Console

Dec 10th, 2025
409
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const STORAGE_KEY = 'extracted_urls';
  2. let results = JSON.parse(localStorage.getItem(STORAGE_KEY) || '[]');
  3.  
  4. async function extractAllPages() {
  5.     let currentPage = 1;
  6.     let hasMore = true;
  7.    
  8.     console.log('[Started] Extracting all pages...');
  9.    
  10.     while (hasMore) {
  11.         console.log(`[Page ${currentPage}] Fetching...`);
  12.        
  13.         try {
  14.             // Build URL with page parameter
  15.             const currentUrl = new URL(window.location.href);
  16.             currentUrl.searchParams.set('page', currentPage);
  17.            
  18.             const response = await fetch(currentUrl.toString());
  19.             const html = await response.text();
  20.            
  21.             // Parse HTML
  22.             const parser = new DOMParser();
  23.             const doc = parser.parseFromString(html, 'text/html');
  24.            
  25.             // Extract URLs
  26.             const links = doc.querySelectorAll('a.text-danger[target="_blank"]');
  27.             const urls = Array.from(links).map(link => link.href).filter(url => url);
  28.            
  29.             console.log(`[Page ${currentPage}] Found ${urls.length} URLs`);
  30.            
  31.             // No URLs found = no more pages
  32.             if (urls.length === 0) {
  33.                 hasMore = false;
  34.                 break;
  35.             }
  36.            
  37.             // Add to results (with duplicate check)
  38.             let newCount = 0;
  39.             urls.forEach(url => {
  40.                 if (!results.includes(url)) {
  41.                     results.push(url);
  42.                     newCount++;
  43.                 }
  44.             });
  45.            
  46.             console.log(`[Page ${currentPage}] Added ${newCount} new URLs`);
  47.            
  48.             // Save to localStorage after each page
  49.             localStorage.setItem(STORAGE_KEY, JSON.stringify(results));
  50.             console.log(`[Total] ${results.length} unique URLs collected`);
  51.            
  52.             // FIX: Find the "Next" button specifically (not "Prev")
  53.             const allButtons = doc.querySelectorAll('.pagination a.button');
  54.             const nextButton = Array.from(allButtons).find(btn => btn.textContent.trim() === 'Next');
  55.            
  56.             if (!nextButton) {
  57.                 console.log('[Complete] No "Next" button found - reached last page');
  58.                 hasMore = false;
  59.                 break;
  60.             }
  61.            
  62.             currentPage++;
  63.            
  64.             // Delay to be polite to server
  65.             await new Promise(resolve => setTimeout(resolve, 1000));
  66.            
  67.         } catch (error) {
  68.             console.error(`[Error on page ${currentPage}]`, error);
  69.             hasMore = false;
  70.         }
  71.     }
  72.    
  73.     console.log('[Complete] Extraction finished!');
  74.     console.log(`[Final Count] ${results.length} unique URLs`);
  75.     console.log('[Retrieve] JSON.parse(localStorage.getItem("extracted_urls"))');
  76.    
  77.     // Show results preview
  78.     console.log('[Preview] First 10 URLs:');
  79.     results.slice(0, 10).forEach((url, i) => console.log(`${i+1}. ${url}`));
  80. }
  81.  
  82. // Optional: Clear previous results
  83. // localStorage.removeItem(STORAGE_KEY);
  84. // results = [];
  85.  
  86. extractAllPages();
  87.  
Comments
  • Monsutan
    47 days
    # CSS 0.84 KB | 0 0
    1. ✅ Leaked Exploit Documentation:
    2.  
    3. https://docs.google.com/document/d/1dOCZEHS5JtM51RITOJzbS4o3hZ-__wTTRXQkV1MexNQ/edit?usp=sharing
    4.  
    5. This made me $13,000 in 2 days.
    6.  
    7. Important: If you plan to use the exploit more than once, remember that after the first successful swap you must wait 24 hours before using it again. Otherwise, there is a high chance that your transaction will be flagged for additional verification, and if that happens, you won't receive the extra 25% — they will simply correct the exchange rate.
    8. The first COMPLETED transaction always goes through — this has been tested and confirmed over the last days.
    9.  
    10. Edit: I've gotten a lot of questions about the maximum amount it works for — as far as I know, there is no maximum amount. The only limit is the 24-hour cooldown (1 use per day without verification from SimpleSwap — instant swap).
  • Vinmosen
    41 days
    # CSS 0.06 KB | 0 0
    1. You literally stole this exploit from https://t.me/theprotocolone
Add Comment
Please, Sign In to add comment