Asp+Access+Sql 开发 -爬坡者

通过asp实例代码结合常用Asp例子来更好的深入Asp学习

GG提供的广告

[置顶] ASP建站实用手册 Ver0.02最后一次更新时间2008-5-31

[置顶] ASP/CSS/JAVASCRIPT相关技术与资源交流论坛

SQL Server应用程序中的高级SQL注入(2)

SQL Server应用程序中的高级SQL注入(2)

SQL Server应用程序中的高级SQL注入

[xp_cmdshell]
许多存储过程被创建在SQLSERVER中,执行各种各样的功能,例如发送电子邮件和与注册表交互。
Xp_cmdshell是一个允许执行任意的命令行命令的内置的存储过程。例如:
Exec master..xp_cmdshell ’dir’
将获得SQLSERVER进程的当前工作目录中的目录列表。
Exec master..xp_cmdshell ’net user’
将提供服务器上所有用户的列表。当SQLSERVER正常以系统帐户或域帐户运行时,攻击者可以做出更严重的危害。

关于SQL注入

SQL 注入攻击

过滤掉危险的HTML标记:script,ifame,object

对于提交的HTML代码,如果含有script,iframe,frameset等标记,对网站本身会构成一定的潜在威胁,使用下面的函数可以过滤掉指定的HTML标记。
注:
1.对于单标记(如:hr ,br 等),因其对网站本身不会构成威胁,故未将单标记纳过过滤范围。(注:呵呵,之前没考虑到img也可能存在风险,过滤单标记的函数请见文章末尾的修改版)
2.参数strHTML:待过滤处理的HTML代码内容
3.参数strTAGs:待过滤掉的HTML标记名,可写多个标记名,各标记名以英文逗号( , )为间隔

文本框内注入技术

文本框内注入技术
当今ASP注入大行其道,网上随处可见注入方法的文章。但是这样的文章中的例子多数是针对x.asp?id=num这样的格式,对于一些表单元素像文本框内的注入方法提及很少。其实,有一些网站多数是过滤了id这样的参数值,却往往忽略了文本框这样的注入点;还有,有的后台密码是md5值,如果不能update密码值或破解不出来的话也头疼,这篇文章就是针对这样的注入点来提供几个思路。

【分享】挂马代码大全

网页挂马代码大全
转自http://www.hack86.com/bbs/read.php?tid=64312&fpage=3

手动注入脚本命令精华版

1.判断是否有注入;and 1=1 ;and 1=2

2.初步判断是否是mssql ;and user>0

3.注入参数是字符’and [查询条件] and ’’=’

4.搜索时没过滤参数的’and [查询条件] and ’%25’=’

5.判断数据库系统
;and (select count(*) from sysobjects)>0 mssql
;and (select count(*) from msysobjects)>0 access

我对后台安全的一些做法

看了这个帖子:http://bbs.blueidea.com/thread-2727974-1-1.html
之所以单独开帖,我想还会有其它新手同样受此干扰吧。
这个帖子只是自己的一点小经验,供新手参考。如果有高手有更好的经验,欢迎分享和指正。

-------------------------------------------------------------------------------------------------
加强ASP网站后台安全一些主要措施:
-------------------------------------------------------------------------------------------------
想想自己第一次做的网站,就遭到一个美国的IP不断功击(也并非全是坏事,因为这件事,使我从DW转向手写代码,呵呵,说来还得感谢这个人),前不久,最新完成的一个网站,不断有人直接访问备份数据库的后台文件,我为网站提供了更改管理文件夹名称的功能,但仍然马上被找到(我想他是用什么黑客软件扫描网站所有文件,并看那个文件名带有“db"字样吧),但均被踢出,我们网站仍然安然无事,现在这个网站后台功击者少了很多,也安静了。

URL编码与SQL注射

现在SQL注射非常流行,所以就有人写了一些防注射的脚本。当然啦,思路不一样,效果大不同。各位看官请看下面的××SQL通用防注入asp版部分代码。

Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 then
Response.Write "出现错误!"
Response.End
End If
End If
Next


它的思路就是先获得提交的数据,以"&"为分界获得并处理name/value组,然后判断value里是否含有定义的关键字(这里为求简便,我只留下了"and"),有之,则为注射。

乍一看去,value被检查了,似乎没有问题。呵呵,是的,value不会有问题,可是,name呢?

它的name/value组值来自于Request.ServerVariables("QUERY_STRING"),呵呵,不好意思,这里出问题了。Request.ServerVariables("QUERY_STRING")是得到客户端提交的字符串,这里并不会自动转换url编码,哈哈,如果我们把name进行url编码再提交的话,呵呵,那就可以绕过检查了。比如参数是ph4nt0m=lake2 and lis0,此时程序能够检测到;如果提交%50h4nt0m=lake2 and lis0(对p进行url编码),程序就会去判断%50h4nt0m的值,而%50h4nt0m会被转换为ph4nt0m,所以%50h4nt0m值为空,于是就绕过了检测。

等等,为什么既然name不解码可以绕过检查而value就不能绕过呢?因为value的值取自Request(Fy_Cs(Fy_x)),这个服务器就会解码的。

程序怎么改进呢?只要能够得到客户端提交的数据是解码后的就可以了,把得到name的语句改为For Each SubmitName In Request.QueryString就可以了。

禁止外部提交数据

提交时可能会有人修改script从本地提交,这样存在安全提交的问题,所以应该要求从服务器断路径提交,其他地址提交提交无无效.
禁止外部提交数据,严防通过 SESSION ID,达到session欺骗目的

警惕Session欺骗

我们知道,COOKIES可以欺骗,因为他是保存在客户端的 但是晚上突然在想SESSION是不是也可以欺骗呢[session保存在客户端],于是搜索了下
就找到了这篇文章。想想也是,登陆成功后我们的信息如保存SESSION里,那内容都在服务器端的,我们可以伪造SESSION ID,
难怪SESSION ID GOOGLE上搜索的人那么多 呵呵,原来大家都意识到了。(http://www.papozhe.com Man语)
不知不觉“LM团伙”看黑防已有两个春秋了,期期不落。潜心修炼了这么久,也能开始耍上一两招了。看了黑防第二期的《DreamWeaver引发网络危机》一文,“LM团伙”内心有说不出的激动,心想网上有40%的网页都有这样的漏洞,那岂不是又能收获N多肉鸡了。可是仔细研究发现,这个文章的方法存在一些问题,并不像想象中的那样容易发挥。下面就与大家一起讨论一下Session。
分页:[«]1[2][3][4][»]

日历

<< 2008-7 >>

Sun

Mon

Tue

Wed

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Powered By Z-Blog Z-Blog 1.8 RC Build 80201

Copyright 2007-2008 papozhe.com [asp代码BLOG] All Rights Reserved.
浙ICP备07030537号
免责申明:本BLOG所有文章除特别声明,均来自网上,主要为学习用!内容仅供参考,版权归原作者。如侵犯您利益,请来信说明,我们立即删除或注明版权