上一篇:揭开Windows网络邻居的内幕秘密 >>
SQL注入攻击零距离
一:基础篇
分析下漏洞产生的原因,主要还是参数没完全过滤。
cntid = request("cntid")
这样的语句就存在一个注入攻击,首先,没验证是否为整数
解决方法:
<% dim cntid
cntid =replace(request("cntid "),"","")
if (not isnumeric(cntid)) then
call error
response.end
end if
sub error()
response.write " <table align=center width=300 border=0
cellpadding=4 cellspacing=0 >"
response.write " <tr > "
response.write " <td colspan=2 height=15> "
response.write " <div align=center>
操作: 参数错误!</div>"
response.write " </td>"
response.write " </tr>"
response.write " <tr> "
response.write " <td colspan=2 height=23> "
response.write " <div align=center><br><br>"
response.write " 参数错误!!!非法探测已经被记录 <br><br>"
response.write " <a href=javascript:onclick=history.go(-1)>返回</a>"
response.write " <br><br></div></td>"
response.write " </tr> </table></body></html>"
end sub
%>
这是一个最基础的过滤,如果提交非法参数效果如图1:
那么我们还需要注意什么?
用户名的注册,必须过滤掉一些特殊符号,继续刚才的话题,我们假设是username.
<% dim username
username =replace(request("username "),"","")
if instr(username,"=")>0 or instr(username,"%")>0 or instr(username,chr(32))>0 or instr(username,"?")>0 or instr(username,"&")>0 or instr(username,";")>0 or
instr(username,",")>0 or instr(username,"")>0 or instr(username,",")>0 or instr
(username,chr(34))>0 or instr(username,chr(9))>0 or instr(username,"")>0 or
instr(username,">")>0 or instr(username,"<")>0 or instr(username,"$")>0 or instr
(username,"#")>0 or instr(username,"@")>0 then
call error
response.end
end if
sub error()
response.write " <table align=center width=300 border=0
cellpadding=4 cellspacing=0 >"
response.write " <tr > "
response.write " <td colspan=2 height=15> "
response.write " <div align=center>操作: 参数错
误!</div>"
response.write " </td>"
response.write " </tr>"
response.write " <tr> "
response.write " <td colspan=2 height=23> "
response.write " <div align=center><br><br>"
response.write " 用户名中含有非法字符(“=”,“%”,
“?”,“&”,“;”,“,”,“”,””,“>”,“<”,“$”,“#”,“@”) <br><br>"
response.write " <a
href=javascript:onclick=history.go(-1)>返回</a>"
response.write " <br><br></div></td>"
response.write " </tr> </table></body></html>"
end sub
%>
利用这个原理,我们还能过滤一些可能存在cookies跨站脚本的地方:
只要过滤cookie,java这样的字眼,方法同上。需要注意的事,类似与用户登陆的地方,用户名一定要username =replace(request("username "),"",""),意思就是把’过滤成”,这样做的目的就是预防’ or ‘’=’这样的入侵。
可是如果类似www.xx.com/list.asp? action = search
我们可以这样过滤
<% action=request("action")
select case action
case "search"
call search()
case else
call search()
end select
sub search ()
这里是search的内容
end sub
%>
大家可以看到无论对错,都执行search。这样也可以预防sql。
二:密码安全
采用不可逆加密是必须的选择,防止别人探测到密码后暴力破解,md5用艿氖迪址浅<虻姹闳腋鯩d5函数体,很多源代码都 带。
<!-- #include file=" md5.asp" --> 这里是引入md5函数
<% dim username
username =md5(md5(replace(request("username "),"","")))
%>
这里就实现了2次md5加密,一般2-3次就足够了,暴力破解比较困难:)
cookies欺骗问题很严重,所以一般后台管理员一定要session验证。实现方法
我们在登入成功后写入
session("btadmin")=rsadmin("admin")
建立一个验证函数cookies.asp
内容如下
<%
if session("btadmin")="" then
response.redirect "admin.asp"
end if
%>
在每个管理员操作文件的开头加上
<!--#include file="cookies.asp" -->
这样就可以预防非法登陆了:)
我们经常看到验证码这样的东西,这样做是为了预防暴力破解。
实现方法,假设登入为login.asp
我们在开头加:
<%
dim p
randomize ‘对随机数生成器做初始化的动作
p = int((8999 * rnd) + 1000)
session("cntcode")=p %>
插入验证代码的表格
<tr>
<td valign=middle>请输入验证码</td>
<td valign=middle>
<input name=yanzhen type=text>
在左边框输入: <%=session("cntcode")%></td></tr>
最后验证程序:
<%
if request("yanzhen")="" or trim(session("cntcode"))
<>trim(replace(request("yanzhen"),"","")) then
response.write " 请正确输入您的验证码。"
response.end
else
%>
程序运行效果如图2:
三:数据库安全
爆库的方法越来越多,我们来看下:如图3
按x档案以前文章一位大侠说的,将/替换为 %5c,确实很多网站都存在这样的漏洞。大家可以清楚的看到数据库地址。
偶什么方法可以预防呢?
。。。(代码见杂志)。。。。。。。。。。。
这是一个数据库连接文件,大部分为conn.asp
关键在与on error resume next出错了也执行下一句
我们看下他的运行效果。
除了图片显示不正常外,没暴露数据库:)
其实浪心建议用win2003做服务器,当你用%5c 来替换的时候
_blank>http://127.0.0.1/fourm.asp?cntid=4
自动换成%5cfourm.asp/多个/
_blank>http://127.0.0.1%5cfourm.asp/?cntid=4
找不到服务器,唯一的结果,更厉害:)
还有一种方法就是不让对方下载数据库
方法是
新建一个notdown表,字段为nodown, 数据类型为ole 如图4
保存为mdb.mdb
ok,我们写个nodown.asp
代码如下
。。。(代码见杂志)。。。。。。。。。。。
把他同数据库一同上传到你的空间,或者本地做个iis,运行nodown.asp
提示添加记录成功。
ok,把数据库重新命名为mdb.asp
直接在浏览器里输入数据库地址:提示
active server pages 错误 asp 0116
丢失脚本关闭分隔符
/bbs/cntlovebbs.asp,行 44042
script 块缺少脚本关闭标记(%>)。
用快车下载提示http 500错误
ok到这里数据库安全也过去了:)下面说下浪心新的思维:)没任何技术难度,会vb的都会写:)
四:安全的后台登入
。。。(代码见杂志)。。。。。。。。。。。
ok了:)程序简单的出奇,他的功能可不小哦:)你的网站可以比以前安全许多。
()
下一篇:灰鸽子注册成系统服务的方法 >>
相关文章:
- · 并不神奇的Real影片木马
- · CHM帮助文件的编程实现
- · 使用Magic Winmail来提升权限
- · 解析系统漏洞扫描的两大类型
- · 局域网监控我最行——Netrobocop
- · 让Ghostbusters为电脑保驾护航
- · 辨别入侵检测系统性能的方法
- · 瑞星个人防火墙安装与使用
- · 系统漏洞扫描之王——Nmap详解
- · 图解杀毒软件McAfee的使用方法
- · LB论坛(所有版本)跨站脚本漏洞
- · 破解QQ“隐身”的几大绝招
- · 入侵不要忘了"Site:Titel:..."
- · Linux中实现局域网远程接入
- · QQ 2005贺岁版登录口令加密算法及其源代码
- · 脚本的巧妙应用
- · Linux操作系统12则经典应用技巧
- · 绕过javascript的过滤----Flash!attack漏洞
- · 只用ISO映像文件能装系统
- · 用perl调用系统命令来实现IPC$远程猜解
- · 外挂编写完全攻略
- · 注册表的六种个性化应用
- · 命令行下修改文件访问控制权限
- · SQL Server应用程序中的高级SQL注入
- · leadbbs移花接木漏洞与加入黑客木马
- · XPSP2多线程访问提速秘技
- · Sniffer:黑客入侵最常用的手段
- · CGI安全漏洞资料速查表
- · 浅谈如何针对DDos部署防御措施
- · 什么是 TCP SYN Flood 攻击
- · TCP协议的通讯方式
- · 基于NetBIOS的简单Windows进攻法
- · UNIX及黑客入门的探索与思考
- · 文件扩展名导致的安全问题
- · 黑客攻击步骤-如何获得IP
- · 局域网上网的安全防范与技巧
- · 在2000/xp下禁用USB接口
- · 最全最新的mp3芯片介绍
