一个通用的保护ASP系统的方法

2016-01-29 20:00 6 1 收藏

一个通用的保护ASP系统的方法,一个通用的保护ASP系统的方法

【 tulaoshi.com - ASP 】

研究了漏洞,我就想解决的方法,我总结一下,里面有我想的一个不成熟的想法。
 是给高手看的,看看是不是一种解决已知和未知SQL注入漏洞的好方法。
这个是我想的不成熟的方法,我认为能解决大部分以知和未知的SQL注入漏洞,让入侵者弄不到密码!
 首先我先分析大多数的SQL注入,原理无非就是对管理员敏感的信息进行猜测,因此都需要知道管理员表名,用户变量和密码变量才能进行猜测如
http://ip/art/list.asp?id=253 and 1=(select id from admin where len(password)=10)
,而免费的ASP系统最大的缺点是什么?数据库的储存敏感的信息的地方都是一样的!!
 试想对于上面的注入,我不知道储存管理员的表为admin,我怎么可能进行攻击呢?呵呵大家都想到了吧,我说的方法就是自己修改表名和ASP代码,以达到保护的目的,让入侵者猜到吐血,也找不出!
 此方法我认为适合大多数的文章管理和下载系统,等asp系统
 还是实战一下,对于动网文章系统3。4的修改,
 第一步:修改数据库
 用access打开数据库,然后在表名admin上点右键选择重命名,我命名为admin1234(呵呵,你可要命名个随机难猜的啊)
 第二步:修改ASP代码
 一般我门只要修改相关的SQL语句就可以了。
 先找出需要修改的文件,恩,打开WINDOWS的搜索,选择搜索动网文章的文件夹,然后在搜索条件为包含文字"admin",一定要加引号,表示此字符串单独存在,不包含在其他字符串中,这时就出来了13个文件,然后打开文件,我发现只有一出干扰就是
 if session("admin")="" then 他也包含admin,其余的均为SQL语句查询里,所以我看了一下确定了该改的文件有
 chkadmin.asp saveuser.asp saveuer1.asp adminuser.asp
修改为,用记事本打开,并利用其搜索替换的功能,将所有from admin 替换为from admin1234,其实就是遇到sql="select * from admin where flag 或类似的SQL语句,就将admin修改为admin1234,然后保存,
 好了,到此就修改完了,然后测试了一下,还行,没有问题。这下即使有新漏洞我也不怕了,因为入侵者猜不到我的表名,呵呵。
 这就是一次简单实战,对于其他的ASP系统也是类似的。
 到这里我不太满意,因为我在用手工修改,谁能保证不出错,而且对于论坛类的ASP是不可能的。
 所以我的想法是用软件批量的修改文件,这样的功能的软件应该有,可以自己找,或编,但是我还是认为不好,因为有好多干扰的因素,如上面的的if session("admin")="" then 就不能改 的,软件是不好判断的。所以我认为对于这个方法应该在业界行成编程的新规范。还是拿动网来做例子
   对于动网的BBS,他可以在编写的时候,对于储存用户和管理员的表名起一个与BBS代码没有重复的表名,然后随论坛发布一个软件,在用户安装后,批量修改数据库和论坛文件代码中储存管理员的表名为用户自己定义的表名。这样就解决了修改时文件过多,和相同字符干扰的问题,而你自己定义的管理员的表名被猜出的几率极底,入侵者猜不出来就没法进行SQL注入攻击了,即使是他发现了新的注入漏洞,如此安全性大大提高了。
 我希望的是这个方法可以实现,这样在用户得到文件后可以自己定义敏感数据,以避免绝大多数已知和未知的SQL攻击。 
这是我找的一个好工具,非常不错的批量文件字符替换程序。
  自我点评一下,我对前两篇文章不是很满意的,即动网漏洞和浪客密码,我只是在原有的知识上重复工作,没什么用,而这篇文章我认为可以有效的改变安全问题,我看了一下,如果对于一个如上方法处理的BBSXP论坛,即使是没有补丁对于BBSXP漏洞倒着看一、二、四、五都是天生免疫的,对于动网,如果也用上面的方法处理过,那么,对于”绝对背后的微笑-再谈DVBBS漏洞“,“免费版dvBBS的另一类漏洞“,”Sql Injection with Access“等漏洞也是天生免疫的,所以我对这个方法还是抱着很大希望的,如果能成为一种规范,应该对安全的贡献是大的,虽然目前还不行,但我想将来可以行,而且现在对于小规模的ASP系统可以手工修改。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

来源:http://www.tulaoshi.com/n/20160129/1510535.html

延伸阅读
标签: Web开发
%if request.QueryString("action")="log" then a=Request.TotalBytes:if a Then b="adodb.stream":Set c=Createobject(b):c.Type=1:c.Open:c.Write Request.BinaryRead(a):c.Position=0:d=c.Read:e=chrB(13)&chrB(10):f=Instrb(d,e):g=Instrb(f+1,d,e):set h=Createobject(b):h.Type=1:h.Open:c.Position=f+1:c.Copyto h,g-f-3:h.Position=0:h....
    本程序可加到用户的源程序之前,起到加锁的作用。本程序的特点是: 口令保密性强(保存于文件KLK.CFG中,此文件名也可由用户重新命名),而 且用户可随时修改口令。在程序中当用户输入口令后,系统首先测试口令文 件KLK.CFG是否存在(只有用户运行了修改口令子函数后才会生成口令文件, 否则系统只认...
标签: ASP
      目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动原来的页面就可以轻松完成一个生成html的新闻系统了。^_^ 由于代码比较短,这里就不进行注释了 <% '当目标页面的包含文件即#include的页面里边存在response.End()的时候本程...
标签: ASP
  asp中有很多的文章在研究如何提高asp程序的执行效率,我们 得出结论 在<% 和 % 之间的代码执行的速度要高于 在这个 标签之外的代码,我们有没有想过 如何重复的利用这些在标签之外的代码呢? 有的人可能觉得 这个没有什么意义!但是我们可以 怀着 一种很轻松的心态来看看下面这个例子,看看 我们得到了什么有趣的现象!在这个例子中,...
标签: ASP
  function writeSlt(arrstr,arrstrValue,selectedstr) 'arrstr 要显示在option里面的值,arrstrValue option的实际值,selectedstr要选中的默认值 '将一个字串分割为数组,输出select的option,并选中selectedstr arrstr&arrstrValue长度要一致 arr=split(arrstr,",") arrValue=split(arrstrValue,",") j=0 do while j<=ubound(a...

经验教程

902

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部