<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tech Blog is Tech &#187; Mobile</title>
	<atom:link href="http://www.techblogistech.com/category/mobile/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techblogistech.com</link>
	<description>Exploring technology in the modern world</description>
	<lastBuildDate>Sat, 04 May 2013 14:10:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>How to Install Specific Android SDK Packages from Command Line (headless server)</title>
		<link>http://www.techblogistech.com/2012/02/install-android-sdk-packages-command-line/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=install-android-sdk-packages-command-line</link>
		<comments>http://www.techblogistech.com/2012/02/install-android-sdk-packages-command-line/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:00:32 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[google+]]></category>
		<category><![CDATA[headless]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[specific]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.techblogistech.com/?p=765</guid>
		<description><![CDATA[Installing the Android SDK on a headless server doesn&#8217;t seem to be very well documented. I recently needed to do &#8230; <span class="more-link"><a href="http://www.techblogistech.com/2012/02/install-android-sdk-packages-command-line/">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" rel="shadowbox[sbpost-765];player=img;"><img src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" alt="Droid" title="Droid" width="77" height="90" class="lazy alignright size-full wp-image-709" /><noscript><img src="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" alt="Droid" title="Droid" width="77" height="90" class="alignright size-full wp-image-709" /></noscript></a>Installing the Android SDK on a headless server doesn&#8217;t seem to be very well documented.  I recently needed to do this to get the SDK installed on a TeamCity build agent to automate Android builds and tests.</p>
<p>Below are some simple instructions to help you along the way.  I&#8217;m using a Mac, so you may need to use slightly different commands if you&#8217;re using Linux.</p>
<p><span id="more-765"></span></p>
<h2>Step 1: Download the Android SDK onto the box</h2>
<p>You&#8217;ll want to grab the latest SDK from <a href="http://developer.android.com/sdk/index.html" title="Android Developers: Android SDK download" target="_blank">Google&#8217;s Android SDK page</a>.  As of this post, the latest version for Mac is <a href="http://dl.google.com/android/android-sdk_r16-macosx.zip" title="Android SDK: R16 Mac OS X" target="_blank">android-sdk_r16-macosx.zip</a>.  I used this command to download this on my Mac:</p>
<pre class="bigbash">$ curl -C - -O http://dl.google.com/android/android-sdk_r16-macosx.zip</pre>
<h2>Step 2: Unzip the SDK</h2>
<p>I decided to put the SDK in my <strong>/Applications</strong> directory.  You can put it wherever you want, but if you want to follow my lead you can use the following commands to get it into the /Applications dir:</p>
<pre class="bigbash">$ mv android-sdk_r16-macosx.zip /Applications
$ cd /Applications
$ unzip android-sdk_r16-macosx.zip
</pre>
<h2>Step 3: Determine what API levels, tools, and documentation you want to install</h2>
<p>You now have a base SDK installed, but you still need to download the corresponding Android APIs for whichever Android version you&#8217;re developing for.  In order to know what you need to install, you&#8217;ll want to list the available APIs, tools, and docs.  We can use the <strong>android</strong> tool to do this and the <strong>&#8211;no-ui</strong> flag to alert the tool that we&#8217;re on the command line.  Here is how to get a list of what&#8217;s available:</p>
<pre class="bigbash">$ cd /Applications/android-sdk-macosx
$ tools/android list sdk --no-ui
Refresh Sources:
  Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xml
  Validate XML
  Parse XML

  ...snip...

Packages available for installation or update: 61
   1- Documentation for Android SDK, API 15, revision 1
   2- SDK Platform Android 4.0.3, API 15, revision 2
   3- SDK Platform Android 4.0, API 14, revision 3
   4- SDK Platform Android 3.2, API 13, revision 1
   5- SDK Platform Android 3.1, API 12, revision 3
   6- SDK Platform Android 3.0, API 11, revision 2
   7- SDK Platform Android 2.3.3, API 10, revision 2
   8- SDK Platform Android 2.2, API 8, revision 3
   9- SDK Platform Android 2.1, API 7, revision 3
  10- SDK Platform Android 1.6, API 4, revision 3
  11- SDK Platform Android 1.5, API 3, revision 4

  ...snip...

  56- Android Support package, revision 6
  57- Google Admob Ads Sdk package, revision 4
  58- Google Analytics Sdk package, revision 2
  59- Google Market Billing package, revision 1
  60- Google Market Licensing package, revision 1
  61- Google Webdriver package, revision 2
</pre>
<h2>Step 4: Install your packages</h2>
<p>Ok, so you have a list of the APIs and tools.  See which ones you want to install and find their corresponding number.  If you want to install <strong>API 15</strong> and the <strong>Android Support package</strong>, you&#8217;ll want number <strong>2</strong> and <strong>56</strong>.  We can use the <strong>android</strong> tool again and the <strong>&#8211;filter</strong> flag to alert it that we only want to install package 2 and 56:</p>
<pre class="bigbash">$ tools/android update sdk --filter 2,56 --no-ui</pre>
<h2>You&#8217;re done!</h2>
<p>Happy hacking Android devs!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techblogistech.com/2012/02/install-android-sdk-packages-command-line/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Fix EXC_BAD_ACCESS (SIGSEGV) in HelloAndroid</title>
		<link>http://www.techblogistech.com/2011/11/how-to-fix-exc_bad_access-sigsegv-in-helloandroid/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-fix-exc_bad_access-sigsegv-in-helloandroid</link>
		<comments>http://www.techblogistech.com/2011/11/how-to-fix-exc_bad_access-sigsegv-in-helloandroid/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:39:50 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[avd]]></category>
		<category><![CDATA[exc_bad_access]]></category>
		<category><![CDATA[kern_invalid_access]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[sigsegv]]></category>
		<category><![CDATA[snapshots]]></category>

		<guid isPermaLink="false">http://www.techblogistech.com/?p=716</guid>
		<description><![CDATA[When trying to build the Android Hello World tutorial in Eclipse I ran into an issue where the application would &#8230; <span class="more-link"><a href="http://www.techblogistech.com/2011/11/how-to-fix-exc_bad_access-sigsegv-in-helloandroid/">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" rel="shadowbox[sbpost-716];player=img;"><img src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" alt="Droid" title="Droid" width="77" height="90" class="lazy alignright size-full wp-image-709" /><noscript><img src="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" alt="Droid" title="Droid" width="77" height="90" class="alignright size-full wp-image-709" /></noscript></a>When trying to build the <a href="http://developer.android.com/resources/tutorials/hello-world.html" title="Android Hello World tutorial" target="_blank">Android Hello World tutorial</a> in Eclipse I ran into an issue where the application would just crash when I tried to run it:</p>
<pre>[2010-05-04 01:53:46 - HelloAndroid] ------------------------------
[2010-05-04 01:53:46 - HelloAndroid] Android Launch!
[2010-05-04 01:53:46 - HelloAndroid] adb is running normally.
[2010-05-04 01:53:46 - HelloAndroid] Performing com.example.helloandroid.HelloAndroid activity launch
[2010-05-04 01:53:46 - HelloAndroid] Automatic Target Mode: launching new emulator with compatible AVD 'myAVD'
[2010-05-04 01:53:46 - HelloAndroid] Launching a new emulator with Virtual Device 'myAVD'
[2010-05-04 01:53:58 - HelloAndroid] New emulator found: emulator-5554
[2010-05-04 01:53:58 - HelloAndroid] Waiting for HOME ('android.process.acore') to be launched...
[2010-05-04 01:53:59 - Emulator] 2010-05-04 01:53:59.501 emulator[10398:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
[2010-05-04 01:54:23 - HelloAndroid] emulator-5554 disconnected! Cancelling 'com.example.helloandroid.HelloAndroid activity launch'!</pre>
<p>The crash report was identifying the problem as a segfault:</p>
<pre>Process:         emulator [10472]
Path:            /Applications/android-sdk-mac_86/tools/emulator
Identifier:      emulator
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  eclipse [10468]

Date/Time:       2010-05-04 02:25:41.153 -0500
OS Version:      Mac OS X 10.6.3 (10D573)
Report Version:  6

Interval Since Last Report:          2558914 sec
Crashes Since Last Report:           4
Per-App Crashes Since Last Report:   2
Anonymous UUID:                      C5F178C1-5290-4CA9-AD6E-E9C4F5582754

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000001fd2f000
Crashed Thread:  3</pre>
<h3>The explanation</h3>
<p>As best I could tell a snapshot of my AVD was saved while the previous version of HelloAndroid was running.  And so when I went to run the new version of HelloAndroid (after making some code changes) the new package was copied over and then the emulator was restored.  At this point it was in a corrupt state where the old version was still in memory but the new version existed in local storage.  This may or may not be <strong>exactly</strong> what was happening, but it appeared to be what was causing the app to crash.</p>
<h3>The fix</h3>
<p>For me, I simply turned snapshots off on my AVD.  To do that in Eclipse you can just follow this menu/button options:<br />
Window -> AVD Manager -> [select your avd] -> Click Edit -> Uncheck &#8220;Enabled&#8221; next to Snapshots</p>
<p>If this doesn&#8217;t work you can also delete the AVD and create a new one with the same settings but with snapshots disabled.</p>
<p>If you&#8217;re still running into trouble, check out <a href="http://stackoverflow.com/questions/2763395/issue-with-hello-android-tutorial" title="Issue with Hello Android Tutorial" target="_blank">this thread</a> over at StackOverflow.  It didn&#8217;t solve my problems, but your mileage may vary. <img src='http://www.techblogistech.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Happy Android Coding!</h4>
]]></content:encoded>
			<wfw:commentRss>http://www.techblogistech.com/2011/11/how-to-fix-exc_bad_access-sigsegv-in-helloandroid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Fix the Android NetworkOnMainThreadException</title>
		<link>http://www.techblogistech.com/2011/11/how-to-fix-the-android-networkonmainthreadexception/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-fix-the-android-networkonmainthreadexception</link>
		<comments>http://www.techblogistech.com/2011/11/how-to-fix-the-android-networkonmainthreadexception/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:08:01 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[async]]></category>
		<category><![CDATA[asynctask]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[handlers]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[networkonmainthreadexception]]></category>
		<category><![CDATA[threading]]></category>

		<guid isPermaLink="false">http://www.techblogistech.com/?p=707</guid>
		<description><![CDATA[If you&#8217;re trying to communicate with a web service or scrape any data from the web in your Android application, &#8230; <span class="more-link"><a href="http://www.techblogistech.com/2011/11/how-to-fix-the-android-networkonmainthreadexception/">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" rel="shadowbox[sbpost-707];player=img;"><img src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" alt="Droid" title="Droid" width="77" height="90" class="lazy alignright size-full wp-image-709" /><noscript><img src="http://www.techblogistech.com/wp-content/uploads/2011/11/droid.png" alt="Droid" title="Droid" width="77" height="90" class="alignright size-full wp-image-709" /></noscript></a>If you&#8217;re trying to communicate with a web service or scrape any data from the web in your Android application, you might run into an exception like this:</p>
<pre>E/AndroidRuntime(673): java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example.helloandroid/com.example.helloandroid.HelloAndroidActivity}: android.os.NetworkOnMainThreadException</pre>
<p>From Google&#8217;s documentation:</p>
<blockquote><p>
The exception that is thrown when an application attempts to perform a networking operation on its main thread.</p>
<p>This is only thrown for applications targeting the Honeycomb SDK or higher. Applications targeting earlier SDK versions are allowed to do networking on their main event loop threads, but it&#8217;s heavily discouraged.
</p></blockquote>
<h3>The fix</h3>
<p>The problem here is simply that you need to make your web service calls (or what-have-you) on a separate thread.  So, quite simply, you&#8217;ll need to look into how to do threading with Android.  Unfortunately this can be a bit of a pain because you need to make your service calls on a separate thread, but you need to update the UI on the main thread.  Normally this would require passing data between the threads, which involves handlers or other complexities.  Luckily the Android platform provides the Async Task to handle this, which alleviates some of this complexity and may help you avoid some clutter in your code.</p>
<h4>Useful documentation to migrate your network calls to threads (or Android&#8217;s Async Task)</h4>
<p><a href="http://developer.android.com/resources/articles/painless-threading.html" title="Painless Threading" target="_blank">Painless Threading (from the Android Developer docs)</a><br />
<a href="http://developer.android.com/reference/android/os/AsyncTask.html" title="Async Task" target="_blank">Async Task (from the Android Developer docs)</a><br />
<a href="http://www.vogella.de/articles/AndroidPerformance/article.html" title="Android Threads, Handlers and AsyncTask - Tutorial" target="_blank">Android Threads, Handlers and AsyncTask &#8211; Tutorial</a><br />
<a href="http://developer.android.com/guide/practices/design/responsiveness.html" title="Designing for Responsiveness" target="_blank">Designing for Responsiveness (from the Android Developer docs)</a></p>
<h4>Good luck!</h4>
]]></content:encoded>
			<wfw:commentRss>http://www.techblogistech.com/2011/11/how-to-fix-the-android-networkonmainthreadexception/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TeliportMe 360 Exploits (How to Edit Any Photo, Use XSS, and Compromise the Homepage)</title>
		<link>http://www.techblogistech.com/2011/08/teliportme-360-exploits-how-to-edit-any-photo-use-xss-and-compromise-the-homepage/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=teliportme-360-exploits-how-to-edit-any-photo-use-xss-and-compromise-the-homepage</link>
		<comments>http://www.techblogistech.com/2011/08/teliportme-360-exploits-how-to-edit-any-photo-use-xss-and-compromise-the-homepage/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 00:29:36 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[3sixtyfactory]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[compromised]]></category>
		<category><![CDATA[cross domain redirect]]></category>
		<category><![CDATA[cross domain redirection]]></category>
		<category><![CDATA[cross site request forgery]]></category>
		<category><![CDATA[cross site scripting]]></category>
		<category><![CDATA[csrf]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacked]]></category>
		<category><![CDATA[injection]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[malicious]]></category>
		<category><![CDATA[one sheet]]></category>
		<category><![CDATA[panorama]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[phototour]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[techcrunch]]></category>
		<category><![CDATA[techie buzz]]></category>
		<category><![CDATA[teliportme]]></category>
		<category><![CDATA[vineet devaiah]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.techblogistech.com/?p=377</guid>
		<description><![CDATA[IMPORTANT: DANGER! DANGER! DANGER! Proceed with reading this article and/or partaking in any action on TeliportMe&#8217;s 360 website or mobile &#8230; <span class="more-link"><a href="http://www.techblogistech.com/2011/08/teliportme-360-exploits-how-to-edit-any-photo-use-xss-and-compromise-the-homepage/">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/07/messagebox_warning.png" rel="shadowbox[sbpost-377];player=img;"><img class="lazy size-full wp-image-353 alignright" title="Warning" src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/07/messagebox_warning.png" alt="Warning" width="77" height="77" /><noscript><img class="size-full wp-image-353 alignright" title="Warning" src="http://www.techblogistech.com/wp-content/uploads/2011/07/messagebox_warning.png" alt="Warning" width="77" height="77" /></noscript></a><strong>IMPORTANT:</strong> DANGER! DANGER! DANGER! Proceed with reading this article and/or partaking in any action on TeliportMe&#8217;s 360 website or mobile application with extreme caution and at your own risk. I highly recommend that you DO NOT visit TeliportMe&#8217;s 360 website or PhotoTour.in directly. By the time you read this someone else may have already used this information to exploit the site and/or its visitors. <strong>YOU HAVE BEEN WARNED!</strong></p>
<p>About a week ago, <a href="http://techcrunch.com/2011/07/29/360-teliportme-brings-its-killer-panorama-app-to-android-oh-and-it-works-on-over-200-phones/" title="TeliportMe's 360 app at TechCrunch" target="_blank">TechCrunch discussed a panorama application</a> for Android.  The application is called 360 and it was created by <a href="http://twitter.com/#!/VineetDevaiah" title="Vineet Devaiah on Twitter" target="_blank">Vineet Devaiah</a>&#8216;s company <a href="http://teliportme.com/" title="TeliportMe" target="_blank">TeliportMe</a>.  It&#8217;s received praise from some other <a href="http://techie-buzz.com/mobile-news/360-for-android-click-and-share-panorama-images-with-your-friends-review.html" title="TeliportMe's 360 app at Techie Buzz" target="_blank">reputable</a> <a href="http://www.3sixtyfactory.com/en/component/content/article/2-news/245-360-panoramic-android-app-360-panorama-made-easy.html" title="TeliportMe's 360 app at 3sixtyfactory" target="_blank">sources</a> as well and has even managed to attract about 30,000 users; but as will become more apparent over time I love to dig into the security of these sorts of apps.  Unfortunately for TeliportMe, their web security is not up to snuff.</p>
<p><span id="more-377"></span></p>
<h1>Warning</h1>
<p>I will warn you one more time! DANGER! DANGER! DANGER! Proceed with reading this article and/or partaking in any action on TeliportMe&#8217;s 360 website or mobile application with extreme caution and at your own risk. I highly recommend that you DO NOT visit TeliportMe&#8217;s 360 website or PhotoTour.in directly. By the time you read this someone else may have already used this information to exploit the site and/or its visitors. <strong>YOU HAVE BEEN WARNED!</strong></p>
<h1>The 360 Exploits</h1>
<p>There are various ways you can go about exploiting this application.  I&#8217;ll discuss a few of the information disclosures, how to modify any photo&#8217;s name, and a few ways to use XSS.</p>
<h1>Information Disclosures</h1>
<p>360 as well as PhotoTour.in both use a REST API to pass data around internally via XML.  This is an excellent way to build a reusable system and makes it very easy to build new applications as your company grows (great job devs!).  Where they went wrong is in <strong>securing</strong> this system, because guess what!?  That&#8217;s right! <strong>IT&#8217;S PUBLIC!</strong>  Below are some cool links you can use to query their API.</p>
<h4>Recent Photo Stream</h4>
<p>This is the recent photo stream.  You can also use a few variables to limit your query.  Nothing special here outside of maybe the addresses and geographical coordinates.  Most of this is available via the website anyway.</p>
<pre>http://360.vtcreator.com/api/stream/

http://360.vtcreator.com/api/stream/index?count=10&#038;type=upload</pre>
<h4>User Data</h4>
<p>This is how to obtain information about a user.  Luckily this doesn&#8217;t contain any <strong>really</strong> sensitive information, but it does make it easy to tell who is signed up on the site, how many people are signed up, and you can potentially grab some users&#8217; email and Facebook info.  Below is the link to one of the CEO&#8217;s accounts.  You can of course change the <strong>5</strong> to any number you want to try other accounts.</p>
<pre>http://360.vtcreator.com/api/users/5</pre>
<h4>Photo Data</h4>
<p>You can also obtain photo data.  Nothing special here really outside of more geographical info and vote info.  Looks like they were considering implementing a dislike feature.</p>
<pre>http://360.vtcreator.com/api/environments/3117</pre>
<h4>More Fun</h4>
<p>There are lots of other fun things you can do like getting the photo comments or posting new comments.  I won&#8217;t go into all the details, but below is a link to get photo comments.</p>
<pre>http://360.vtcreator.com/api/threads/phototour_environment_2515</pre>
<h1>Editing Any Photo&#8217;s Info</h1>
<h3>From the website</h3>
<p>The good thing about this exploit is it&#8217;s not public; you do have to be logged into the site.  The bad part is when I say edit <strong>any</strong> photo I literally mean <strong>ANY</strong> photo on <strong>ANYONE&#8217;S</strong> account.  Of course the photo then becomes associated with your account, but obviously a malicious user could just use a proxy if he wanted to protect his identity and then go around modifying user photos.  Below is a link to edit one of Vineet&#8217;s photos, but of course you can change the photo id from <strong>3117</strong> to anything you want.</p>
<pre>http://360.vtcreator.com/profile/editphoto/id/3117</pre>
<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_rename_photo.png" rel="shadowbox[sbpost-377];player=img;"><img src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_rename_photo.png" alt="" title="360_app_rename_photo" width="288" height="288" class="lazy alignnone size-full wp-image-384" /><noscript><img src="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_rename_photo.png" alt="" title="360_app_rename_photo" width="288" height="288" class="alignnone size-full wp-image-384" /></noscript></a></p>
<h3>Using Your Own Form</h3>
<p>If you want to get really crafty you can build an HTML form yourself and just post data to <strong>http://360.vtcreator.com/profile/upload</strong>.  Then you can edit a few more details like the photo location. I won&#8217;t go into those details here. <img src='http://www.techblogistech.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h1>Liking (Voting for) Any Photo As Any User</h1>
<p>This is another exploit that will allow you to impersonate any user and vote for any photo.  By impersonating different users you can spam votes for one photo to get it to the top of the &#8220;Top Rated&#8221; list on the 360 website.  This one requires making an HTTP POST request, so you could copy and paste the below into a file called <strong>360_voter.html</strong> and then use it to submit false votes.  You can change <strong>3117</strong> to any photo ID and <strong>5</strong> to any user ID to vote for that photo as that user.</p>
<pre>
&lt;html>
&lt;body>
&lt;form method="post" action="http://360.vtcreator.com/api/environments/3117/votes/">
&lt;input name="user_id" type="text" value="5" />&lt;br />
&lt;input name="environment_id" type="text" value="3117" />&lt;br />
&lt;input type="hidden" name="value" value="1" />&lt;br />
&lt;input type="submit" name="submit" value="Vote" class="submit-button"/>
&lt;/form>
&lt;/body>
&lt;/html>
</pre>
<h1>Cross Site Scripting (XSS)</h1>
<h3>Photo Names</h3>
<p>And of course, the ever prevalent XSS exploits.  There are a couple on the 360 site and even more on PhotoTour.in, but I&#8217;ll only discuss the 360 site in this post.  The first is that when editing any user&#8217;s photos you can inject JavaScript into the Photo name.<br />
<a href="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_xss1.png" rel="shadowbox[sbpost-377];player=img;"><img src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_xss1.png" alt="" title="360_app_xss1" width="305" height="304" class="lazy alignnone size-full wp-image-380" /><noscript><img src="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_xss1.png" alt="" title="360_app_xss1" width="305" height="304" class="alignnone size-full wp-image-380" /></noscript></a></p>
<h3>Photo Comments</h3>
<p>Secondly, when viewing photos you can add comments which can also contain injected JavaScript.  You could use this to target specific users by injecting JavaScript into <strong>all</strong> of their photos; something that steals their cookie would do nicely, unlike the harmless <strong>alert</strong> below. <img src='http://www.techblogistech.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_xss2.png" rel="shadowbox[sbpost-377];player=img;"><img class="lazy alignnone size-full wp-image-381" title="360_app_xss2" src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_xss2.png" alt="" width="377" height="296" /><noscript><img class="alignnone size-full wp-image-381" title="360_app_xss2" src="http://www.techblogistech.com/wp-content/uploads/2011/08/360_app_xss2.png" alt="" width="377" height="296" /></noscript></a></p>
<h1>Hijacking the Homepage</h1>
<p>With this information you could easily hijack the homepage to redirect users somewhere else.</p>
<ul>
<li>Upload a photo</li>
<li>Rename the photo to add JavaScript that redirects users to another website</li>
<li>Spam votes using the vote exploit to get the photo to the top of the list of &#8220;Top Rated&#8221; photos which is displayed as the homepage</li>
</ul>
<p>Of course the site you redirect to could easily be a drive-by install site that installs malware on the users&#8217; PCs or pretty much anything you wanted. Scary!</p>
<h1>Things to Ponder</h1>
<h3>SQL Injection</h3>
<p>With all the things I see on this site it certainly appears that one could do more devious deeds.  I wouldn&#8217;t be surprised to see some SQL injection, but I didn&#8217;t attempt to exploit it myself.</p>
<h3>Account Deletion</h3>
<p>360 uses HTTP POSTs to delete things.  Generally you just POST something like <strong>method=delete&#038;user_id=1&#038;access_token=123abc</strong> to one of the API URLs.  I suspect a crafty user could bypass this simple access_token check.  Below is an example URL; that URL would delete the photo if it were a POST request instead of a GET and if it had a valid access_token and user_id:</p>
<pre>http://360.vtcreator.com/api/environments/3117?method=delete&#038;user_id=1&#038;access_token=123abc</pre>
<h1>Lessons Learned</h1>
<ul>
<li>New websites can easily become playgrounds for malicious users</li>
<li>Where there&#8217;s one exploit, there&#8217;s another</li>
<li>Multiple exploits can allow a crafty attacker to perform even worse attacks (like hijacking your homepage)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.techblogistech.com/2011/08/teliportme-360-exploits-how-to-edit-any-photo-use-xss-and-compromise-the-homepage/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Google Plus for iPhone Released!</title>
		<link>http://www.techblogistech.com/2011/07/google-plus-for-iphone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-plus-for-iphone</link>
		<comments>http://www.techblogistech.com/2011/07/google-plus-for-iphone/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 16:33:44 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[g+]]></category>
		<category><![CDATA[google plus]]></category>
		<category><![CDATA[google+]]></category>
		<category><![CDATA[huddle]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone3g]]></category>
		<category><![CDATA[iphone4]]></category>
		<category><![CDATA[iphone5]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile apps]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[vic gundotra]]></category>

		<guid isPermaLink="false">http://www.techblogistech.com/?p=250</guid>
		<description><![CDATA[iPhone users: your time has arrived! The Google+ app is now available in the app store! If you&#8217;re mobile browsing &#8230; <span class="more-link"><a href="http://www.techblogistech.com/2011/07/google-plus-for-iphone/">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/07/iphone-icon_2561.png" rel="shadowbox[sbpost-250];player=img;"><img class="lazy alignright size-thumbnail wp-image-259" title="iPhone" src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/07/iphone-icon_2561-150x150.png" alt="iPhone" width="135" height="135" /><noscript><img class="alignright size-thumbnail wp-image-259" title="iPhone" src="http://www.techblogistech.com/wp-content/uploads/2011/07/iphone-icon_2561-150x150.png" alt="iPhone" width="135" height="135" /></noscript></a>iPhone users: your time has arrived! The <a href="http://itunes.apple.com/us/app/google/id447119634">Google+ app is now available in the app store</a>! If you&#8217;re mobile browsing right now, you can <a href="http://itunes.apple.com/us/app/google/id447119634?ls=1&amp;mt=8#">click here</a> to go straight to the download page. This makes the iPhone the second mobile device capable of running the G+ app, behind Google&#8217;s very own Android. The news was first leaked by Google employee <a href="https://plus.google.com/107117483540235115863">Vic Gundotra</a> and the first screenshots are available below.</p>
<p><a href="http://www.techblogistech.com/wp-content/uploads/2011/07/gplusiphone1.jpg" rel="shadowbox[sbpost-250];player=img;"><img class="lazy size-medium wp-image-251 alignnone" title="Google Plus on iPhone 1" src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/07/gplusiphone1-208x300.jpg" alt="Google Plus on iPhone 1" width="208" height="300" /><noscript><img class="size-medium wp-image-251 alignnone" title="Google Plus on iPhone 1" src="http://www.techblogistech.com/wp-content/uploads/2011/07/gplusiphone1-208x300.jpg" alt="Google Plus on iPhone 1" width="208" height="300" /></noscript></a><a href="http://www.techblogistech.com/wp-content/uploads/2011/07/gplusiphone2.jpg" rel="shadowbox[sbpost-250];player=img;"><img class="lazy size-medium wp-image-252 alignnone" title="Google Plus on iPhone 2" src="http://www.techblogistech.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" data-original="http://www.techblogistech.com/wp-content/uploads/2011/07/gplusiphone2-208x300.jpg" alt="Google Plus on iPhone 2" width="208" height="300" /><noscript><img class="size-medium wp-image-252 alignnone" title="Google Plus on iPhone 2" src="http://www.techblogistech.com/wp-content/uploads/2011/07/gplusiphone2-208x300.jpg" alt="Google Plus on iPhone 2" width="208" height="300" /></noscript></a></p>
<p>The features available for iPhone match those available for Android devices and include the group messaging <a href="http://www.youtube.com/watch?v=iA22daAstNg" rel="shadowbox[sbpost-250];player=swf;width=640;height=385;">Huddle</a> capability. For a closer look at what the mobile app can do, take a look at the video below.</p>
<p><iframe src="http://www.youtube.com/embed/N8gvHaX1cwY" frameborder="0" width="560" height="349"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.techblogistech.com/2011/07/google-plus-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
