{"id":7381,"date":"2025-02-20T12:18:05","date_gmt":"2025-02-20T18:18:05","guid":{"rendered":"https:\/\/www.threatstop.com\/blog\/they-will-do-anything-to-serve-you-ads-wont-they"},"modified":"2025-02-20T12:18:05","modified_gmt":"2025-02-20T18:18:05","slug":"they-will-do-anything-to-serve-you-ads-wont-they","status":"publish","type":"post","link":"https:\/\/ddi.mohflo.net\/index.php\/2025\/02\/20\/they-will-do-anything-to-serve-you-ads-wont-they\/","title":{"rendered":"They will do anything to serve you ads, won&#8217;t they?"},"content":{"rendered":"<p>Obfuscation in malware delivery has always been an effective trick in a cybercriminal\u2019s toolbox\u2014concealing the true intentions of code so it can slip past detection and remain hidden as long as possible. Recently, our ThreatSTOP Intelligence, Research, and Security (TIS) Team, uncovered a surge of traffic targeting <span><strong>IP 139.45.197.242<\/strong><\/span>, which telemetry shows is a primary hosting point for malicious domains serving heavily obfuscated pop-up\/pop-under scripts used in phishing campaigns.<\/p>\n<p><!--more--><\/p>\n<p><strong>What We Found<\/strong><\/p>\n<p>Upon analyzing the malicious JavaScript, we discovered a large block of code, packed with deceptive function names, scrambled variables, and random string transformations. The purpose? Injecting forced pop-ups, redirects, and overlay ads that lead unsuspecting users to phishing pages or potentially malicious content. This stealthy approach helps attackers hide from conventional detection methods and frustrate would-be debuggers by throwing up multiple layers of obfuscation.<\/p>\n<p>We&#8217;re not going to include the code directly in the blog post, but we&#8217;ll post a screenshot of it so you can see, clearly, this is not meant to be figured out easily:<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they.png?resize=640%2C483&#038;ssl=1\" width=\"640\" height=\"483\" loading=\"lazy\" alt=\"Screenshot 2025-02-20 at 12.33.20\" srcset=\"https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they-1.png 1605w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they.png 3210w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they.png 4815w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they.png 6420w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they.png 8025w, https:\/\/ddi.mohflo.net\/wp-content\/uploads\/2025\/02\/they-will-do-anything-to-serve-you-ads-wont-they.png 9630w\" sizes=\"auto, (max-width: 3210px) 100vw, 3210px\"><\/p>\n<p>Here\u2019s a high-level look at what this code does:<\/p>\n<p><span>1. <\/span><strong>Pop-Up and Redirect Logic<\/strong><\/p>\n<p>The script secretly rewrites links, hooking into user clicks to open pop-ups or forcibly redirect them to attacker-controlled sites.<\/p>\n<p><span>2. <\/span><strong>Session and Click Tracking<\/strong><\/p>\n<p>The code stores data on how many times it has displayed an ad or forced a redirect, so it can pace itself\u2014thus avoiding immediate suspicion.<\/p>\n<p><span>3. <\/span><strong>Anti-Debugging Tactics<\/strong><\/p>\n<p>By measuring function runtimes and checking for certain DevTools signatures, the script can alter its behavior or shut down if it detects a security analyst\u2019s presence.<\/p>\n<p><span>4. <\/span><strong>Persistent Updates<\/strong><\/p>\n<p>The attacker regularly updates the code or domain endpoints. The IP we identified\u2014<span><strong>139.45.197.242<\/strong><\/span>\u2014hosts many of these domains, signaling a persistent campaign that pivots quickly when one host is blocked. &nbsp;We&#8217;ll include the domains we&#8217;re seeing our telemetry at the appendix to the blog post.<\/p>\n<p><span>In the weeds<\/span>:<\/p>\n<p>In short, it is a pop\u2011up\/pop\u2011under\/redirect \u201cad loader\u201d script. It has a lot of logic to hook user clicks, bypass pop\u2010up blockers, track impressions, store information in cookies\/localStorage, and optionally detect if developer tools are open. The script is heavily obfuscated so that all of this ad\/redirect behavior is hidden under weird variable names and large inline data structures.<\/p>\n<p><span>High\u2010Level Behavior<\/span><\/p>\n<p>&nbsp; &nbsp; 1. &nbsp; &nbsp;<span>Environment &amp; Feature Detection<\/span><br \/>The script checks many environment details\u2014things like:<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Whether the browser has certain plugins installed<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Whether navigator or document includes certain properties<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Whether the user might be in DevTools<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Whether local or session storage is available<br \/>This is done to decide which \u201cpop\u2011under\u201d or \u201credirect\u201d technique will work best without being blocked.<\/p>\n<p>&nbsp; &nbsp; 2. &nbsp; &nbsp;<span>Setting Event Listeners<\/span><br \/>It listens for user interactions (like click, mousedown, touchstart, etc.) on the page. Whenever the user first interacts, the script:<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;May open pop\u2010ups\/pop\u2010unders<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;May rewrite anchor tags (so a normal link becomes a forced pop\u2010up)<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Often tries to do it on the \u201cfirst click\u201d or \u201cfirst valid click\u201d to get around modern browser restrictions.<\/p>\n<p>&nbsp; &nbsp; 3. &nbsp; &nbsp;<span>Pop\u2011Under and Redirect Logic<\/span><br \/>There is elaborate logic for:<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Pop\u2010under vs. pop\u2010up: picking which window\u2010opening approach to use<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Interstitial flows: sometimes shows an interstitial ad if you click back or close a tab<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;\u201c<code>OnCloseInterstitialUrl<\/code>\u201d or \u201csmart overlay\u201d references: hooking up overlay ads or full\u2010page pop\u2010ups<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Checking if the user has already been shown a pop\u2010up (tracking via cookie or local storage) so it does not spam too many times.<\/p>\n<p>&nbsp; &nbsp; 4. &nbsp; &nbsp;<span>Session\/Click Counting<\/span><br \/>You see code that increments click counts, sets timeouts, or reads\/writes \u201chow many times we have shown an ad.\u201d That\u2019s to limit (or sometimes ensure) a certain number of forced ads per session. For example, isImpressionAvailable or shouldImpressionBeCollected methods track the \u201csession counters\u201d or \u201cimpression counters.\u201d<\/p>\n<p>&nbsp; &nbsp; 5. &nbsp; &nbsp;<span>Prefetching Ad URLs<\/span><br \/>It will sometimes \u201cprefetch\u201d an ad URL\u2014i.e. it sends a hidden request beforehand\u2014so that when you do click, it can redirect you more reliably. This helps avoid slow ad servers or pop\u2010up blockers.<\/p>\n<p>&nbsp; &nbsp; 6. &nbsp; &nbsp;<span>Obfuscation<\/span><br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Dozens of single\u2010letter or two\u2010letter properties (e.g. <code>V, rK, KK, jK<\/code>) that map to bizarre string constants<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;The script uses a big object\/dictionary that re\u2010maps short keys to strings or regex patterns.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;A function like <code>Pe(...)<\/code> or <code>p(...)<\/code> that decodes\/munges strings at runtime.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Large \u201cenums\u201d stored in variables like <code>mr, fr<\/code>, etc. that stand for different internal codes or status flags.<\/p>\n<p>&nbsp; &nbsp; 7. &nbsp; &nbsp;<span>Developer Tools \u201cAnti\u2010Debug\u201d<\/span><br \/>There are references to <code>getComputedStyle<\/code> checks, intervals, or code that times how long a function call took. This is typically used by ad scripts to see if someone has DevTools open (for example, certain properties read slower under breakpoint). If it detects that, it may abort or reduce functionality so the user can\u2019t easily debug or tamper with the script.<\/p>\n<p>&nbsp; &nbsp; 8. &nbsp; &nbsp;<span>Final Payload<\/span><br \/>The very last line is a monstrous gibberish invocation:<\/p>\n<p><code><span>(\"c.#i6M.#.J.#.4.4Z#llBWi5oo6#i.)=ow.4.n65.Ge.x=K.x.T&amp;M.Xo.|3.QW....\")<\/span><\/code><\/p>\n<p>That\u2019s basically a giant obfuscated string the script decodes or interprets to get its final config (domains, zone IDs, tracking parameters, etc.). The code near the top,<\/p>\n<p><code><span>(function(lczxsusin) {<\/span><\/code><br \/><code><span>&nbsp; &nbsp; ...<\/span><\/code><br \/><code><span>})(\"c.#i6M.#.J.#.4.4Z#llBWi5oo6#i...)\"<\/span><\/code><\/p>\n<p>simply calls the whole \u201cengine\u201d with that big scrambled argument, so the script can set up its ad logic.<\/p>\n<p>What It\u2019s Actually Doing (In Plain Terms)<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Primary Goal: Force the user\u2019s browser to open ads\u2014pop\u2010ups, pop\u2010unders, or forced redirects\u2014on the user\u2019s first click or on subsequent clicks.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Avoid Blockers &amp; Quotas: Hides inside normal click handlers, tries multiple fallback methods, and uses localStorage\/cookies to see if it\u2019s already shown an ad.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Hide &amp; Confuse: The script is stuffed with random variables and references (like <code>V.e, V.x, V.L<\/code>, etc.) to break up the real logic flow. This is standard \u201cadware obfuscation.\u201d<\/p>\n<p>Key Points in the Code<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;<code>function ve(t,e,r)<\/code> \u2013 Hooks up events to the document or window, such as onclick, mousedown, etc., to trigger the ad opening.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;<code>function Ft(t,e)<\/code> \u2013 One of the \u201copen pop\u2010up\/pop\u2010under\u201d routines, deciding how to open a new window or rewrite a link if you click an anchor.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;<code>function Lt(t,e,r,n)<\/code> \u2013 Overlays or \u201csmart overlay\u201d logic; also controlling advanced \u201cinterstitial\u201d or \u201coverlay\u201d ads.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;<code>function br()<\/code> \u2013 In some code, you see references to br() or \u201ccookie sync.\u201d This is so the script can keep track of user data across domains or iframes.<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;<code>function Pt() \/ function Nt() \/ function Bt()<\/code> \u2013 Variation of the same \u201copen a new window or rewrite the anchor tag, then call track\/ log.\u201d<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Lots of <code>setInterval<\/code>, <code>setTimeout<\/code>, watchers that keep rechecking whether the user\u2019s environment changed\u2014dev tools open, or new clicks, etc.<\/p>\n<p><span>Bottom Line<\/span><\/p>\n<p>This is a pop\u2010up\/pop\u2010under ad script with all the usual trimmings:<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Hooks user clicks<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Does forced opens\/redirects<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Tracks usage, impressions, concurrency<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Obfuscated with big dictionaries and weird variable references<br \/>&nbsp; &nbsp; \u2022 &nbsp; &nbsp;Optionally tries to detect dev tools or debugging<\/p>\n<p>All of that is typical for \u201cforced redirect\u201d or \u201cpop\u2010under ad\u201d providers that want to avoid easy detection or blocking.<\/p>\n<p><strong>Why It\u2019s Dangerous<\/strong><\/p>\n<p>This obfuscated JavaScript is more than mere nuisance pop-up spam. At scale, such code often funnels users to phishing pages crafted to steal credentials or payment information. In some of my past work at previous companies, I would see javascript like this inside of exploit kits It may also redirect victims to exploit kits delivering malware that can compromise their entire system. The layering of obfuscation indicates that threat actors are actively investing in advanced evasion techniques, making it critical to have proactive protections in place.<\/p>\n<p><strong>How ThreatSTOP\u2019s Proactive Protections Help<\/strong><\/p>\n<p><span>1. <\/span><strong>DNS Defense Cloud<\/strong><\/p>\n<p>Protect endpoints wherever they roam by pointing them to ThreatSTOP\u2019s cloud-based DNS service. This instantly blocks lookups to malicious domains\u2014including those behind suspicious pop-up code\u2014based on ThreatSTOP intelligence.<\/p>\n<p><span>2. <\/span><strong>DNS Defense<\/strong><\/p>\n<p>For organizations that run their own DNS resolvers on-premises, ThreatSTOP integrates directly into your existing servers. This offers the same robust intelligence enforcement as our cloud service, proactively blocking malicious endpoints before they can impact users.<\/p>\n<p>Together, <span><strong>DNS Defense Cloud<\/strong><\/span> and <span><strong>DNS Defense<\/strong><\/span> form our <span><strong>Protective DNS<\/strong><\/span> suite, designed to filter out threats in real time.<\/p>\n<p><span>3. <\/span><strong>IP Defense<\/strong><\/p>\n<p>Malicious code often relies on rogue IP addresses. With IP Defense, you can proactively manage a block list across routers, firewalls, IPS devices, AWS WAF, and more\u2014ensuring that threat actors can\u2019t establish inbound or outbound communication with your network.<\/p>\n<p><strong>ThreatSTOP Intelligence, Research, and Security (TIS) Team<\/strong><\/p>\n<p>The malicious domains behind IP 139.45.197.242 showcase how attackers can quickly pivot their hosting infrastructure. The ThreatSTOP TIS Team continuously tracks threats like command and control activity, invalid traffic, peer-to-peer connections, data exfiltration, phishing, spam, and DDoS endpoints. As new campaigns emerge, they create updated protections that are automatically delivered to our customers\u2019 environments\u2014providing round-the-clock coverage against a wide range of malicious activity. &nbsp;This IP and the domains associated with it have been blocked in our product line.<\/p>\n<p><strong>Connect with Customers, Disconnect from Risks<\/strong><\/p>\n<p>For those interested in joining the ThreatSTOP family, or to learn more about our proactive protections for all environments, we invite you to visit our&nbsp;<a href=\"https:\/\/www.threatstop.com\/threatstop-platform\" rel=\"noopener\" target=\"_blank\">product page<\/a>. Discover how our solutions can make a significant difference in your digital security landscape. We have&nbsp;pricing&nbsp;for all sizes of customers!&nbsp;Get started with a Demo today!<\/p>\n<p>IOCs:<\/p>\n<p>139.45.197.242<\/p>\n<p>gloolsukre[.]com<br \/>shagrixove[.]com<br \/>choomopteet[.]com<br \/>neechaipoad[.]com<br \/>oartoopesti[.]com<br \/>ptirsuckais[.]com<br \/>thumumoucku[.]com<br \/>faphomtotapt[.]com<br \/>greewoabaikr[.]com<br \/>jozekupteesh[.]com<br \/>oalseessonoo[.]com<br \/>oargusongous[.]com<br \/>woawewostoas[.]com<br \/>zidreersatsy[.]com<br \/>aughoomsoushy[.]com<br \/>fagloafexeele[.]com<br \/>phopaushoutch[.]com<br \/>pseexauboorsu[.]com<br \/>thautsooladsu[.]com<br \/>bijophomsorsig[.]com<br \/>chossoovauthuh[.]com<br \/>gorgadricmitsu[.]com<br \/>taiteemozathou[.]com<br \/>ekoortouksalert[.]com<br \/>glaigaunsoroogh[.]com<br \/>ofobsilreehoukr[.]com<br \/>pokastaiptoalto[.]com<br \/>raicaustenuphoo[.]com<br \/>caihaujeer[.]net<br \/>chetsoamta[.]net<br \/>dolsukophe[.]net<br \/>geeburouje[.]net<br \/>mufackoopt[.]net<br \/>numaigluwo[.]net<br \/>oofegleemy[.]net<br \/>pashulroak[.]net<br \/>piwhourumt[.]net<br \/>stouksomsi[.]net<br \/>behaiptoube[.]net<br \/>dauzaiwhaig[.]net<br \/>shedroobsoa[.]net<br \/>shuwoockoun[.]net<br \/>uhartomoaks[.]net<br \/>vodsoamsoun[.]net<br \/>apauzauxauls[.]net<br \/>chirsaidsoun[.]net<br \/>foupeestokiy[.]net<br \/>glabsuckoupy[.]net<br \/>grikooghoakr[.]net<br \/>halraingitsy[.]net<br \/>nauthaugroce[.]net<br \/>oaweekoorsew[.]net<br \/>sodreegrocee[.]net<br \/>southeestais[.]net<br \/>staimpaissoy[.]net<br \/>steetsoftehy[.]net<br \/>veewheephime[.]net<br \/>voptosteejee[.]net<br \/>whailacelump[.]net<br \/>bimaissebsiph[.]net<br \/>laushosoujedu[.]net<br \/>masouckomirtu[.]net<br \/>moaloamoaruno[.]net<br \/>naumezeephovy[.]net<br \/>oackaudrikrul[.]net<br \/>oastoarsewaip[.]net<br \/>shisheghustou[.]net<br \/>vouphoanooque[.]net<br \/>widrelroalrie[.]net<br \/>woojouthoowoa[.]net<br \/>boazeerizeepsi[.]net<br \/>jimtighoafoorg[.]net<br \/>oamoacirdaures[.]net<br \/>pauleeroupsacu[.]net<br \/>ptaujursissain[.]net<br \/>sorsoazucmumso[.]net<br \/>steemozoomeepi[.]net<br \/>suchizainsairg[.]net<br \/>tudroutchaigne[.]net<br \/>edoxoonsackefte[.]net<br \/>gouloaroustalun[.]net<br \/>ivaursersaipaul[.]net<br \/>ounoaksivoutsim[.]net<br \/>phoukriphoossid[.]net<br \/>soglaiksouphube[.]net<br \/>terumoumsaibsoa[.]net<br \/>toatobaijauvoly[.]net<br \/>whidsugnoackili[.]net<br \/>woakathugraimoh[.]net<br \/>woathaphachainy[.]net<br \/>wugoughurtaitsu[.]net<br \/>zoogoucaitakast[.]net<br \/>ocheejacheb[.]xyz<br \/>sterteeraisti[.]xyz<br \/>fauseepetoozuk[.]xyz<br \/>koomoaboatapoa[.]xyz<br \/>rilseessinipto[.]xyz<br \/>cugaksoogleptix[.]xyz<br \/>dooptoupouwhuwu[.]xyz<br \/>chirsaidsoun[.]net<br \/>numaigluwo[.]net<br \/>choomopteet[.]com<br \/>oofegleemy[.]net<br \/>toatobaijauvoly[.]net<br \/>tudroutchaigne[.]net<br \/>phopaushoutch[.]com<br \/>oargusongous[.]com<br \/>dolsukophe[.]net<br \/>oartoopesti[.]com<br \/>ofobsilreehoukr[.]com<br \/>ptaujursissain[.]net<br \/>zoogoucaitakast[.]net<br \/>whailacelump[.]net<br \/>halraingitsy[.]net<br \/>mufackoopt[.]net<br \/>gorgadricmitsu[.]com<br \/>shisheghustou[.]net<br \/>boazeerizeepsi[.]net<br \/>chossoovauthuh[.]com<br \/>thumumoucku[.]com<br \/>thautsooladsu[.]com<\/p>\n<p><a href=\"https:\/\/www.threatstop.com\/blog\/they-will-do-anything-to-serve-you-ads-wont-they\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Obfuscation in malware delivery has always been an effective trick<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,62,215,216,61],"tags":[653,218],"class_list":["post-7381","post","type-post","status-publish","format-standard","hentry","category-dns","category-dns-security","category-passive-dns","category-pdns","category-protective-dns","tag-ip-defense","tag-pdns"],"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","chromenews-featured":"","chromenews-large":"","chromenews-medium":""},"author_info":{"display_name":"Threat Stop","author_link":"https:\/\/ddi.mohflo.net\/index.php\/author\/threatstop\/"},"category_info":"<a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/dns\/\" rel=\"category tag\">DNS<\/a> <a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/dns-security\/\" rel=\"category tag\">DNS Security<\/a> <a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/passive-dns\/\" rel=\"category tag\">Passive DNS<\/a> <a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/pdns\/\" rel=\"category tag\">PDNS<\/a> <a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/protective-dns\/\" rel=\"category tag\">Protective DNS<\/a>","tag_info":"Protective DNS","comment_count":"0","jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/7381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/comments?post=7381"}],"version-history":[{"count":0,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/7381\/revisions"}],"wp:attachment":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/media?parent=7381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/categories?post=7381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/tags?post=7381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}