{"id":10582,"date":"2006-11-15T03:27:24","date_gmt":"2006-11-15T00:27:24","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/2006\/11\/15\/typosquatting-hack\/"},"modified":"2006-11-15T03:27:24","modified_gmt":"2006-11-15T00:27:24","slug":"typosquatting-hack","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2006\/11\/15\/typosquatting-hack\/","title":{"rendered":"Typosquatting hack"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>I&#8217;ve been hearing a lot about <a href=\"http:\/\/en.wikipedia.org\/wiki\/Typosquatting\">typosquatting<\/a> recently.  Typosquattting is a method bad guys use to make money on the Internet.  What they do is they get a list of popular domain names, like Google.com and Yahoo.com, then figure out which are the most common ways people mistype these addresses, and then they register those mistyped domain names and use them for making money by displaying advertising banners and redirecting to other web sites.<\/p>\n<p>If you think about it for a second, there are a few types of typing mistakes which are easier to make.  Missing a character, typing a couple of characters in the wrong order (&#8216;teh&#8217; instead of &#8216;the&#8217;), typing a sticky character (&#8216;nn&#8217; instead of &#8216;n&#8217;), or hitting a wrong key on the keyboard (&#8216;u&#8217; instead of &#8216;i&#8217;).  All these mistakes are easy to predict and, thus, use for typosquatting.<\/p>\n<p>While I was thinking about it, I decided to try it out &#8211; write a small script that will check how many mistyped domains are there and how many of them are already registered.  It turned out, the script was extremely easy to write &#8211; I started with it with my morning coffee and finished it before the coffee got cold.  It took about altogether about 8 minutes, so don&#8217;t jump too hard on it.<\/p>\n<p><a  href=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2006\/11\/domain_finder.perl\">domain_finder.pl<\/a><\/p>\n<p><strong>Requirements<\/strong><\/p>\n<p>You won&#8217;t need a lot to try it out &#8211; perl interpreter, <code>Net::Domain::ExpireDate<\/code> module (get it from <a href=\"http:\/\/cpan.org\">CPAN<\/a>), and Internet connection.<\/p>\n<p><strong>How to use<\/strong><\/p>\n<p>In the simplest form you can just run the script like this:<\/p>\n<pre>.\/domain_finder.pl google<\/pre>\n<p>You&#8217;ll see a whole bunch of variations on how to mistype &#8220;google&#8221;, and the status of .com domain for each of these variations.<\/p>\n<p>For more control, check the script&#8217;s source code.  You can easily make it more silent or more verbose, check domains in other TLDs, and create your own rules for typing mistakes.<\/p>\n<p><strong>How does it work<\/strong><\/p>\n<p>The script takes a single parameter &#8211; the domain that you want to check, without the TLD part.  It then creates all variations of this domain with the following mistakes:<\/p>\n<ul>\n<li>Missing character.  For each character in the domain, the script will generate a variant without it.<\/li>\n<li>Swapped characters.  For each character in the domain, the script will generate a variant with this character and next character changing positions.<\/li>\n<li>Sticky character.  For each character in the domain, the script will generate a variant with this character entered twice in a row.<\/li>\n<li>Wrong keyboard key.  For each character in the domain, the script will generate variants with all characters-neighbors on a QWERTY keyboard.<\/li>\n<\/ul>\n<p>All these variants will be sorted and dups removed.  After that, each variant will be checked with (pre-configured) TLD part appended to it.  If the resulting domain is registered, than the expiration date will be printed out.  If the domain is not registered, it will be indicated as such.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>With this tool in my hands, I tried a whole bunch of domains &#8211; from &#8220;google&#8221; to &#8220;mamchenkov&#8221;.  What can I say?  I suspected that typosquatting is a big problem, but I could never imagine how big it was.  <\/p>\n<p>Here are some numbers to give you an idea (we all love stats, don&#8217;t we?):<\/p>\n<ul>\n<li>&#8220;google&#8221; generates 48 variants.  All registered.<\/li>\n<li>&#8220;yahoo&#8221; generates 41 variants. All registered.<\/li>\n<li>&#8220;microsoft&#8221; generates 78 variants. All registered.<\/li>\n<li>&#8220;slashdot&#8221; generates 68 variants. 42 registered.<\/li>\n<li>&#8220;digg&#8221; generates 33 variants. All registered.<\/li>\n<li>&#8220;cnn&#8221; generates 17 variants. All registered.<\/li>\n<li>&#8220;wikipedia&#8221; generates 80 variants. 78 registered.<\/li>\n<li>&#8220;linux&#8221; generates 39 variants. 28 registered.<\/li>\n<li>&#8220;blogging&#8221; generates 62 variants. 24 registered.<\/li>\n<li>&#8220;cyprus&#8221; generates 51 variants. 18 registered.<\/li>\n<\/ul>\n<p><strong>NOTE<\/strong>: I&#8217;ve been checking these only in .com TLD and I used pretty simple typing mistakes.  For example, hax0r-style typing is not included in my rules.<\/p>\n<p>The tool turned out to be quite handy.  I might even convert it into a web service, so that domain owners could easily check if they are victims of typesquatting or not (yet). <\/p>\n<p>Feel free to use the script for good causes.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I&#8217;ve been hearing a lot about typosquatting recently. Typosquattting is a method bad guys use to make money on the Internet. What they do is they get a list of popular domain names, like Google.com and Yahoo.com, then figure out which are the most common ways people mistype these addresses, and then they register those &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2006\/11\/15\/typosquatting-hack\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Typosquatting hack<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"keyring_services":[],"class_list":["post-10582","post","type-post","status-publish","format-standard","hentry","category-general"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":9497,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/09\/25\/no-more-www\/","url_meta":{"origin":10582,"position":0},"title":"No more WWW","author":"Leonid Mamchenkov","date":"September 25, 2005","format":false,"excerpt":"I am trying to stop using the \"www.\" part when typing in URLs. The web has gone a long way and most of the websites don't need to start with WWW. Just the domain is fine. But I have been typing \"www.\" into the address bar for so long that\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9414,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/09\/04\/common-typo\/","url_meta":{"origin":10582,"position":1},"title":"Common typo","author":"Leonid Mamchenkov","date":"September 4, 2005","format":false,"excerpt":"Usually, typing mistakes are easy to find (if one looks for them of course) as they make the word look unusual. There are some though that change one word into another. Sometimes, the change of the word doesn't change the meaning of the phrase though. These are the most difficult\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22865,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/11\/13\/domain-name-redemption-fee\/","url_meta":{"origin":10582,"position":2},"title":"Domain name redemption fee","author":"Leonid Mamchenkov","date":"November 13, 2014","format":false,"excerpt":"After years and years of working with domain names (buying, selling, configuring, etc), today was the first time that I needed to recover an expired domain name. \u00a0I thought I didn't need it, but I was wrong. \u00a0I needed it, I needed to unlock it, and I needed to transfer\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"Unlock","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/11\/Unlock-500x218.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":8104,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/10\/25\/on-english-language\/","url_meta":{"origin":10582,"position":3},"title":"On English language","author":"Leonid Mamchenkov","date":"October 25, 2004","format":false,"excerpt":"It is amazing how typing mistakes can sometimes result in words with a totally opposite meaning. On one occasion I came across the combination of \"hire\" and \"fire\". Just one letter makes a difference between getting a job and losing one. A couple of days ago I have also learned\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11958,"url":"https:\/\/mamchenkov.net\/wordpress\/2009\/11\/29\/disable-touchpad-while-typing\/","url_meta":{"origin":10582,"position":4},"title":"Disable touchpad while typing","author":"Leonid Mamchenkov","date":"November 29, 2009","format":false,"excerpt":"I came across this blog post, which, among other things, has this excellent tip for us, laptop and netbook users - how to disable touchpad while typing.\u00a0 The tip is specific for Gnome desktop and is rather easy to follow.\u00a0 Navigate to System \/ Preferences \/ Mouse menu, switch to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2009\/11\/mouse_preferences_touchpad.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":18696,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/10\/21\/30-unintentionally-awful-domain-names\/","url_meta":{"origin":10582,"position":5},"title":"30 Unintentionally Awful Domain Names","author":"Leonid Mamchenkov","date":"October 21, 2013","format":"link","excerpt":"30 Unintentionally Awful Domain Names","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/10582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=10582"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/10582\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=10582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=10582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=10582"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=10582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}