原创:sql盲注深入讲解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原创:sql盲注深入讲解

原创:sql盲注深入讲解 讲解SQL盲注 SQL注入大家都知道,很多新人都是从这里入门的,虽然注入语句倒背如流,可是其原理估计很少有人了解。稍微了解一下的也仅仅只是知道SQL注入语句只是一种为了使我们获取信息的一种畸形语句。Ps(很多人不知道SQl注入和SQL盲注的区别,现在我告诉你,没有区别。) 首先我先讲讲微软对SQL注入的定义。 (1) 脚本注入式的攻击 (2) 恶意用户输入用来影响被执行的 SQL 脚本 相信大家都看的懂。 另外,我看到很多新手都在网上发求助帖说什么求“asp下sql注入教程“等等 我在这里强调一下,SQL注入的划分是以数据库种类划分的而不是动态脚本语言。 而且就算数据库种类不同SQL语句的大致形式和思路是相同的,一通百通就看你自己舍不舍得去钻了。 好啦。科普到此结束现在开始正式的讲解。 1. 判断数据类型 常用的漏洞辨别语句是 and 1=1,and 1=1只是应用到实战中你绝对会发现不够用。 判断SQL注入漏洞第一件事就是判断像数据库递交的数据类型。 show.asp?showID=123 第一反应是数字型,因为无论是字符型还是数字型都会报错。事实上也绝大多数就是数字型,但是如果是字符型那么你的注入路程就断在这里了。因为你递交给数据库的注入语句会是这样 123 注入语句 被引号包起来的语句是不会被执行的。所以在注入之前第一件事是判断数据类型。 辨别方法很简单 show.asp?showID=12‘+’3或 show.asp?showID=12‘’3 如果没有报错,那必然是字符串型的注入点、 字符型注入点的注入其实和数字型基本上是一样的只要注意引号闭合问题。 在接下来的讲解中我不会单独讲解字符串型的注入只会讲解数字型,至于这么转换你们的事。 如果不是字符型而是数字型。但是又被防注程序屏蔽了and,等关键词。除了可以用大小写,十六进制,ascii码,URL码等方式绕过,你还可以用下面那这些方式判断注入点是否存在。 show.asp?showID=123 show.asp?showID=122+1 2.注入点类型除了分为数字型与字符形还可以分为get,post,cookies型。其辨别方式我不再详述。但是因为后面两种注入点手工操作过于麻烦如果注入点的脚本语言我一般会使用软件来进行中转,很多人知道cookies型注入点可以中转其实post型注入也可以中转。我把软件名我会在最后告诉大家,至于怎么用自己百度。 现在开始讲:实施注入 在确定注入点存在之后我们作为攻击者必然要对网站系统进行各种信息刺探用以识别与了解网站的使用的数据库种类以及防注程序的结构、在了解到这些信息之后我们就需要确定符合 SQL 语法的注入请求表达式,判断出后台数据库的类型,然后构造出所需的利用代码。 但在此之前我们需要确定正确的注入句法 这是 SQL 盲注攻击中最难也最有技巧的步骤,如果最初的 SQL 请求语句很简单,那么确定正确的注入语法也相对容易,而如果最初的 SQL 请求语句较复杂或者服务器的限制较多,那么要想突破其限制就需要多次的尝试,但进行这些尝试所需要的基本技术却是非常简单。 对于一些注入利用,仅仅改变 WHERE 语句就足够了,但对于其他情况,比如 UNION SELECT 注入或存储过程(stored procedures)注入,还需要能先顺利地结束整个 SQL 请求语句,然后才能添加其他攻击者所需要的 SQL 语句。在这种情况下,攻击者可以选择使用 SQL 注释符号来结束语句,该符号是两个连续的破折号(--),它要求 SQL Server 忽略其后同一行的所有输入。例如,一个登录页面需要访问者输入用户名与密 码,并将其提交给 SQL 请求语句: SELECT Username, UserID, Password FROM Users WHERE Username = ‘user’ AND Password = ‘pass’ 通过输入 john’--作为用户名,将会构造出以下 WHERE 语句: WHERE Username = ‘john’ --AND Password = ‘pass’ 这时,该语句不但符合 SQL 语法,而且还使用户跳过了密码认证。但是如果是另外一种 WHERE 语句: WHERE (Username = ‘user’ AND Password = ‘pass’) 注意到这里出现了插入语符号,这时再使用 john’--作为用户名,请求语句就会错误: WHERE (Username = ‘john -- AND Password = ‘pass’) 这是因为有未配对的插入语符号,请求语句就不会被执行。 确定语法可以使你在后面的渗透过程更为舒畅,而语法的确定事实上就是一个

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档