1.分析

CMS下载地址:http://bbs.gxlcms.com/article/9

版本:GxlcmsQY v1.0.0713

\Lib\Lib\Action\Home\HitsAction.class.php

获取GET参数sid后,然后带入到函数M(),M()的作用是指定数据库的表名。然后调用select()查询,查询的字段也是根据sid指定的,比如$sid._id。例如传入的sid=admin,那么查询的表就是gxl_admin,查询的字段就有admin_id,admin_hits等。输出的内容是GET参数type指定的,所以可以通过控制sid来进行注入。

 

 

2.poc

这里数据库中的很多字段是不存在的,比如admin_hits,为了防止数据库报错,所以在表名后面用#注释。

获取mysql.user()表中password值的POC如下:

http://127.0.0.1/gxlcms/index.php?s=Home-***&type=password&sid=***%20from%20mysql.user%23

页面成功输出password

执行的SQL语句为: