为什么选择手工WEB注入?工具的缺陷

| 收藏本文 下载本文 作者:不加西米露

以下是小编整理了为什么选择手工WEB注入?工具的缺陷(共含4篇),希望你喜欢,也可以帮助到您,欢迎分享!同时,但愿您也能像本文投稿人“不加西米露”一样,积极向本站投稿分享好文章。

为什么选择手工WEB注入?工具的缺陷

篇1:为什么选择手工WEB注入?工具的缺陷

Tosec Security Team 'Blog

最近互联网发布过一篇报告,是关于 针对web攻击而说明的,

具体内容大家可以我们的焦点新闻

在注入工具中使用and 1=2之类的检测是否存在注入方式,但是如果检测没有存在的时候就真的无计可施了吗?

显然我们受限于工具,而大多数人就会放弃了这个目标

其实我们可以使用其他的命令进行检测,例如获取数据库名and db_name>0,如果存在注入那么就会爆出数据库名,还有更多的方式可以让我们利用,有例如对+和/**/的一些利用,更有甚者我们可以使用注入中转器以及二次编码,那么这些不存在注入的说法将会不攻自破

因为之前我们针对一个目标进行检测,并没有发现问题,一直到今天我们获取对方数据库名、绝对路径、字段名等信息,对于下一步计划有了一定的基础,这些都是工具无法做到的,因为工具不会存在人类的思维,即便是程序员赋予了它一定的思维模式

篇2:扔掉工具,让你飞速学会手工注入!

前言:

现在的网络,脚本入侵十分的流行,而脚本注入漏洞更是风靡 界,不管是老鸟还是新起步的小菜,都会为它那巨大的威力和灵活多变的招式所着迷!

正是因为注入攻击的流行,使的市面上的注入工具层出不穷!比较出名的有小竹的NBSI、教主的HDSI和啊D的注入工具等等!这大大方便的小菜们掌握注入漏洞!可是,工具是死的,注入的手法却是活的,能否根据实际情况灵活地构造SQL注入语句,得到自己想要的信息,是[被屏蔽的不受欢迎关键词]高shou 与小菜的根本区别!只用工具,而不去管它的原理,是不可能得到提高的,当然,在遇到一些特殊情况的时候,那些只会用工具的小菜们也只能放弃了!所以学会手工注入自己构造SQL注入语句是一个 爱好者必上的一堂课!我希望这篇文章能够给那些还不会手工注入的朋友一点启发!帮助大家早日摆脱工具,早日踏入 [被屏蔽的不受欢迎关键词]高shou的行列!

恶补基础:

要想学会手工注入,有一个名词是不得不提的,那就是数据库系统!

1。简介

数据库系统分为数据库和数据库管理系统!数据库是存放数据的地方,数据库管理系统则是管理数据库的软件!数据库中数据的存储节构叫数据模型!有四种常见的数据模型,分别是层次模型、网状模型、关系模型和面向对象模型。其中关系数据模型是最主要的数据模型,ACCESS、MSSQL、ORACLE等都是关系模型数据库系统。其中以ACCESS、MSSQL数据库系统最为常见!这些都是理论的知识,希望大家理解!

2。基本概念

表:表是一个关系数据库的基本组成元素!它按行与列组合排列成相关信息。通常行称为记录,列称为域。每个域称为一个字段!每一条记录都由多个字段组成。每个字段的名字叫做字段名,每个字段的值叫估字段值。表中的每一行即每一条记录都拥有想同的结构!如图1。

图1中的这张表里有14行,即14条记录。有4列,即4个字段,4个字段的名字分别叫:job_id(下面对应的1、2、3等都是这个字段的值,后面三个字段的值举一反三!) 、job_ desc、min_lvl、max_lvl。因为本文不是专讲数据库知识的,所以这里只讲一些最重要的概念,有兴趣的朋友可以自己去查看数据库的有关资料!

3。注入的条件

只有调用数据库的动态页面才有可有存在注入漏洞,动态页面包括asp php jsp cgi等。本文只讲对ASP页面的注入。那什么是调用数据库的页面呢?比如这样的形势:

asp?id= php?id= 这样的样子的都是调用数据库的页面。“?”后面加的id的名字叫变量,注意这个变量是可以随便换的,“=”号后面的值名字叫参数!这个参数也是可以变的!大家的思路一定要灵活,要学会举一反三,不要太死板!

4。注入漏洞的原理分析:

程序对用户提交的变量没有进行有效的过滤,就直接带入查询语句中,这样,我们就可以提交具有数据查询功能的语句,加入到程序将要提交的信息中去,再根据服务器返回的信息来判断数据库里的内容!光这样说大家可能不太好理解,不要紧,接着往下看。

有关的基础已经讲完了 下面开始实战练习部分!

实战部分

如果是刚刚接触注入的新手朋友,我们要做的第一步就是,用鼠标右键点击桌面上的IE图标,再点属性,然后再点“高级”,然后往下拉滚动条,找到“显示

友'好'HTTP错误信息”,把前面的勾去掉,再点“确定”,这样做是为了让我们得到更多的服务器返回的信息!

第一部分:ACCESS数据库手工注入

1。判断是否存在注入漏洞:

这个相信大家都应该知道! 就是在一个调用数据库的网址后面加上分别加上 and 1=1和 and 1=2 ,如果加入and 1=1返回正常(就是和原来没有加 and 1=1时页面样子的一样),而加入 and 1=2返回错误(和原来没有加 and 1=2时页面的样子不一样),就可以证明这个页面存在注入漏洞。比如:

www.xxx.com/a.asp?id=7,这个网页,我们在后面加上 and 1=1(两个空格,and前面一个,and和1=1之间一个!),网址就变成了

www.xxx.com/a.asp?id=7 and 1=1,用IE打开这个网页,返回正常!再尝试在后面加上and 1=2,网址就变成了

www.xxx.com/a.asp?id=7 and 1=2,同样用IE打开这个网页,返回错误!这就说明这个网页www.xxx.com/a.asp?id=7存在注入漏洞,是一个注入点!(存在注入漏洞的网页叫注入点!)可是,并不是所有的页面都可以这样判断,有的页面不管你加入 and 1=1 还是 and 1=2,返回的都是错误的页面,难道这样的页面就没有注入漏洞吗?不一定!比如这个页面:www.xxxxxx.com/b.asp?id=ade7, 不管我们在后面上的是and 1=1还是and 1=2,它都返回错误的页面!这个时候我们就要尝试用另一种方法来测试漏洞了,这种方法可以说是and 1=1和and 1=2的变种方法。原来的网址是这样的:www.xxxxxx.com/b.asp?id=ade7,现在我们把它变成这个样子:www.xxxxxx.com/b.asp?id=ade7' and '1'='1 ,用IE打开它,看看返回正不正常!如果正常,那就可以接着用这个地址来进一步测试漏洞是否存在(如果返回不正常那这个页面就很有可能不存在注入漏洞!):www.xxxxxx.com/b.asp?id=ade7' and '1'='2 ,用IE打开这个网址,如果返回错误的话,那这个网址www.xxxxxx.com/b.asp?id=1就存在注入漏洞!

A。数字型参数注入点分析!

这时肯定有朋友要问了,为什么用一开始那种and 1=1 and 1=2不行呢!呵呵,先不要急,先看看这两个存在注入漏洞的页面有什么不一样?

(你不要告诉偶第二个网址比第一个网址多了几个X),相信大家已经看到了,第二个网址后跟的参数是ade7,是字符!而第一个网址后跟的参数是7,是数字!就是因为这里,才引起了测试漏洞的语句的不同!学过数据库的朋友们应该知道,在查询中,字符型的值,是要用单引号包起来的,也就是这个样子'字符型数据'。这里假设第一个注入页面所对应的查询语句是这样的(凡是调用数据库的页面都会有一条或者几条对应的查询语句,用来对数据库里的内容进行查询!)

:select * from 表名 where id=7。这是原来的那条查询语句,这条语句是正确的,可以在数据库中查询出相应的内容!可是如果我们在网址后面加上了 and 1=1,那这条查询语句就会变成select * from 表名 where id=7 and 1=1(这下知道了注入漏洞原理分析那里讲的变量没有过滤的意思了吧!),这里有必要说一些数据库的有关知识,这条语句里,and是逻辑运算符!(这个记住就行了),用中文翻译过来就是“和”的意思!在高中的数学里讲过,用“和”来连接的两个句子,必须都是真的,不然整个句子就不是真的!比如:苹果和大象都是水果。这句话就是错的,苹果是水果,可是大象不是!这下大家应该可以理解“用“和”来连接的两个句子,必须都是真的,不然整个句子就不是真的”这句话了吧。如果换成苹果和梨都是水果,那这句话就是对的。知道了and的用处后,再回来看select * from 表名 where id=7 and 1=1这个句子,and 前面的select * from 表名 where id=7肯定是对的,(为什么呢,如果这条查询语句都不对,那这个注入页而就有问题了!所以and前面的那个句子一定是对的!)。再看and后面,1= 1,不用我说了吧,也是对的(难道一不等于一吗?)根据刚才说的and用处,现在我们可以判定select * from 表名 where id=7 and 1=1这条查询语句,仍然是对的!所以它还是可以正确地从数据库里查询出信息,返回给我们!

举一反三,那这个句子:select * from 表名 where id=7 and 1=2,肯定是不对的了,那这条查询语句就不能正确地从数据库里查询出信息,所以我们就会看到一个错误的页面! 以上是注入点参数是int(整数型)时的分析!

B。字符型参数注入点分析

和刚才一样,我们先来看第二个字符型注入页面里的查询语句,比如是这个select * from 表 where id='ade7'(为什么加引号?看前面吧!),

原来的查询语句是这个样子的,如果我们还按照数字型参数的那种测试漏洞的方法的话,语句就会变成这样: select * from 表 where id='ade7 and 1=1'和

select * from 表 where id='ade7 and 1=2' ,因为程序会自动查询引号里的内容,如果我们按前面这两个语句这样提交的话,程序就会查询id值为ade7 and 1=1和ade7 and 1=2的记录,这样是查不到结果的(你可不要告诉我数据库里正好有两个记录的id就是ade7 and 1=1 和and 1=2)。这里可能有朋友要问了,为什么不是查询id为'ade7,然后and 1='1呢?好,我现在回答你们,就算可以查询id值为'ade7的记录,那这个句子也是错的,1怎么会等于'1呢?对吧?更何况程序是不可能查询 'ade7的,更准备的说是数据库中不可能有一个字段的值是'ade7,因为这个字符串少一个引号,如果直接把这个字符串存入数据库的话,程序会报错的!怎么样?明白了吧?现在再说用 ' and '1'='1和' and '1'='2来测试的的原理!同样是这个查询语句:

select * from 表 where id='ade7',如果我们在网址后面加了' and '1'='1,那这个查询语句就会变成

select * from 表 where id='ade7' and '1'='1'(这里最外面的那一层引号是程序自动加上的),变成这个样子!这个语句对不对呢?我们分析一下。如果我们提交个语句,那程序就会自动查询 id值是ade7的记录!因为这个记录是存在的(不存在的话那就是这个网页有问题了!),然and后面跟的'1'='1'是正确的,所以这个语句是正确的!如果我们把' and '1'='1换成' and '1'='2,那语句就成了select * from 表 where id='ade7' and '1'='2',只看后面我们就可以知道这个语句对不对了!'1'怎么可能等于'2'呢?是吧?好了,字符型参数的注入点的原理就介绍到这里!

2。数据库类型的判断

在确定了一个地址是注入点后,我们首先要判断这个注入点所连接的数据库的类型!这里介绍几种简单的方法。如果一种判断不出来就再换另一种判断方法!

A。在注入点后直接加上单引号。有的时候我们可以根据服务器报错的信息来判断它用的是什么数据库。如图2!通过这个错误信息我们可以看出来这个注入点所连接的数据库的类型是ACCESS,为什么呢,仔细看!它说的是Microsoft JET Database Engine e` '80040e14' ,说明是通过JET引擎连接数据库,而不是ODBC!如果是用JET方法连接的话就说明用的是ACCESS数据库,如果是ODBC的话就说明数据库是 MSSQL!这个记住就行了。其实还有详细的错误信息,它直接把数据库的类型告诉你了!因为我没有找到这样的注入点,这里就截不了图了。大家遇的到话肯定一眼就可以看出来!

B。在注入点后加上(注意,你先确定了它是注入点后再加,不是注入点你加了也没用!): ;--(一个分号,两个横线!)比如这个网址

www.xxxxxxxx.com/article/as.asp?id=875,我们事先已经确定了它是注入点了, 这样的话我们就可以在后面加上;--让它变成

www.xxxxxxxx.com/article/as.asp?id=875;-- 提交这个网址,如果页面返回正常的话,说明数据库是MSSQL。因为在MSSQL数据库里,;和--都是存在的,“;” 用来分离两个语句,而“--”就是注释符,在它后面的语句都不执行!而ACCESS数据库里没有!所以如果是ACCESS的数据库,当你在注入地址

后面加上“;--”的话那程序就会把“;--”当成参数的一部分,这样查询就会出错!如果错误,那基本上可以肯定是ACCESS了(因为网上用这两种数据库的网站最多!)

C。用以上方法都判断不出来的话,那可以用这一招!利用ACCESS和MSSQL数据库的差异来进行判断!要用到两个查询语句!同样,如果注入点是www.xxxxxxxx.com/article/as.asp?id=875,那我们在后面加上 and exists (select count(*) from sysobjects),那么地址就变成了

www.xxxxxxxx.com/article/as.asp?id=875 and exists (select count(*) from sysobjects)。如果页面正常返回,那就可以证明数据库是MSSQL的。我来解释一下这个语句:这个句子的意思是查询sysobjects表里的记录数大于0!(有点别扭!)如果返回正常,说明大于0,也就说明存在sysobjects这个表,因为这个表只有MSSQL数据库里才有,所以可以确定数据库的MSSQL的!如果返回错误,那就不是!那我们怎么用查询语句来判断数据库是不是ACCESS的呢!别急,往下看!我们在注入点后加上 and exists (select count(*) from msysobjects)。就成了

www.xxxxxxxx.com/article/as.asp?id=875 and exists (select count(*) from msysobjects),按刚才理解MSSQL数据库的方法去理解这条语句!这里要注意,提交这个语句是不会返回正常页面的!就算是ACCESS数据库也不会返回正常的页面!因为默认情况下,我们是没有权限查询这个表里的数据的!不过WEB会提示我们 “记录无法读取;'msysobjects'没有读取权限”!如果返回的是这个错误信息的话,那就证明是ACCESS数据库了!如图3!简单地来说就是两条查询语句:

and exists (select count(*) from sysobjects)

and exists (select count(*) from msysobjects)

如果第一条返回正常,那就是MSSQL数据库,如果两条都不正常,那就是ACCESS数据库了(这里只讨论MSSQL和ACCESS)

注意:上面讲的全是参数是int的时候的检测方法,如果参数是字符型的,那就先要在参数后面加上单引号,然后再在查询语句最后加上“;--”

3。猜表、字段名、检测记录数、检测字段长度。

我按照工具注入的流程给大家讲!

A。猜表!

用到的语句:and exists (select count(*) from 你要猜的表名) 。在注入点后加上这句话,如果返回正常,说明你猜的表是存在的!比如

www.xxxxxxxx.com/article/as.asp?id=875 and exists (select count(*) from admin),如果返回正常,说明admin这张表存在!如果返回错误,就说明不存在!。别的表也都是这么猜!

B。猜列!

用到的语句:and (select count(列名) from 猜到的表名)>0 。在注入点后加上这句话,如果返回正常,说明你猜的列是存在的!比如

www.xxxxxxxx.com/article/as.asp?id=875 and (select count(username) from admin)>0,如果返回正常,那username这个列就存在!不过首先要确定from后面跟的表名要是存在的哦!不然你怎么猜都是错的!

C。检测记录数

用到的语句:and (select count(*) from 猜到的表名)>X (X是个数字)。在注入点后加上这句话,并不停地变换X这个数字,直到猜到准确的记录数为止!比如www.xxxxxxxx.com/article/as.asp?id=875 and (select count(*) from admin)>2 ,这个句子是猜admin表里有几条记录的,也就是有几个管理员(因为一个管理员对应一条记录嘛!)。如果返回正常,说明admin这张表里的记录数大于 2。这个时候我们把2改成别的大一点的数!比如5,如果返回错误,说明管理员的个数在2和5之间,2和5之间的整数是3和4,这个时候我们变换语句为www.xxxxxxxx.com/article/as.asp?id=875 and (select count(*) from admin)=3或者=4,哪个返回正常那管理员的个数就是哪个。如果提交>5还返回错误,那就再取一个更大的数,再重复刚才的动作就可以猜到记录数!

D。检测字段长度

用到的语句:and (select top 1 len(列) from 表)>X (X和刚才一样!)。我来解释一下这个句子,select top 1是查询第一条数据的意思!(在WEB环境下不支持多行回显!只是一次查询的数据不能超过一行!),len是MSSQL里的一个函数,用法是len, 里可以是字符串也可以是表达式也可以是列名!知道这些,大家应该可以看懂了吧!后面那个X的变换方法上面的一样!

篇3:扔掉工具,让你飞速学会手工注入

前言:

现在的网络,

脚本

入侵

十分的流行,而

脚本

注入

漏洞更是风靡

界,不管是老鸟还是新起步的小菜,都会为它那巨大的威力和灵活多变的招式所着迷!

正是因为

注入

攻击

的流行,使的市面上的

注入

工具层出不穷!比较出名的有小竹的NBSI、教主的HDSI和啊D的

注入

工具等等!这大大方便的小菜们掌握

注入

漏洞!可是,工具是死的,注入的手法却是活的,能否根据实际情况灵活地构造SQL注入语句,得到自己想要的信息,是[被屏蔽的不受欢迎关键词]高shou 与小菜的根本区别!只用工具,而不去管它的原理,是不可能得到提高的,当然,在遇到一些特殊情况的时候,那些只会用工具的小菜们也只能放弃了!所以学会手工注入自己构造SQL注入语句是一个

爱好者必上的一堂课!我希望这篇文章能够给那些还不会手工注入的朋友一点启发!帮助大家早日摆脱工具,早日踏入 [被屏蔽的不受欢迎关键词]高shou的行列!

恶补基础:

要想学会手工注入,有一个名词是不得不提的,那就是数据库系统!

1。简介

数据库系统分为数据库和数据库管理系统!数据库是存放数据的地方,数据库管理系统则是管理数据库的

软件

!数据库中数据的存储节构叫数据模型!有四种常见的数据模型,分别是层次模型、网状模型、关系模型和面向对象模型。其中关系数据模型是最主要的数据模型,ACCESS、MSSQL、ORACLE等都是关系模型数据库系统。其中以ACCESS、MSSQL数据库系统最为常见!这些都是理论的知识,希望大家理解!

2。基本概念

表:表是一个关系数据库的基本组成元素!它按行与列组合排列成相关信息。通常行称为记录,列称为域。每个域称为一个字段!每一条记录都由多个字段组成。每个字段的名字叫做字段名,每个字段的值叫估字段值。表中的每一行即每一条记录都拥有想同的结构!

3。注入的条件

只有调用数据库的动态页面才有可有存在注入漏洞,动态页面包括asp php jsp cgi等,

本文只讲对ASP页面的注入。那什么是调用数据库的页面呢?比如这样的形势:asp?id= php?id= 这样的样子的都是调用数据库的页面。“?”后面加的id的名字叫变量,注意这个变量是可以随便换的,“=”号后面的值名字叫参数!这个参数也是可以变的!大家的思路一定要灵活,要学会举一反三,不要太死板!

4。注入漏洞的原理分析:

程序对用户提交的变量没有进行有效的过滤,就直接带入查询语句中,这样,我们就可以提交具有数据查询功能的语句,加入到程序将要提交的信息中去,再根据服务器返回的信息来判断数据库里的内容!光这样说大家可能不太好理解,不要紧,接着往下看。

有关的基础已经讲完了 下面开始实战练习部分!

实战部分

如果是刚刚接触注入的

新手

朋友,我们要做的第一步就是,用鼠标右键点击桌面上的IE图标,再点属性,然后再点“高级”,然后往下拉滚动条,找到“显示友'好'HTTP错误信息”,把前面的勾去掉,再点“确定”,这样做是为了让我们得到更多的服务器返回的信息!

第一部分:ACCESS数据库手工注入

1。判断是否存在注入漏洞:

这个相信大家都应该知道! 就是在一个调用数据库的网址后面加上分别加上 and 1=1和 and 1=2 ,如果加入and 1=1返回正常(就是和原来没有加 and 1=1时页面样子的一样),而加入 and 1=2返回错误(和原来没有加 and 1=2时页面的样子不一样),就可以证明这个页面存在注入漏洞。比如:

www.xxx.com/a.asp?id=7

,这个网页,我们在后面加上 and 1=1(两个空格,and前面一个,and和1=1之间一个!),网址就变成了

www.xxx.com/a.asp?id=7

and 1=1,用IE打开这个网页,返回正常!再尝试在后面加上and 1=2,网址就变成了

www.xxx.com/a.asp?id=7

and 1=2,同样用IE打开这个网页,返回错误!这就说明这个网页

www.xxx.com/a.asp?id=7

存在注入漏洞,是一个注入点!(存在注入漏洞的网页叫注入点!)

[1]

[2] [3] 下一页

篇4:网管必读 从手工注入看防御之access篇WEB安全

很多情况下,入侵者在使用工具注入时发现工具才解不出来表名和字段名,那是因为所有的工具都有自己的一部字典,这部字典内包括了表名和字段名,如果管理员把表名和字段名改成了不在这部字典内,那么我们使用的工具将无法猜解出字段名和表名,在以下的文章中,将从分析手工注入出发,来打造抵御SQL注入的防线。

入侵者将会构造简单的判断条件,来判断该页面是否存在注入漏洞,一般步骤如下:

这里要检测的页面为127.0.0.1/111/view.asp?id=198

1.入侵者要想对站点进行手工注入就必须对浏览器进行设置,以保证手工注入时能返回出错信息,其操作步骤如下:

右键点击浏览器选择“属性”,在弹出来的对话框中选择“高级”选项卡。如下图所示:

图一

接着去掉“显示友好的HTTP错误信息”前面的钩,最后点击“应用”按钮即可。

2.入侵者向浏览器提交如下url:

127.0.0.1/111/view.asp?id=198 and 1=1

如果存在SQL注入漏洞,就可以查询数据库,1=1是一个恒等式可以忽略,因此会返回一个正常的页面,此页面和127.0.0.1/111/view.asp?id=198一样,这时入侵者便判断此站有希望被注入。如果返回的是一些错误信息,那么一些初级的入侵者可能就会放弃这个站点。

3.入侵者进一步向浏览器提交如下url:

127.0.0.1/111/view.asp?id=198 and 1=2

1=2为一个恒不等式,如果该站点支持数据库查询,则大概会返回如下图所示的信息:

图二

一般出现上图所示入侵者就基本确定此站能够进行SQL注入攻击了。

不过很多时候入侵者只需用一个单引号即可快速判断出目标站点是否存在SQL注入漏洞,向浏览器提交如下url:

127.0.0.1/111/view.asp?id=198’如果返回如下信息则说明有一半机会以上存在注入漏洞:

Microsoft OLE DB Provider for ODBC Drivers 错误’80040e14’

[Microsoft] [ODBC Microsoft Access Driver]字符串的语法错误在查询表达式’id =1’’中。/list.asp,行50

4.此时入侵者开始构造特殊的SQL查询语句开始查询站点数据库的表名,向url提交如下语句:

127.0.0.1/111/view.asp?id=198 and exists(select * from admin)

这个语句是向数据库查询是否存在admin这个表,如果存在则返回正常页面,如果不存在此表则返回出错页面,

一般入侵者会先测试常用的表名,也是一般的注入工具密码字典内存在的表名和字段名。如果表名不在常用表名中则入侵者就会结合社会工程学来猜解表名,这种情况下入侵者猜中表名的几率较低。

5.入侵者在得到表名后开始构造查询语句查询数据库字段名,向url提交如下语句:

127.0.0.1/111/view.asp?id=198 and exists(select user from admin)

这个语句是向数据库中admin表中查询是否存在user字段,如果存在则返回正常页面,如果不存在则返回出错页面。

7.接下来入侵者开始确定字段id的值,构造如下语句可以查询id的值:127.0.0.1/111/view.asp?id=198 and exists (select id from admin where id=1)

正确则返回正确页面,错误则返回出错页面。

6.表名和字段名猜测出来以后,入侵者开始构造查询语句猜测管理员帐号长度,向url提交如下语句:

127.0.0.1/111/view.asp?id=198 and exists(select id from admin where len(user)<6 and id=1)

此语句为查询user字段中用户名长度范围,表示长度小于6,正确则返回正常页面,错误则返回出错页面。

缩小范围,然后构造如下语句确定用户名具体长度:

127.0.0.1/111/view.asp?id=198 and exists(select id from admin where len(user)=5 and id=1)

正确则返回正常页面,错误则返回出错页面。

8.接下来入侵者开始进入最后的环节构造语句查询管理员用户名,向url提交如下语句:127.0.0.1/111/view.asp?id=198 and exists(select count(*) from admin where left(user,1)=’a’)

此语句是从用户名左边开始猜测用户名地一位为a,正确则返回正常页面,错误则返回出错页面,一位一位猜,猜第2位时,修改语句为(user,2)=’ad’,后面类推。

在入侵者得到用户名密码以后,此次注入就接近尾声了。

至于防范方法很简单,从上面的过程可以看出如果表名和字段名不在常用表名和字段名中则入侵者是使用社会工程学来猜解,如果管理员修改的表名和字段名足够复杂则入侵者依然不能达到目的,还有一种简单的防御方法就是到网上去下载一些防注入补丁程序打上就可以了,这种方法是修改站点文件,增加过滤语句来过滤入侵者提交的语句来达到防注入的,这里就不再给大家讲解其原理了。

网管必读 从手工注入看防御之access篇WEB安全

优质手工地毯如何选择

关于网站统计工具的选择

以缺陷为话题的作文

演讲稿选择为主题

选择为话题作文

magicquotesgpc为on非单引号注入脚本安全

有关选择为话题议论文

怎样为孩子选择图书?

用EVSSL为WEB站点打造绿色安全通道WEB安全

为什么选择手工WEB注入?工具的缺陷(精选4篇)

欢迎下载DOC格式的为什么选择手工WEB注入?工具的缺陷,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档