仓酷云

标题: ASP网站制作之使用%5c绕过考证 [打印本页]

作者: 小女巫    时间: 2015-1-16 23:40
标题: ASP网站制作之使用%5c绕过考证
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码使用%5c绕过考证

---------------------------------------
lake2(http://mrhupo.126.com)
2004-11-27
---------------------------------------

说到%5c,你是否是想起了以后盛行的谁人%5c暴库毛病,呵呵,本文就是对%5c使用的探究(呵呵,固然有我提出的新东东,也许对你有匡助哦^_^)。

好,我们先追根溯源,找到谁人毛病的老底。看看绿盟2001年的毛病通告:http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=1429

N年之前使用这个毛病能够完成目次遍历,固然微软出了补钉,不外仿佛补钉是用来限定iis只能会见假造目次的,以是毛病仍是存在,只不外使用体例变了。对iis来讲,提交一个含有%5c的url可以找到文件,可是该文件里以绝对路径援用的其他文件却找不到了(%5c是的url编码,iis跳转到上一级目次往找,固然找不到;头晕了吧,哈哈,我也头晕啊)。

厥后这个毛病就被牛人发掘出来了,也就是传说中的%5c暴库:因为毗连数据库的文件援用的绝对路径,提交%5c找不到文件,以是招致堕落,iis就会老厚道实的说出数据库的路径(不分明?找google)。

一个偶尔的时机我发明还能够使用%5c绕过asp的考证;当我们暴库失利的时分无妨尝尝。

空话少说,看上面的代码:

<!--#INCLUDEfile="conn.asp"-->
<%
guest_user=trim(request("guest_user"))
guest_password=trim(request("guest_password"))
Setrs=Server.CreateObject("ADODB.Recordset")
sql="select*fromadminwhereid=1"
rs.opensql,conn,3,2
readuser=rs("guest_user")
readpassword=rs("guest_password")
ifreaduserguest_userorreadpasswordguest_passwordthen
response.write"请输出准确地办理员暗码!"
response.end
else
session("admin")=1上岸后写进seesion中保留
response.write("上岸乐成,请前往信息页")
endif
%>


看到没有,要想经由过程考证必需让数据库里的用户名暗码与提交的分歧;想到甚么?让我们再看看数据库毗连文件代码:

<%
onerrorresumenext
setconn=server.createobject("adodb.connection")
DBPath=Server.MapPath("guestbook.asp")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath
%>

啊,有容错语句不克不及暴库!等等,假如提交%5c数据库找不到,因为容错,以是程序会持续实行,那末说来从数据库失掉的用户名暗码皆为空(想一想偶然暴库失利是否是看到空空的框架,由于数据都是空嘛),哈哈,如许我们就绕过考证了!

晓得怎样做了吧,把上岸页面保留到当地,修正提交的url,把最初一个/改成%5c,用户名暗码用空格(有的程序会反省用户名暗码是不是为空,空格会被程序过滤),提交,就ok了。

诶,列位不要觉得我本人没事写段代码来捣鼓,实践上这个是我们黉舍一个妙手做的留言板程序,就挂在黉舍的主页,呵呵。

既然弄懂了道理,固然要找实践毛病啦,天然是拿赫赫有名的“洞”网论坛开刀。不外失利了,由于它的数据库毗连文件里有这么一段:

IfErrThen
err.Clear
SetConn=Nothing
Response.Write"数据库毗连堕落,请反省毗连字串。"
Response.End
EndIf

数据库找不到程序就停止了,呵呵,空欢乐一场。

接着又往down了bbsxp论坛,翻开数据库毗连文件,晕,基本没有容错语句;呵呵,不外能够暴库哦。

我又不是BT,以是不往谋事了,写篇文章,算是给列位妙手供应材料吧。

总结一下这个打击办法乐成的前提:1、数据库毗连用的绝对路径且唯一复杂的容错语句;2、服务器iis版本为4或5;3、程序里不反省空字符大概反省时不外滤空格而对照时过滤空格;4、程序不克不及位于一级目次

至于提防,呵呵,既然打击前提晓得了,提防措施天然也出来了^_^


</p>楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。
作者: 透明    时间: 2015-1-20 10:54
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 海妖    时间: 2015-1-25 07:51
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 小魔女    时间: 2015-1-27 07:53
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者: 精灵巫婆    时间: 2015-2-5 02:31
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 蒙在股里    时间: 2015-2-11 01:29
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
作者: 爱飞    时间: 2015-3-10 22:25
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者: 分手快乐    时间: 2015-3-17 11:10
不能只是将它停留在纸上谈兵的程度上。
作者: 仓酷云    时间: 2015-3-24 08:45
那么,ASP.Net有哪些改进呢?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2