ProbeLoginTry.java 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import java.sql.*;
  2. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  3. /** Try common passwords against tenant sys_user.admin hash. */
  4. public class ProbeLoginTry {
  5. private static final String USER = "root";
  6. private static final String PWD = "Ylrz_1q2w3e4r5t6y";
  7. private static final String[] PASSWORDS = {
  8. "admin123", "123456", "Ylrz_1q2w3e4r5t6y", "1q2w3e4r", "ylrz123456",
  9. "Aa123456", "admin@123", "Admin123", "password", "111111"
  10. };
  11. public static void main(String[] args) throws Exception {
  12. Class.forName("com.mysql.cj.jdbc.Driver");
  13. BCryptPasswordEncoder enc = new BCryptPasswordEncoder();
  14. String[][] tenants = {
  15. {"test001", "ylrz_saas_tenant_1"},
  16. {"cs1", "fs_tenant_cs1"}
  17. };
  18. for (String[] t : tenants) {
  19. String jdbc = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/" + t[1]
  20. + "?useSSL=false&serverTimezone=GMT%2B8";
  21. try (Connection c = DriverManager.getConnection(jdbc, USER, PWD);
  22. Statement st = c.createStatement();
  23. ResultSet rs = st.executeQuery(
  24. "SELECT user_name, password FROM sys_user WHERE user_name='admin' AND del_flag='0' LIMIT 1")) {
  25. if (!rs.next()) {
  26. System.out.println(t[0] + ": no admin user");
  27. continue;
  28. }
  29. String hash = rs.getString("password");
  30. System.out.println("\n=== tenant " + t[0] + " (" + t[1] + ") ===");
  31. System.out.println("hash prefix: " + hash.substring(0, Math.min(29, hash.length())));
  32. boolean found = false;
  33. for (String pw : PASSWORDS) {
  34. if (enc.matches(pw, hash)) {
  35. System.out.println("MATCH password: " + pw);
  36. found = true;
  37. break;
  38. }
  39. }
  40. if (!found) {
  41. System.out.println("No match in common password list");
  42. }
  43. }
  44. }
  45. try (Connection c = DriverManager.getConnection(
  46. "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/ylrz_saas?useSSL=false&serverTimezone=GMT%2B8",
  47. USER, PWD);
  48. Statement st = c.createStatement()) {
  49. System.out.println("\n=== sys_config captcha (master) ===");
  50. try (ResultSet rs = st.executeQuery(
  51. "SELECT config_key, config_value FROM sys_config WHERE config_key LIKE '%captcha%'")) {
  52. while (rs.next()) {
  53. System.out.println(rs.getString(1) + " = " + rs.getString(2));
  54. }
  55. } catch (Exception e) {
  56. System.out.println("master sys_config: " + e.getMessage());
  57. }
  58. }
  59. for (String db : new String[]{"ylrz_saas_tenant_1", "fs_tenant_cs1"}) {
  60. String jdbc = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/" + db
  61. + "?useSSL=false&serverTimezone=GMT%2B8";
  62. try (Connection c = DriverManager.getConnection(jdbc, USER, PWD);
  63. Statement st = c.createStatement();
  64. ResultSet rs = st.executeQuery(
  65. "SELECT config_key, config_value FROM sys_config WHERE config_key LIKE '%captcha%'")) {
  66. System.out.println("\n=== sys_config captcha (" + db + ") ===");
  67. while (rs.next()) {
  68. System.out.println(rs.getString(1) + " = " + rs.getString(2));
  69. }
  70. } catch (Exception ignored) {
  71. }
  72. }
  73. }
  74. }