注册 登录
编程论坛 ASP技术论坛

[讨论]asp网站攻击方法(讨论前言)

flynet 发布于 2007-09-05 16:03, 4141 次点击
最近我负责了公司的程序安全管理 但是以前对于安全这一块并不是研究很深 想在这里 和朋友们共同探讨下 我认为想要能够防范网站的危险 那就要先知道网站攻击有哪些方法 在这里 我想先写出来一些我知道的 然后希望朋友们能够给补充 本帖 先只列出来 攻击的方法(概要) 等基本全面了 再逐个的研究他的攻击具体方法 以及防范方法吧。。。希望大家能够支持我 在这里先谢谢了 。。。。

ASP网站入侵方法(概述)
1、用户名与口令被破解
2、验证被绕过
3、inc文件泄露问题
4、自动备份被下载
5、特殊字符
6、数据库下载漏洞
7、远程注入攻击
8、ASP木马(利用文件上传)

不知道 还有没有其他的方法呢?不全的地方希望朋友们发帖上来啦~~~

[此贴子已经被作者于2007-9-5 16:07:01编辑过]

18 回复
#2
yms1232007-09-05 19:34

据我所知还有Cookie入侵,前提是网站使用Cookie保存账号和密码。

#3
hmhz2007-09-06 08:24
解决方案

1、用户名与口令被破解 :用户名和口令字段打破传统方式命名,口令采用MD5加密
2、验证被绕过 :才用javascript和asp双方验证
3、inc文件泄露问题 :给INC文件设置读取权限,或者放到数据库文件夹
4、自动备份被下载 :自动备份要看你备份的是什么类型数据库,只要不是access 基本上不会被下载
5、特殊字符 :可以使用防注入来拦截特殊字符,或者使用过滤方式将特殊字符替换
6、数据库下载漏洞 :同第4道问题答案
7、远程注入攻击 :同第5道问题答案
8、ASP木马(利用文件上传):给FSO设置权限,有必要的话,可以关闭FSO组件
9、Cookie入侵 :不使用Cookie记录用户资料,采用session 保存资料,系统默认20分钟,可以设置更长
#4
flynet2007-09-06 09:22

总结起来就这些吗 还有其他的吗?同时希望大家给说说sql注入方面的 因为我认为sql注入这部分还是比较重要的也是比较难防的 我公司一个网站的config.asp包含文件就被人修改了添加了牛逼的木马程序能够实现完全的对服务器操作 可是并没有上传功能啊 前台 不知道是如何做到的 请大家给分析下

#5
hmhz2007-09-06 09:48
在conn.asp里,连接数据库之前加上个通用的防注入代码

然后将FSO组件设置个权限 量他有再大的本事也无法动你网站文件一根毫毛
#6
flynet2007-09-06 09:58
回复:(hmhz)在conn.asp里,连接数据库之前加上个通...
能否把你的防注入程序 发上来我看看啊? 希望是比较全面的
#7
hmhz2007-09-06 10:01
'防止注入
dim qs,errc,iii
qs=request.servervariables("query_string")
dim deStr(18)
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)="'"
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
deStr(18)="%"
errc=false
for iii= 0 to ubound(deStr)
if instr(qs,deStr(iii))<>0 then
errc=true
end if
next
if errc then
response.redirect "对不起,请不要对本站使用非法攻击"
response.end
end if
#8
flynet2007-09-06 10:21
回复:(hmhz)\'防止注入dim qs,errc,iiiqs=request.s...
request.servervariables("query_string")
这个是什么意思为什么这么写?难道都要取吗?
<%=Request.ServerVariables("ALL_HTTP")%>
<%=Request.ServerVariables("AUTH_PASS")%>
<%=Request.ServerVariables("AUTH_TYPE")%>
<%=Request.ServerVariables("CONTENT_LENGTH")%>
<%=Request.ServerVariables("CONTENT_TYPE")%>
<%=Request.ServerVariables("GATEWAY_INTERFACE")%>
<%=Request.ServerVariables("PATH_INFO")%>
<%=Request.ServerVariables("PATH_TRANSLATED")%>
<%=Request.ServerVariables("QUERY_STRING")%>
<%=Request.ServerVariables("REMOTE_ADDR")%>
<%=Request.ServerVariables("REMOTE_HOST")%>
<%=Request.ServerVariables("REMOTE_IDENT")%>
<%=Request.ServerVariables("REMOTE_USER")%>
<%=Request.ServerVariables("REQUEST_BODY")%>
<%=Request.ServerVariables("REQUEST_METHOD")%>
<%=Request.ServerVariables("SCRIPT_NAME")%>
<%=Request.ServerVariables("SERVER_NAME")%>
<%=Request.ServerVariables("SERVER_PORT")%>
<%=Request.ServerVariables("SERVER_PROTOCOL")%>
<%=Request.ServerVariables("SERVER_SOFTWARE")%>
#9
hmhz2007-09-06 10:26
request.servervariables("query_string")
这句的意思是取得提交的地址问号后面的字符串
比如:
地址为:https://bbs.bc-cn.net/viewthread.php?tid=167885
则request.ServerVariables("QUERY_STRING")的值为:boardID=10&ID=167885&page=1
#10
yms1232007-09-06 10:29
以下是引用hmhz在2007-9-6 9:48:53的发言:
在conn.asp里,连接数据库之前加上个通用的防注入代码

然后将FSO组件设置个权限 量他有再大的本事也无法动你网站文件一根毫毛

就算使用无组件上传类,如果有文件类型验证漏洞,就可以上传ASP木马文件,上传文件的文件类型验证代码一定要严密。过滤到诸如\0之类的标志,阻止如"C:\xxxx\xxx\xxx.asp\0.jpg"这类路径。

#11
flynet2007-09-06 10:32
ODBC里设置数据源 是什么意思 我不是很懂 放段代码 你们看看 算不算 ODBC里设置数据源
Db = "database/bbsxp7.mdb" '数据库路径
Connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db)
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.open ConnStr
#12
flynet2007-09-06 10:33
回复:(yms123)以下是引用hmhz在2007-9-6 9:48:53的...

\0代表什么?

#13
flynet2007-09-06 11:07
我已经明白了odbc设置数据源了呵呵 在控制面板里
#14
flynet2007-09-06 11:54
回复:(yms123)以下是引用hmhz在2007-9-6 9:48:53的...
能否给个 你认为严密的 文件类型验证 代码 还有就是 验证文件内容的合法性 和 判断用户文件中的危险操作  的代码
#15
yms1232007-09-06 13:00
以下是引用flynet在2007-9-6 10:33:48的发言:

\0代表什么?

\0代表字符串结束,
也就是说"C:\xxx\xxx.asp\0.jpg"
某些上传类是取路径字符串的最后3个字符来判断文件类型,而这时jpg是合法的文件类型。
但当程序将路径给ADOBD.Stream处理时,\0后面的就被省略掉了这时。
路径就是"C:\xxx\xxx.asp"也就是说真正上传的并不是jpg图片,而是ASP文件。
解决办法就是在上传类验证类型之前加代码过滤\0之类的非法字符。
http://hi.baidu.com/totaobao/blog/item/e6c83dfabaac2c889f514655.html
或者可以参考这样的办法,上传后判断文件类型,属于非法类型文件。
就把文件删除或者内容写成空。

#16
flynet2007-09-06 13:15
回复:(yms123)以下是引用flynet在2007-9-6 10:33:4...
哇 受益匪浅啊!!! 能不能再把\0之类的东西 说的全面点 包括他的意思 谢谢啦~~~ 这些都是我所不知道的

代码过滤\0之类的非法字符 是不是用 replace 替换啊 是在上传地址中 过滤吧

[此贴子已经被作者于2007-9-6 13:24:16编辑过]

#17
flynet2007-09-06 16:49
回复:(yms123)以下是引用flynet在2007-9-6 10:33:4...

我使用的是化境无组件上传 我测试了下 那个后面跟\0.jpg的方法 也不能让asp文件上传上去 是不是就算是阻止了这种方法的木马上传呢?

#18
yms1232007-09-06 16:55
以下是引用flynet在2007-9-6 16:49:35的发言:

我使用的是化境无组件上传 我测试了下 那个后面跟\0.jpg的方法 也不能让asp文件上传上去 是不是就算是阻止了这种方法的木马上传呢?

有些无组件上传已经弥补了这个漏洞。

#19
sbypmqq2007-09-09 22:25
1