<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Pentesting Adobe Flex Applications with a Custom AMF Client</title>
	<atom:link href="http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/</link>
	<description>Gotham Digital Science Security Blog</description>
	<lastBuildDate>Wed, 01 Sep 2010 06:49:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Marcin</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-409</link>
		<dc:creator>Marcin</dc:creator>
		<pubDate>Tue, 24 Aug 2010 00:52:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-409</guid>
		<description>Vivek, how is your client/application handling sessions?  Does the server respond with a Set-Cookie or append the sessionid to to the gateway url?  If so, you need to ensure that you handle these scenarios with your client.  Have a look at http://opensource.adobe.com/wiki/display/blazeds/Java+AMF+Client for some examples.  You can use the addHttpRequestHeader() method to add a cookie if you are using cookie-based session id&#039;s.</description>
		<content:encoded><![CDATA[<p>Vivek, how is your client/application handling sessions?  Does the server respond with a Set-Cookie or append the sessionid to to the gateway url?  If so, you need to ensure that you handle these scenarios with your client.  Have a look at <a href="http://opensource.adobe.com/wiki/display/blazeds/Java+AMF+Client" rel="nofollow">http://opensource.adobe.com/wiki/display/blazeds/Java+AMF+Client</a> for some examples.  You can use the addHttpRequestHeader() method to add a cookie if you are using cookie-based session id&#8217;s.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vivek</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-407</link>
		<dc:creator>Vivek</dc:creator>
		<pubDate>Thu, 12 Aug 2010 23:41:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-407</guid>
		<description>The registerAlias() needs 2 arguemnts and the classes mentioned must be  present within a package. Using this my registerAlias() got solved, since the local class I was using was not in a package.


Also, my Java AMF client fails to send any remoting request and receives following message. I&#039;m able to invoke login/logout methods but after login any other request I try to invole fails.

------------------------------------------------
Operation: RemotingMessage.changeValue
Destination: valueBean
------------------------------------------------
Error: exception occured
ServerStatusException
        data: Flex Message (flex.messaging.messages.ErrorMessage)
    clientId = 8967EBAE-8F0C-AC84-89F1-16E2F27D647F
    correlationId = 89A7F273-FC51F-AC93-1FEA-FD3FDE311D20
    destination = valueBean
    messageId = 8967EBAF-8FF1D-2D1E-A727-61D596749D35
    timestamp = 2181655390463
    timeToLive = 0
    body = null
    code =  Client.Authentication
    message =  Login required before authorization can proceed.
    details =  null
    rootCause =  null
    body =  null
    extendedData =  null
        HttpResponseInfo: HttpResponseInfo
        code: 200
        message: OK
------------------------------------------------ 


Is there anything which I&#039;m missing ?

Thank you
Vivek</description>
		<content:encoded><![CDATA[<p>The registerAlias() needs 2 arguemnts and the classes mentioned must be  present within a package. Using this my registerAlias() got solved, since the local class I was using was not in a package.</p>
<p>Also, my Java AMF client fails to send any remoting request and receives following message. I&#8217;m able to invoke login/logout methods but after login any other request I try to invole fails.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Operation: RemotingMessage.changeValue<br />
Destination: valueBean<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Error: exception occured<br />
ServerStatusException<br />
        data: Flex Message (flex.messaging.messages.ErrorMessage)<br />
    clientId = 8967EBAE-8F0C-AC84-89F1-16E2F27D647F<br />
    correlationId = 89A7F273-FC51F-AC93-1FEA-FD3FDE311D20<br />
    destination = valueBean<br />
    messageId = 8967EBAF-8FF1D-2D1E-A727-61D596749D35<br />
    timestamp = 2181655390463<br />
    timeToLive = 0<br />
    body = null<br />
    code =  Client.Authentication<br />
    message =  Login required before authorization can proceed.<br />
    details =  null<br />
    rootCause =  null<br />
    body =  null<br />
    extendedData =  null<br />
        HttpResponseInfo: HttpResponseInfo<br />
        code: 200<br />
        message: OK<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </p>
<p>Is there anything which I&#8217;m missing ?</p>
<p>Thank you<br />
Vivek</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vivek</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-401</link>
		<dc:creator>Vivek</dc:creator>
		<pubDate>Wed, 21 Jul 2010 22:00:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-401</guid>
		<description>I&#039;m implementing a Java client which sends AMF request to BlazeDS server using AMFConnection library. 
In my case, I&#039;m calling a remote API (using RemotingMessage)  which needs a custom Server Object in the AMF request body. But I can&#039;t create this object because its class and related libraries are present on Server. I observed a way around to this, in a ActionScript, where developers use below syntax, where they create a local class and link to Server Class.

=================Action Script ==================
    [Bindable]
    [RemoteClass(alias=&quot; com.ABC.PQR.sampleClass&quot;)]

    public class SampleClass {
        public function SampleClass() {
        }

        public var var1:String;
        public var var2:String;
        public var var3:ArrayCollection;
        public var var4:Boolean;
        public var var5:Boolean;
    }

=============================================

Can you please let me know how to send a custom object using Java client creating a AMF request with a custom object as request body, similar to the above example.

I used &quot;regsiterAlias( ,  )&quot; API, but through proxy tool, I observed that the object inside  AMF request body contains NULL information and linked correctly to the Server side class.


Thank you.</description>
		<content:encoded><![CDATA[<p>I&#8217;m implementing a Java client which sends AMF request to BlazeDS server using AMFConnection library.<br />
In my case, I&#8217;m calling a remote API (using RemotingMessage)  which needs a custom Server Object in the AMF request body. But I can&#8217;t create this object because its class and related libraries are present on Server. I observed a way around to this, in a ActionScript, where developers use below syntax, where they create a local class and link to Server Class.</p>
<p>=================Action Script ==================<br />
    [Bindable]<br />
    [RemoteClass(alias=" com.ABC.PQR.sampleClass")]</p>
<p>    public class SampleClass {<br />
        public function SampleClass() {<br />
        }</p>
<p>        public var var1:String;<br />
        public var var2:String;<br />
        public var var3:ArrayCollection;<br />
        public var var4:Boolean;<br />
        public var var5:Boolean;<br />
    }</p>
<p>=============================================</p>
<p>Can you please let me know how to send a custom object using Java client creating a AMF request with a custom object as request body, similar to the above example.</p>
<p>I used &#8220;regsiterAlias( ,  )&#8221; API, but through proxy tool, I observed that the object inside  AMF request body contains NULL information and linked correctly to the Server side class.</p>
<p>Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcin</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-347</link>
		<dc:creator>Marcin</dc:creator>
		<pubDate>Mon, 08 Feb 2010 19:05:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-347</guid>
		<description>Hi Thijs!  During testing, I often prefer working with the HTTP request directly, rather than having it abstracted from me like RemotingService does.  I felt it was important in this post (from a security testing perspective) for the reader to understand how an AMF envelope and message are constructed.

I also had been running into TypeError&#039;s being thrown when using the RemotingService in some scripts, and didn&#039;t have time to track down the root cause for it.  I&#039;ll be sure to submit any details to you if I run into them again.

Thanks for your work on PyAMF!</description>
		<content:encoded><![CDATA[<p>Hi Thijs!  During testing, I often prefer working with the HTTP request directly, rather than having it abstracted from me like RemotingService does.  I felt it was important in this post (from a security testing perspective) for the reader to understand how an AMF envelope and message are constructed.</p>
<p>I also had been running into TypeError&#8217;s being thrown when using the RemotingService in some scripts, and didn&#8217;t have time to track down the root cause for it.  I&#8217;ll be sure to submit any details to you if I run into them again.</p>
<p>Thanks for your work on PyAMF!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thijs</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-344</link>
		<dc:creator>Thijs</dc:creator>
		<pubDate>Fri, 29 Jan 2010 01:54:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-344</guid>
		<description>Interesting post! I&#039;m curious why you didn&#039;t use PyAMF&#039;s RemotingService, and rolled your own using httplib?</description>
		<content:encoded><![CDATA[<p>Interesting post! I&#8217;m curious why you didn&#8217;t use PyAMF&#8217;s RemotingService, and rolled your own using httplib?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Ward</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-316</link>
		<dc:creator>James Ward</dc:creator>
		<pubDate>Mon, 23 Nov 2009 16:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-316</guid>
		<description>Thanks for discovering and reporting this problem with our BlazeDS samples.  In the future can you also file a bug?
http://bugs.adobe.com

I&#039;ve created one for this issue:
https://bugs.adobe.com/jira/browse/BLZ-461

It&#039;s important to note that this vulnerability is just in the BlazeDS sample applications not in the BlazeDS product itself.

BTW: It&#039;s much easier to use a Flex app to illustrate these types of vulnerabilities.  No mucking with AMF packets, etc.  Here is the Flex app I created to test this particular vulnerability:
http://pastebin.com/f6c1e3114

-James (Adobe)</description>
		<content:encoded><![CDATA[<p>Thanks for discovering and reporting this problem with our BlazeDS samples.  In the future can you also file a bug?<br />
<a href="http://bugs.adobe.com" rel="nofollow">http://bugs.adobe.com</a></p>
<p>I&#8217;ve created one for this issue:<br />
<a href="https://bugs.adobe.com/jira/browse/BLZ-461" rel="nofollow">https://bugs.adobe.com/jira/browse/BLZ-461</a></p>
<p>It&#8217;s important to note that this vulnerability is just in the BlazeDS sample applications not in the BlazeDS product itself.</p>
<p>BTW: It&#8217;s much easier to use a Flex app to illustrate these types of vulnerabilities.  No mucking with AMF packets, etc.  Here is the Flex app I created to test this particular vulnerability:<br />
<a href="http://pastebin.com/f6c1e3114" rel="nofollow">http://pastebin.com/f6c1e3114</a></p>
<p>-James (Adobe)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-314</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Sun, 22 Nov 2009 13:57:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-314</guid>
		<description>IBM Rational AppScan has the ability to automatically crawl and test Flash applications. In addition, specifically for Flex/AMF applications, it performs the regular battery of application-layer tests (e.g. SQLi, XSS, etc.) on AMF message fields.</description>
		<content:encoded><![CDATA[<p>IBM Rational AppScan has the ability to automatically crawl and test Flash applications. In addition, specifically for Flex/AMF applications, it performs the regular battery of application-layer tests (e.g. SQLi, XSS, etc.) on AMF message fields.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: arshan</title>
		<link>http://www.gdssecurity.com/l/b/2009/11/11/pentesting-adobe-flex-applications-with-a-custom-amf-client/comment-page-1/#comment-312</link>
		<dc:creator>arshan</dc:creator>
		<pubDate>Wed, 11 Nov 2009 15:33:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.gdssecurity.com/l/b/?p=172#comment-312</guid>
		<description>cool post</description>
		<content:encoded><![CDATA[<p>cool post</p>
]]></content:encoded>
	</item>
</channel>
</rss>
