搜索
查看: 1380|回复: 8
打印 上一主题 下一主题

=-===两步建立安全ASP个人主页===-=

[复制链接]
跳转到指定楼层
楼主
发表于 2007-5-24 15:48:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
暑假在家好无聊,无事可做,就到网上溜达溜达,发现N多的站点有脚本注入漏洞,以前别人说中国的网络安全性是多么差,我还不信,现在终于相信了。由于SQL Injection是脚本与数据库相结合的攻击方式,所以防范这种漏洞,要从脚本和数据库两方面下手,本文主要针对一些无ASP基础,网站形式为代码站下载摸板使用的用户,就是直接用别人的程序的朋友们咯。
本文以“我们的天空”个人主页系统为例,“我们的天空”主要功能有新闻、相册、日记、留言本、文章、计数统计、作品展示等。界面非常漂亮,很适合做个人主页……我们就从这里下手吧,打造自己的安全小站。
http://dong.6088.net(我们的天空)站里面有代码下载,我们下载下来先看代码。打开Shoupic.asp代码如下:
<!--#include file="conn.asp"-->
<!--#include file="jbsz.asp"-->
<%dy_id=request.QueryString("id")
if dy_id<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="select * from dy_load where dy_id="&dy_id
rs.open sql,conn,1,1
%>
<title><%=dy_name%>风采</title><body oncontextmenu="return false" onselectstart="return false" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" align="center" valign="middle"> <img src="<%=rs("dy_content")%>" border="0"></td>
</tr>
</table>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
end if%>
好象什么都没有过滤,很可怕。再看看其它的,Showdaily.asp,Showwz.asp,Download.asp
都没有进行任何的过滤,看这就是程序员的安全水平!写一个文件,代码如下:
<%
StrTemp=request.servervariables("server_name")&request.servervariables("url")&"?"&Request.QueryString
StrTemp = LCase(StrTemp)
If Instr(StrTemp,"select%20") or Instr(StrTemp,"insert%20") or Instr(StrTemp,"delete%20from") or Instr(StrTemp,"count(") or Instr(StrTemp,"drop%20table") or Instr(StrTemp,"update%20") or Instr(StrTemp,"truncate%20") or Instr(StrTemp,"asc(") or Instr(StrTemp,"mid(") or Instr(StrTemp,"char(") or Instr(StrTemp,"xp_cmdshell") or Instr(StrTemp,"exec%20master") or Instr(StrTemp,"net%20localgroup%20administrators") or Instr(StrTemp,"net%20user") or Instr(StrTemp,"%20or%20") or Instr(StrTemp,"'") or Instr(StrTemp,"%20") or Instr(StrTemp,"""") or Instr(StrTemp,"“") or Instr(StrTemp,"”") or Instr(StrTemp,":") or Instr(StrTemp,":") or Instr(StrTemp,";") or Instr(StrTemp,";") or Instr(StrTemp,",") or Instr(StrTemp,",") or Instr(StrTemp,"-") or Instr(StrTemp,"%27") then
Response.Write "<script language='javascript'>alert('非法操作!立即返回!');history.back();</script>"
Response.end
End If
%>
过滤N多东西,不光可以用于这个网站里面,还可以用于其它站点。把上面的代码另存为Safe.asp,在Showdaily.asp,Showpic.asp,Showwz.asp等文件插入以下代码:
<!--#include file="safe.asp"-->
如:shoupic.asp
代码为
<!--#include file="conn.asp"-->
<!--#include file="jbsz.asp"-->
<!--#include file="safe.asp"-->
……
在URL后添加个单引号看看,被过滤了吧,多简单。如图1所示:

图1
提示的字符可以修改,想玩的朋友也可以搞点BT的,呵呵。这样的方法对付现在只会用SQL注人工具的菜鸟是有效果的,而且还加入了%27过滤,可以用于MSSQL数据库,脚本安全有保障了,不过碰到那些传说中的高手就不行了,只能开始第二阶段数据库漏洞修补了。
为了防止帐户泄露,数据库里的数据需要采用MD5算法加密,MD5算法是一种不可逆的算法,只能采取穷举密码的方法了,如果密码是十几位的,那么破解……几十年,甚至上百年可能跑出来。
行动!光盘里有MD5.asp文件,复制它到根目录下,找到Admin_login.asp修改为以下代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp"-->
<!--#include file="md5.asp"-->
<% d_adm=trim(request.form("adm"))
d_adm=replace(d_adm,"'","")
d_pws=trim(request.form("pws"))
d_pws=replace(d_pws,"'","")
if d_adm="" or d_pws="" then
response.Write("用户名和密码不能为空!")
else
set rs=server.CreateObject("adodb.recordset")
sql="select * from dy_admin where adm='"&d_adm&"' and pws='"&md5(d_pws)&"'"
rs.open sql,conn,1,1
if not rs.eof then
session("oursky")="oursky"
response.Redirect ("ad_login.asp")
else
response.Redirect("admin.asp")
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
end if
%>
修改好了,但还没有全部完成:由于你的数据库里面的密码还是明文保存的,现在登陆的话,密码肯定错误的,这里要用到MD5密码转换器,如图2所示。

图2
用ACCESS打开数据库,管理员表单是DY_admin,然后在PWS字段下把密码修改成323b453885f5181f(123456789的MD5值哦),以后就可以用123456789登陆了。再把数据库路径修改一下,相信没有多少人能攻破你的网站了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
沙发
发表于 2007-9-25 18:56:36 | 只看该作者
顶下!!!

  一会去试试
板凳
发表于 2007-9-25 19:14:12 | 只看该作者
路过累了!坐下板凳!!!!!!!
地板
发表于 2007-10-1 04:34:41 | 只看该作者
[s:39] [s:39] [s:39] [s:39] [s:39] [s:39] [s:39] [s:39] [s:39] [s:39]
5#
发表于 2013-10-25 09:58:19 | 只看该作者
离婚率高至少反映了好坏不同的两点﹕好的一点是人们的观念已经趋向人性化,不再为封建思想而禁锢自己,坏的一点是对于婚姻的轻率。
6#
发表于 2013-10-25 09:20:03 | 只看该作者
生命像流水,这些不快的事总要过去,如果注定一辈子要这么过,再不开心也没有用。女人三十
7#
发表于 2013-10-25 09:28:09 | 只看该作者
悲伤使人格外敏锐。约翰.克里斯朵夫
8#
发表于 2013-10-25 09:27:27 | 只看该作者
如果觉得生活是一种刁难,一开始就输了。如果觉得刁难是一种雕刻,迟早都会赢的。
9#
发表于 2013-10-25 09:04:36 | 只看该作者
该来的始终会来,千万别太着急,如果你失去了耐心,就会失去更多。该走过的路总是要走过的,从来不要认为你走错了路,哪怕最后转了一个大弯。这条路上你看到的风景总是特属于你自己的,没有人能夺走它。
您需要登录后才可以回帖 登录 | 立即註冊帳號

本版积分规则

申请友链|关于我们|Archiver|手机版|小黑屋|狼氏网 ( 京ICP备14010652号

GMT+8, 2024-5-3 12:05 , Processed in 0.923146 second(s), 14 queries , Xcache On.

Powered by LangZu web2.0 Discuz Reinforcement! Array9.2 Licensed

© 2001-2013 Lang4 Inc. Theme.狼族

快速回复 返回顶部 返回列表
安全联盟站长平台