存档
MSSQL 导入/导出数据库的时候,常常因为字段设置成自动编号而出现以下两种问题。
1、导入,导出 因为自动编号不允许写入值,而导致失败。
2、逻辑方面 因为每次自动编号都会增加,所以以id作为关联的数据会出现逻辑错误。
解决这种问题的方案就是把所有表的自动编号先去掉:
set IDENTITY_INSERT hst on
导入完毕后,再改回来就可以了。
set IDENTITY_INSERT hst off
下面是IDENTITY_INSERT的说明
说明:允许将显式值插入表的标识列中。
语法:SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
参数:database 是指定的表所驻留的数据库名称。
owner 是表所有者的名称。
table 是含有标识列的表名。
注释:任何时候,会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON。如果某个表已将此属性设置为 ON,并且为另一个表发出了 SET [...]
‘Author:miaoqiyuan.cn
‘函数:Query
‘功能:得到GET提交的字符
‘参数:GET表单名 直接取值
‘ GET表单名.trim 取值并去除两边空格
‘ GET表单名.trimbr 取值并去除两边空格,多行模式
‘ [...]
新写的xmlClass,有些简陋,不过常用的功能都可以直接调用了。
<%
‘==============================================================
‘ xmlClass v1.10.0617 by CatSeven
‘==============================================================
‘ 文件:xmlClass.asp
‘ 功能:常用的XML处理
‘ 作者:苗启源(http://www.miaoqiyuan.cn)
‘==============================================================
class xmlClass
Dim xmlobj
Public Sub Class_Initialize
set xmlobj = Server.CreateObject("Microsoft.XMLDOM")
End Sub
Public Sub Class_Terminate
[...]
com1不能删除
com1是不能直接创建的,攻击者可以利用\\.\漏洞来创建文件。
在资源管理器中不能直接删除,删除的时候用unc路径即可。
如果是隐藏只读文件,del是不能删除的
attrib \\.\E:\***\com1.asp -s -r -h
del \\.\E:\***\com1.asp
在Windows XP新建文件、文件夹或快捷方式时,系统的保留特殊设备名:CON,PRN,LPT,COM1,COM2,COM3,COM4,NUL、AUX,……不允许直接使用,但以特殊方法使用它们作为文件名或文件夹名后又能产生新的特别功能。如用下面命令建立新文档,不管文件类型扩展名是什么,文档中有无内容都不能正常打开,除非使用特殊方式打开浏览文档和对文档进行操作:
copy con \\.\d:\设备名.txt (文件扩展名可以为.RTF,.XLS,DOC,.WAV,.HTML,.MP3,.RM……)
MD \\.\D:\CON 或其它设备名,可以建立起能打开但不能删除的文件夹。
del \\.\D:\设备名.txt
RD \\.\D:\CON 或其它设备名
还有一个漏洞,是.\文件夹漏洞,很早以前我在博客中提到过,经常被病毒利用。下面就攻击者的使用性来说这两个漏洞的区别。
<%
set fso=server.createobject("Scripting.FileSystemObject")
‘几个特殊文件的建立和删除方法
‘asp可以创建,可以删除
‘cmd可以创建,可以删除
‘直接 创建 不可创建,不可删除,可浏览目录,不可查看文件
con = "\\.\" & Server.Mappath("con")
‘fso.createfolder con
fso.deletefolder con
‘ .\ 漏洞
‘asp可以创建,不可以删除
‘cmd可以创建,可以删除
‘直接 创建 不可创建,不可删除,不可浏览目录,不可查看文件
con = "\\.\" & Server.Mappath("abv") & [...]
猫七URL转发系统 立即下载
‘=============================================================
‘= Copyright (c) 2010 猫七(QQ:77068320) =
‘= All rights reserverd. [...]
本文为catseven落伍缩写,已发到落伍者,供catseven落伍。如有引用,请注明出处。
因为工作,经常要操作数据库,考虑到安全问题,在防火墙中没有开mssql端口。每次遇到必须使用查询分析器的时候,就麻烦了。为了方便工作,写了这个工具。
可以操作所有ADODB连接的数据库,当然包括MSSQL,MySQL,Access….
本工具分为两个部分。控制代码和输入代码。
控制代码就是VBScript部分,可以实现所有逻辑操作,和asp操作一样。
输入部分就是Link、SQL分别用于输入连接字符串,SQL语句。如果控制代码不调用这些语句,则这部分无实际意义。
默认,控制代码已经写好一个模板。点击执行,可以执行SQL语句,点击下载,将执行结果保存到Excel中。
因为能直接操作VbScript,如果要使用,请设置好权限。新建mssql用户,在iis中设置mssql.asp以mssql的身份执行。mssql.asp的访问权限只有mssq用户。mssql对所有文件无任何权限,对mssql.asp只有可读权限。
代码如下:
<%
Server.ScriptTimeout = 9999
starttime = timer()
cmd = request("cmd")
if request("out")="xls" and trim(cmd)<>"" then
response.ContentType = "application/octet-stream"
response.AddHeader "Content-Disposition", "attachment;filename=执行结果.xls"
execute(cmd)
response.end
end if
%>
<style type="text/css">
form{text-align:center}
textarea{width:100%;height:200px;border:solid 1px #CCC;}
input{height:20px;vertical-align:middle}
input.input{border:solid 1px #CCC;width:40%;line-height:18px;color:#090}
a{font-size:12px;color:#C00;text-decoration:none;}
</style>
<form action="mssql.asp" method="post">
<textarea name="cmd">
<%
if trim(cmd)="" then
%>set Conn = Server.CreateObject("ADODB.Connection")
Conn.open Request("link")
Set Rs=Conn.Execute(Request("sql"))
for i = 0 to Rs.Fields.Count-1
[...]