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