%5C爆库

news/2025/1/18 13:12:53/

当我们暴库失败的时候不妨试试利用%5c绕过asp的验证

废话少说,看下面的代码:  

<!--#INCLUDE file="conn.asp" -->  
<%  
guest_user=trim(request("guest_user"))  
guest_password=trim(request("guest_password"))  
Set rs= Server.createObject("ADODB.Recordset")  
sql="select * from admin where id=1"   
rs.open sql,conn,3,2  
readuser=rs("guest_user")  
readpassword=rs("guest_password")  
if readuser<>guest_user or readpassword<>guest_password then  
response.write "请输入正确地管理员密码!"  
response.end  
else  
session("admin")=1 \’登陆后写入seesion中保存  
response.write("登陆成功,请返回信息页")  
end if  
%>  

看到没有,要想通过验证必须让数据库里的用户名密码与提交的一致;想到什么?让我们再看看数据库连接文件代码:  

<%  
on error resume next  
set conn=server.createobject("adodb.connection")  
DBPath = Server.MapPath("guestbook.asp")  
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath  
%>  

如果提交%5c数据库找不到,由于容错,所以程序会继续执行,那么说来从数据库得到的用户名密码皆为空(想想有时暴库失败是不是看到空空的框架,因为数据都是空嘛),哈哈,这样我们就绕过验证了!  

知道怎么做了吧,把登陆页面保存到本地,修改提交的url,把最后一个/改成%5c,用户名密码用空格(有的程序会检查用户名密码是否为空,空格会被程序过滤),提交,就ok了。  

诶,各位不要以为我自己没事写段代码来捣鼓,实际上这个是我们学校一个高手做的留言板程序,就挂在学校的主页,呵呵。  

既然弄懂了原理,当然要找实际漏洞啦,自然是拿大名鼎鼎的"洞"网论坛开刀。不过失败了,因为它的数据库连接文件里有这么一段:  

If Err Then  
err.Clear  
Set Conn = Nothing  
Response.Write "数据库连接出错,请检查连接字串。"  
Response.End  
End If  

数据库找不到程序就结束了,呵呵,空欢喜一场。  

接着又去down了bbsxp论坛,打开数据库连接文件,晕,根本没有容错语句;呵呵,不过可以暴库哦。  

我又不是BT,所以不去找事了,写篇文章,算是给各位高手提供资料吧。  

总结一下这个攻击方法成功的条件:

1、数据库连接用的相对路径且仅有简单的容错语句;\

2、服务器iis版本为4或5;

3、程序里不检查空字符或者检查时不过滤空格而比较时过滤空格;

4、程序不能在一级目录  

至于防范,呵呵,既然攻击条件知道了,防范措施自然也出来了^_^  


http://www.ppmy.cn/news/343810.html

相关文章

C.5

//1、随机产生20个[10 , 50]的正整数存到数组中&#xff0c;并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。 /* int a[20] {0}; for (int i 0; i < 20; i ) { a[i] arc4random() % 41 10; printf("%d ", a[i]); } int max 0, min …

5.c

1.完成猜数字游戏。 代码如下&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> int main() {srand((unsigned int)time(NULL));int a ;int guess 0;guess rand() % 100 1;//printf("%d\n&…

商业竞争算法

前言&#xff1a;为什么会想起来写这块呢&#xff1f;可能与我目前所处的地域城市有关系吧&#xff0c;也可能与我见过的公司差异有关。 商业竞争算法 什么是商业竞争算法呢&#xff1f;简言之&#xff1a;商战&#xff0c;能够在竞争中产生优势的&#xff0c;且不易被替代的算…

【java 基础三 】- 正则表达式、枚举、equals等

一 枚举 1.1 定义 Java枚举是一种特殊的数据类型&#xff0c;用于表示有限个预设的值。它在Java语言中是一种类&#xff08;class&#xff09;类型&#xff0c;但又比普通的类类型多了些特殊的约束&#xff0c;这些约束使得枚举类型更加简洁、安全和便捷。枚举类型的名称必须…

华为网络设备查看风扇状态命令

描述&#xff1a;华为网络设备查看风扇状态命令 命令&#xff1a; display device fan

华为网络设备CPU和内存占用率检查命令方法

描述&#xff1a;华为网络设备CPU和内存占用率检查命令方法 方法&#xff1a; display cpu display memory

华为网络设备查看电源状态检查命令

描述&#xff1a;华为网络设备查看风扇状态电源状态检查命令 命令&#xff1a; display device fan

华为网络设备 display 命令

1. 常用命令 信息项 使用命令基本信息 display diagnostic-information设备信息 display device接口信息 display interface版本信息 display ver…