thisbennyyyyy

SHAPES.INC EXPLOIT : FREE ASTRA 6 PRO AND CLAUDE FABLE 5.1

Sep 12th, 2026
38
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.59 KB | Cybersecurity | 0 0
  1. THIS IS WORKING TO THE STAND OF 12/9/2026 at 22:53
  2.  
  3.  
  4.  
  5.  
  6.  
  7. a ai roleplay website doesnt know how to not trust the client so now we can all use it for free :)
  8.  
  9.  
  10.  
  11. images:
  12.  
  13. https://user.uploads.dev/file/6c0855901f14d63f9f8f1a2fc20da75e.png
  14.  
  15.  
  16. you can fully use all paid models
  17.  
  18. if you go into settings you can see the staff tools but you cannot use them
  19.  
  20. HOW TO USE:
  21.  
  22. #1 get the javascript code at the end of the paste (or this link https://user.uploads.dev/file/e67dac025d739c6719bef4375901e83d.js )
  23. #2 get tampermonkey for the browser you use
  24. #3 add the script
  25. #4 go onto shapes.inc
  26. #5 send any message to any bot (the exploit will not work yet
  27. #6 select any premium AI model or go to settings and see the staff tools (the exploit now fully works)
  28.  
  29.  
  30. HOW IT WORKS
  31.  
  32. the ai who coded this (100% vibecoded) is trusting the client with almost everything so if you manipulate the packet send to https://talk.shapes.inc/api/user/me and just make it say that you have premium and 10 trillion credits
  33.  
  34. YOU NOW FULLY HAVE PREMIUM AND INFINITE CREDITS
  35.  
  36.  
  37. dion
  38. i reported this and he banned me
  39.  
  40.  
  41.  
  42.  
  43. // ==UserScript==
  44. // @name Shapes.inc exploit tuff
  45. // @namespace http://tampermonkey.net/
  46. // @version 3.0
  47. // @description worst website ever made ???
  48. // @match https://*.shapes.inc/*
  49. // @grant none
  50. // @run-at document-start
  51. // ==/UserScript==
  52.  
  53. (function() {
  54. 'use strict';
  55.  
  56. const spoofData = (data) => {
  57. if (!data || typeof data !== 'object') return data;
  58.  
  59. return {
  60. ...data,
  61. premium: true,
  62. banned: false,
  63. deleted: false,
  64. credits_available: 999999999999999,
  65. is_editorial_staff: true,
  66. is_editorial_staff_2: true,
  67. premium_plans_v2_enabled: true,
  68. premium_plans_v2_trial_credits_redeemed_at: null,
  69. premium_plans_v2_entitlement: {
  70. is_participating: true,
  71. effective_tier: "ultimate",
  72. subscription_status: "active",
  73. has_active_subscription: true,
  74. ad_free: true,
  75. can_create_workspaces: true,
  76. can_use_premium_models: true,
  77. premium_model_access_source: "premium",
  78. eligible_grandfathered_credit_balance: 999999999999999,
  79. can_purchase_legacy_credits: true,
  80. persona_limit: 99999,
  81. owned_shape_limit: 99999,
  82. owned_room_limit: 99999,
  83. context_message_limit: 999999,
  84. knowledge_entry_character_limit: 999999999,
  85. knowledge_record_limit: 99999,
  86. manual_memory_limit: 999999999,
  87. custom_emoji_limit: 99999,
  88. upgrade_url: "/premium"
  89. },
  90. credit_subscription_id: "spoof_ultimate",
  91. credit_subscription_status: "active",
  92. credit_subscription_plan: "unlimited",
  93. credit_subscription_allowance: 999999999999999,
  94. credit_subscription_catalog_version: null,
  95. credit_subscription_monthly_credits: 999999999999999,
  96. credit_subscription_current_period_end: null,
  97. cancel_at_period_end: false,
  98. cancel_at: null
  99. };
  100. };
  101.  
  102. const originalFetch = window.fetch;
  103. window.fetch = function(...args) {
  104. const url = (typeof args[0] === 'string' ? args[0] : (args[0]?.url || '')).toLowerCase();
  105.  
  106. return originalFetch.apply(this, args).then(async response => {
  107. if (!response.ok) return response;
  108.  
  109. const shouldIntercept = url.includes('/api/user') ||
  110. url.includes('credits') ||
  111. url.includes('profile') ||
  112. url.includes('entitlement') ||
  113. url.includes('subscription');
  114.  
  115. if (shouldIntercept) {
  116. try {
  117. const clone = response.clone();
  118. const text = await clone.text();
  119. const data = JSON.parse(text);
  120. const spoofed = spoofData(data);
  121.  
  122. return new Response(JSON.stringify(spoofed), {
  123. status: response.status,
  124. statusText: response.statusText,
  125. headers: response.headers
  126. });
  127. } catch(e) {
  128. return response;
  129. }
  130. }
  131. return response;
  132. });
  133. };
  134.  
  135.  
  136. const originalOpen = XMLHttpRequest.prototype.open;
  137. XMLHttpRequest.prototype.open = function(method, url, ...args) {
  138. this.__url = url;
  139. return originalOpen.apply(this, [method, url, ...args]);
  140. };
  141.  
  142. const originalSend = XMLHttpRequest.prototype.send;
  143. XMLHttpRequest.prototype.send = function(...args) {
  144. const url = (this.__url || '').toLowerCase();
  145. const shouldIntercept = url.includes('/api/user') ||
  146. url.includes('credits') ||
  147. url.includes('profile');
  148.  
  149. if (shouldIntercept) {
  150. const originalCallback = this.onreadystatechange;
  151. this.onreadystatechange = function() {
  152. if (this.readyState === 4 && this.status === 200) {
  153. try {
  154. const data = JSON.parse(this.responseText);
  155. const spoofed = spoofData(data);
  156.  
  157. Object.defineProperty(this, 'responseText', {
  158. writable: true,
  159. configurable: true,
  160. value: JSON.stringify(spoofed)
  161. });
  162. Object.defineProperty(this, 'response', {
  163. writable: true,
  164. configurable: true,
  165. value: spoofed
  166. });
  167. } catch(e) {}
  168. }
  169. if (originalCallback) return originalCallback.call(this);
  170. };
  171. }
  172. return originalSend.apply(this, args);
  173. };
  174.  
  175.  
  176. const patchStorage = (storage) => {
  177. const orig = storage.setItem;
  178. storage.setItem = function(key, value) {
  179. if (key.toLowerCase().includes('user') ||
  180. key.toLowerCase().includes('profile') ||
  181. key.toLowerCase().includes('auth') ||
  182. key.toLowerCase().includes('credit') ||
  183. key.toLowerCase().includes('premium')) {
  184. try {
  185. const data = JSON.parse(value);
  186. if (data && typeof data === 'object') {
  187. const spoofed = spoofData(data);
  188. return orig.call(this, key, JSON.stringify(spoofed));
  189. }
  190. } catch(e) {}
  191. }
  192. return orig.call(this, key, value);
  193. };
  194. };
  195.  
  196. try { patchStorage(localStorage); } catch(e) {}
  197. try { patchStorage(sessionStorage); } catch(e) {}
  198.  
  199.  
  200. setInterval(() => {
  201. const keysToCheck = ['user', 'currentUser', 'profile', 'auth', '__user', '__profile', '__auth'];
  202. keysToCheck.forEach(key => {
  203. if (window[key] && typeof window[key] === 'object') {
  204. Object.assign(window[key], spoofData(window[key]));
  205. }
  206. });
  207. }, 250);
  208.  
  209. })();
  210.  
Advertisement
Comments
Add Comment
Please, Sign In to add comment