Mysql触发器或存储过程中能否调用dll?

Mysql触发器或存储过程中能否调用dll?,第1张

使用非SQL格式dll,也就是平时所写的,如果打死也不明白就用他就可以。

dll需要事先先注册,

注册是:regsvr32 名字.dll

卸载是:regsvr32 /u 名字.dll

[vb] view plain copy

CREATE TRIGGER [名称] ON [表名]

AFTER INSERT, UPDATE, DELETE

AS

DECLARE @hr int

DECLARE @obj int

DECLARE @out varchar(200)

exec @hr = sp_oacreate '[名称空间|工程名].[类名]', @obj out

IF @hr = 0

BEGIN

exec @hr = sp_oamethod @obj,'[函数名]',@out output,'[参数1]','[参数2]',...'[参数N]'

if @hr = 0

BEGIN

print @out

END

END

使用SQL格式的DLL

以下这代码要放到master数据库执行

[c-sharp] view plain copy

CREATE PORC [名字] AS

BEGIN

DECLARE @out varchar(200)

EXEC exec sp_addextendedproc '[函数名]', '[名称空间|工程名

.dll' --添加dll进来

EXEC @out = [函数名] [参数1] [参数2] ... [参数N] --注意:函数名前不能用@函数名和参数之间,参数和参数之间,不能用,,我用过,报错了...

EXEC exec sp_sp_dropextendedproc'[函数名]' --这里就是卸载了

直接执行外部程序,例如exe,黑客爱好这代码

上面的代码黑客也爱好,为什么?我才不会告诉你他喜欢用sp_addextendproc来加载xp_cmdshell

[c-sharp] view plain copy

--以下代码不是顺序执行,只是说明

EXEC sp_configure 'show advanced options', 1RECONFIGUREEXEC sp_configure 'xp_cmdshell', 1RECONFIGURE-- 开启xp_cmdshell,几乎不需要执行,多数人不会主要到

EXEC sp_configure 'show advanced options', 1RECONFIGUREEXEC sp_configure 'xp_cmdshell', 0RECONFIGURE-- 这自然是关闭喽,要做啥非法事的话,就不要执行这句。

EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int --这句是如果不能执行xp_cmdshell时候,例如报127错误时修复使用

sp_addextendedproc 'xp_cmdshell','xpsql70.dll' -- 同上

--以下是使用xp_comshell

--有返回值

DECLARE @out int

EXEC @out = xp_cmdshell '[文件名]' '[参数1]' '[参数2]' ... '[参数N]'

无返回值

EXEC xp_comshenll'[文件名]' '[参数1]' '[参数2]' ... '[参数N]',no_output

将 MySql.Data.dll 放在网站根目录 bin文件夹下面

然后将这段代码贴在 default.aspx 文件中

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>

<%@ Import NameSpace="System.Data"%>

<%@ Import NameSpace="MySql.Data.MySqlClient"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title></title>

<script language="c#" runat="server">

protected void Page_Load(object sender,EventArgs e){

string constr = "server=localhostuid=rootpassword=rootdatabase=mydb"

string sql = "select * from product"

MySqlConnection conn = new MySqlConnection(constr)

conn.Open()

MySqlDataAdapter adp = new MySqlDataAdapter()

adp.SelectCommand = new MySqlCommand(sql,conn)

DataSet ds = new DataSet()

adp.Fill(ds)

GridView1.DataSource = ds

GridView1.DataBind()

conn.Close()

}

</script>

</head>

<body>

<asp:DataGrid ID="GridView1" runat="server"></asp:DataGrid>

</body>

</html>

*** 作方法如下:

请手工在PHP的目录里查找 libmysql.dll 文件,并把相关文件放到 D盾_Webshell查杀的目录下,此方法也可以用于 D盾_iis防火墙 中!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7250714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存