Help
RSS
API
Feed
Maltego
Contact
Domain > blog.seafuj.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2016-02-10
107.23.173.163
(
ClassC
)
2024-11-19
44.208.252.131
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Tue, 19 Nov 2024 21:51:45 GMTContent-Type: text/html; charsetutf-8Content-Length: 18477Connection: keep-aliveServer: nginxVary: Accept-Encodingx-xss-protection: 0x-content-type-options: nosniffx-permitted-cross-domain-policies: nonereferrer-policy: strict-origin-when-cross-originlink: https://lightning.svbtle.com/cargo/legacy/build.blog-120c367e4cc2cdf2d031c71f795ecea0ef4033f8b24d12d8e147c86e08e2ed2a.css>; relpreload; asstyle; nopush,https://lightning.svbtle.com/cargo/build.blog-41a284c81b4230cd8ab812d35fabef8cc99e927407ed15604d3206997ef79818.js>; relpreload; asscript; nopushcache-control: max-age8, public, max-stale0etag: W/1810be2f8b47b9e3b774df103609d915x-request-id: 96f2f2b6-3854-40a1-ae7f-8b9dfa837fc8Superexpress: MISS !doctype html>html langen>head> meta charsetutf-8> title>Sean Fujiwara/title> script>(function(d) {var config {kitId: bwh6ewo,scriptTimeout: 1000,async: true},hd.documentElement,tsetTimeout(function(){h.classNameh.className.replace(/\bwf-loading\b/g,)+ wf-inactive;},config.scriptTimeout),tkd.createElement(script),ffalse,sd.getElementsByTagName(script)0,a;h.className+ wf-loading;tk.srchttps://use.typekit.net/+config.kitId+.js;tk.asynctrue;tk.onloadtk.onreadystatechangefunction(){athis.readyState;if(f||a&&a!complete&&a!loaded)return;ftrue;clearTimeout(t);try{Typekit.load(config)}catch(e){}};s.parentNode.insertBefore(tk,s)})(document);/script> meta nameviewport contentwidthdevice-width, initial-scale1> link relshortcut icon hrefhttps://lightning.svbtle.com/cargo/favicon-3686f5990e669ad2a1684f0ac250c4d9ddc03e2ef6f3c980f17b7aae786833ef.ico> link relicon sizes196x196 hrefhttps://lightning.svbtle.com/cargo/apple-touch-icon-8ed2bd858a30400ead0535543ffb8ad2ab3e036a2f0adb797dc641458d00a41a.png> link relmask-icon hrefhttps://lightning.svbtle.com/cargo/default-b7e7b5361ab4c50a9ceb6dc296e0f157e2ec9c2f2c6f30832d991dc361d69512.svg colorblack> meta namegenerator contentSvbtle.com /> meta namedescription contentSean Fujiwara | Web Developer at YouTube/> link relcanonical hrefhttp://blog.seafuj.com /> meta propertyog:url contenthttp://blog.seafuj.com /> meta propertytwitter:site content@svbtle /> meta propertytwitter:title contentSean Fujiwara /> meta propertytwitter:description contentWritten on Svbtle /> meta propertytwitter:creator content@seafuj /> meta nametwitter:card contentsummary /> meta nametwitter:image contenthttps://svbtleusercontent.com/Oda7SKswKWQsimC1EMQXxWzmKBw_large.jpg /> meta propertytwitter:domain contenthttp://blog.seafuj.com /> meta propertyog:title contentSean Fujiwara on Svbtle /> meta propertyog:type contentwebsite /> meta propertyog:description contentSean Fujiwara | Web Developer at YouTube /> meta propertyog:image contenthttps://svbtleusercontent.com/Oda7SKswKWQsimC1EMQXxWzmKBw_large.jpg /> meta propertyog:site_name contentSean Fujiwara on Svbtle /> meta propertyfb:app_id content346346195413177 /> link relalternate typeapplication/rss+xml hrefhttp://blog.seafuj.com/feed /> link relstylesheet hrefhttps://lightning.svbtle.com/cargo/legacy/build.blog-120c367e4cc2cdf2d031c71f795ecea0ef4033f8b24d12d8e147c86e08e2ed2a.css mediaall data-turbolinks-trackreload /> script srchttps://lightning.svbtle.com/cargo/build.blog-41a284c81b4230cd8ab812d35fabef8cc99e927407ed15604d3206997ef79818.js data-turbolinks-trackreload>/script> script async srchttps://www.googletagmanager.com/gtag/js?idG-VGMRYDBB5R>/script>script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(set, linker, { accept_incoming: true }); gtag(config, G-VGMRYDBB5R); gtag(config, UA-23324630-2);/script>/head>body classoverlord blog>style scoped>figure.avatar a,figure#user_logo a,figure#user_foot a,nav#overlord.user_top figure#logo_top a,figure.kudo.complete div.filling { background-image: url(https://svbtleusercontent.com/Oda7SKswKWQsimC1EMQXxWzmKBw_medium.jpg)}figure.kudo.activated div.filling,figure.kudo.complete div.filling { background-color: #008BE6;}figure.kudo.activated a,figure.kudo.complete a { border-color: #008BE6;}blockquote,a blockquote,div#readnext:hover span.flank_title,div#foot_more:hover a,div#foot_userbar a#bottom_tagline span:hover,article.linked h1.article_title a:hover,a.continue_button:hover,article p a:hover,ul#lightning_drop,figure#user_foot,ul#user_links li a:hover,ul#foot_links li a:hover,a.buttonize:hover,button.buttonize:hover,a.buttonize.outline:hover,button.buttonize.outline:hover,nav.pagination span.next a:hover,nav.pagination span.prev a:hover,section#readnext:hover p span,nav#overlord.user_top figure#logo_top { border-color: #008BE6;}/*figure#user_logo,*/figure.avatar,nav#overlord.user_top figure#logo_top a,ul#user_links li a:hover,ul#foot_links li a:hover,a.buttonize:hover,button.buttonize:hover,a.buttonize.outline:hover,button.buttonize.outline:hover,nav.pagination span.next a:hover,nav.pagination span.prev a:hover,figure#user_logo a,figure#user_foot a { background-color: #008BE6;}h6.separator_title.read_first,header#user_top h2 a,footer#blog_foot h5 a,article.post h1 a:hover,div.preview strong,nav#overlord h2#nav_title.user_top a,section#readnext:hover h3,section#readnext:hover p span { color: #008BE6;}@keyframes titlePulse { 0% { color: #000000; } 50% { color: #008BE6; } 100% { color: #000000; }}@-moz-keyframes titlePulse { 0% { color: #000000; } 50% { color: #008BE6; } 100% { color: #000000; }}@-webkit-keyframes titlePulse { 0% { color: #000000; } 50% { color: #008BE6; } 100% { color: #000000; }}/style>figure idloading> /figure>nav idoverlord class> div idlockup class> figure idlogo_top class > a href/>Svbtle/a> /figure> /div> figure idhamburger> a href#menu idhamburger_button>Menu/a> /figure> ul iddropdown classonblog> li classdropdown_message> a hrefhttps://svbtle.com>Sean Fujiwara is writing on the span classlogoize>Svbtle/span> network./a> /li> li>a hrefhttps://x.com/seafuj classxdotcom target_blank>@seafuj/a>/li> li>a hrefhttps://github.com/magicalhobo classgithub target_blank>magicalhobo/a>/li> li>a href/feed>rss feed/a>/li> li stylemargin: 0; padding: 0;>hr classoverlord_nav />/li> li>a hrefhttps://svbtle.com/about>about svbtle/a>/li> li>a hrefhttps://svbtle.com/signup>sign up/a>/li> /ul>/nav>div idwhiteout>/div>header iduser_top classcf > figure iduser_logo>a hrefhttp://blog.seafuj.com>Sean Fujiwara/a>/figure> h2>a hrefhttp://blog.seafuj.com>Sean Fujiwara/a>/h2> h3>Web Developer at YouTube/h3> ul iduser_links> li>a hrefhttps://x.com/seafuj classxdotcom>@seafuj/a>/li> li>a hrefhttps://github.com/magicalhobo classgithub>magicalhobo/a>/li> /ul>/header>section idcontainer classblog user_home> h6 classseparator_title read_first>Read this first/h6> article idww3vAXthHy6oKhG2SC1aXF classpost user_show> h1 classarticle_title> a hrefhttp://blog.seafuj.com/using-the-cloud-vision-api-on-app-engine>Using the Cloud Vision API on App Engine/a> /h1> a hrefhttp://blog.seafuj.com/using-the-cloud-vision-api-on-app-engine> p>Here’s a quick snippet of how to use the Cloud Vision API on App Engine. It’s pretty straight forward, the only tricky thing is making sure you set the code classprettyprint>Content-Type/code>./p>pre>code classprettyprint>import jsonfrom logging import infofrom urllib import urlencodefrom google.appengine.api import urlfetchheaders {Content-Type: application/json}url https://vision.googleapis.com/v1/images:annotate?%s % urlencode({ key: <google_api_key>})payload json.dumps({ requests: { image: { source: { gcsImageUri: gs://bucket/path/to/file.jpg } }, features: {type: LABEL_DETECTION, maxResults: 10} } })response urlfetch.fetch(url, deadline 30, method urlfetch.POST, headers headers, payload payload)response_data /code>/pre>... /a> p>a hrefhttp://blog.seafuj.com/using-the-cloud-vision-api-on-app-engine classbuttonize outline small>Continue reading →/a>/p> /article> hr classarticlesplit /> article idkc7w2FwzBezwcd5twSwAkE classpost user_show> time datetime2016-01-19 classarticle_time>Jan 19, 2016/time> h1 classarticle_title>a hrefhttp://blog.seafuj.com/data-binding-in-polymer-10>Data binding in Polymer 1.0/a>/h1> a hrefhttp://blog.seafuj.com/data-binding-in-polymer-10 classcontent>p>https://www.polymer-project.org/1.0/api/dom-bind/p>pre>code classprettyprint><body> <template isdom-bind> <h1>{{title}}</h1> <paper-slider value{{title}} stylewidth: 100%></paper-slider> </template></body>/code>/pre>p>This took way too long to figure out. I only found out by looking at the Polymer unit tests./p>/a> p classcontinue_mark>a hrefhttp://blog.seafuj.com/data-binding-in-polymer-10 classbuttonize outline small>View →/a>/p> /article> hr classarticlesplit /> article id5i23pYz1VHQyUsmoZTEPsr classpost user_show> time datetime2015-11-14 classarticle_time>Nov 14, 2015/time> h1 classarticle_title>a hrefhttp://blog.seafuj.com/lets-encrypt-on-google-app-engine>Let’s Encrypt on Google App Engine/a>/h1> a hrefhttp://blog.seafuj.com/lets-encrypt-on-google-app-engine classcontent>p>Let’s Encrypt is a pretty awesome initiative to provide free SSL certificates to make creating a secure website easy. It comes with support for automatic installation on Apache and nginx, but requires some extra work for other servers./p>p>Here’s how to use it with App Engine. I used Google Cloud Shell to run these commands./p>p>Download the client:/p>pre>code classprettyprint>git clone https://github.com/letsencrypt/letsencryptcd letsencrypt/code>/pre>p>Generate the certificate:/p>pre>code classprettyprint>sudo ./letsencrypt-auto -a manual certonly/code>/pre>p>Part of the process is a challenge and response verification that you own the domain. You’ll see something like this:/p>pre>code classprettyprint>Make sure your web server displays the following content at http://www.example.com/.well-known/acme-challenge/challenge before continuing:responseContent-Type/code>/pre>.../a> p classcontinue_mark>a hrefhttp://blog.seafuj.com/lets-encrypt-on-google-app-engine classbuttonize outline small>Continue reading →/a>/p> /article> hr classarticlesplit /> article iddsiZtoR1z3jK5ghThM22vV classpost user_show> time datetime2014-09-28 classarticle_time>Sep 28, 2014/time> h1 classarticle_title>a hrefhttp://blog.seafuj.com/how-swfwire-works>How SWFWire works/a>/h1> a hrefhttp://blog.seafuj.com/how-swfwire-works classcontent>p>This is an overview of a decompiler and a debugger I made in Flash a few years ago. This is mainly for my own reference./p>p>There are three parts of SWFWire:/p>ul>li>SWFWire Decompiler - A library for SWF and ABC decompilation/li>li>SWFWire Inspector - An app for viewing the decompiled contents of a SWF/li>li>SWFWire Debugger - An app for interactive debugging of SWFs/li>/ul>h1>Disassembly /h1>p>The disassembler takes binary data, and parses it according to the SWF spec./p>h1>SWF /h1>p>The SWF file format is very well documented by Adobe. SWFs are binary files consisting of a header and a series of tags. The header gives you some basic metadata such as the target Flash Player version and stage dimensions. Each tag contains a type, length, and data section. The type tells you how to parse it, and the length lets you verify you’ve parsed that tag correctly, or skip it without knowing anything about the contents./p>h2>Basic data/h2>.../a> p classcontinue_mark>a hrefhttp://blog.seafuj.com/how-swfwire-works classbuttonize outline small>Continue reading →/a>/p> /article> hr classarticlesplit /> article idmWD9S5CPsmPkpmd7Y6EPLU classpost user_show> time datetime2014-09-05 classarticle_time>Sep 5, 2014/time> h1 classarticle_title>a hrefhttp://blog.seafuj.com/using-elb-with-websockets>Load balancing WebSockets with ELB and nginx on EC2/a>/h1> a hrefhttp://blog.seafuj.com/using-elb-with-websockets classcontent>p>Following this guide will allow you to create an Elastic Load Balancer for a WebSocket application with support for SSL and the ability to read client IP addresses./p>h2>Setup an Elastic Load Balancer/h2>p>Enable TCP forwarding on port 80. If you want to use SSL, you must also upload a certificate and forward port 443.br>img srchttps://svbtleusercontent.com/z2y8grbpsdhscw_small.png altelb-config.png>/p>h2>Enable the proxy protocol for your ELB /h2>p>You can only enable the proxy protocol through the command line SDK./p>pre>code classprettyprint>aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name EnableProxyProtocol --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeNameProxyProtocol,AttributeValuetrue/code>/pre>h2>Enable the proxy protocol in nginx /h2>p>Your code classprettyprint>nginx.conf/code> should look something like this. By setting the code classprettyprint>X-Forwarded-For/code> header to code classprettyprint>$proxy_protocol_addr/code>, the WebSocket application will be able to get the client’s IP./p>pre>code classprettyprint>server { listen 80 proxy_protocol;/code>/pre>.../a> p classcontinue_mark>a hrefhttp://blog.seafuj.com/using-elb-with-websockets classbuttonize outline small>Continue reading →/a>/p> /article> hr classarticlesplit /> article idgrYceLtE6bQKo5cEDiezNE classpost user_show> time datetime2014-07-24 classarticle_time>Jul 24, 2014/time> h1 classarticle_title>a hrefhttp://blog.seafuj.com/setting-up-autoscaling-on-ec2>Setting up Auto Scaling on EC2/a>/h1> a hrefhttp://blog.seafuj.com/setting-up-autoscaling-on-ec2 classcontent>p>This post is specifically about Ubuntu, but the process is similar for other operating systems. You’ll need to have an S3 bucket, and know how to launch EC2 instances./p>p>Here’s a quick overview of the process:/p>ol>li>Create a strong>bootstrap script/strong> that downloads installation files from S3./li>li>Create an strong>install script/strong> that initializes your application code./li>li>strong>Upload/strong> your install script and installation files to S3./li>li>Create an strong>IAM role/strong> so your instances can download installation files./li>li>Create a strong>Launch Configuration/strong> with your bootstrap script as the user data./li>li>Create an strong>Auto Scaling group/strong> based on the launch configuration./li>/ol>h1>Create a bootstrap script /h1>p>This is a minimal shell script that will install the AWS cli and nginx./p>p>userdata.sh/p>pre>code classprettyprint>!/bin/shecho Installing softwareapt-get -y install awscliapt-get -y install nginxecho Setting directory permissionschgrp -R ubuntu /etc/nginxchown -R ubuntu/code>/pre>.../a> p classcontinue_mark>a hrefhttp://blog.seafuj.com/setting-up-autoscaling-on-ec2 classbuttonize outline small>Continue reading →/a>/p> /article> hr classarticlesplit /> article idcZ8v1PbyawzRtJpbiZbrvG classpost user_show> time datetime2014-06-15 classarticle_time>Jun 15, 2014/time> h1 classarticle_title>a hrefhttp://blog.seafuj.com/migrating-to-socketio-1-0>Migrating to Socket.IO 1.0/a>/h1> a hrefhttp://blog.seafuj.com/migrating-to-socketio-1-0 classcontent>p>There are a few things not covered in the official guide that I had to figure out on my own. Here is an example of the changes required for a mock application using namespaces, rooms, query strings, and a reverse proxy./p>h2>Client/h2>pre>code classprettyprint>var socket io.connect(//example.com/mynamespace?mynumber123, { force new connection: true, resource: path/to/socket.io});socket.on(connect_failed, function(data){ console.log(connect_failed);});socket.on(connecting, function(data){ console.log(connecting);});socket.on(disconnect, function(data){ console.log(disconnect);});socket.on(error, function(reason){ console.log(error);});socket.on(reconnect_failed, function(data){ console.log(reconnect_failed);});socket.on(reconnect, function(data){ console.log(reconnect);});socket.on(reconnecting, function(data){/code>/pre>.../a> p classcontinue_mark>a hrefhttp://blog.seafuj.com/migrating-to-socketio-1-0 classbuttonize outline small>Continue reading →/a>/p> /article> /section>footer idblog_foot classcf> ul idfoot_links> li>a hrefhttps://x.com/seafuj>@seafuj/a>/li> /ul> figure iduser_foot>a href/>Svbtle/a>/figure> h5>a hrefhttp://blog.seafuj.com>Sean Fujiwara/a>/h5>/footer>footer idfoot> figure idlogo_foot>a hrefhttps://svbtle.com>Svbtle/a>/figure> a hrefhttps://svbtle.com/terms stylecolor: #ccc; margin-left: 25px;>Terms/a> span stylecolor: #ccc;>•/span> a hrefhttps://svbtle.com/privacy stylecolor: #ccc;>Privacy/a> span stylecolor: #ccc;>•/span> a hrefhttps://svbtle.com/promise stylecolor: #ccc; margin-right: 15px;>Promise/a> br/>br/>/footer>div idlights> /div>div idapp-data data-namesvbtle data-version8.5-legible data-magicNum2572031820.15>/div>div idpx-data data-axblogs data-sxshow>/div>div iduser-data data-herefalse data-statelogged-out>/div>div idblog-data data-titleSean Fujiwara data-blognamemagicalhobo data-extida5A4LiXp5Gs44P9e7t2T2A data-color008BE6 data-color-rgb0,139,230 data-color-rgba(0,139,230,0.5) data-blog-trackerUA-23324630-2>/div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]