
Image 3: Shows chainedTransfomer invocation when a value is set on the LazyMap
Mapproxy apache code#
The number in braces correspond to the individual Transformer execution in the code snippet above. The image below shows the execution flow when the chainedTransformer in the code snippet above is executed while setting a value on the lazyMap. Map lazyMap = corate(map, chainedTransformer)
Mapproxy apache software#
So, as long a Java software stack contains Apache commons Collections library (() The CommonsCollections1 leverages following classes from JDK and Commons Collections. What makes the exploit effective is that it only relies on the classes present in Java and Apache Commons Collections. Image 1: The serialized AnnotationInvocationHandler The image below shows the custom AnnotationInvocationHandler object used for RCE. When the serialized object is deserialized, the code path from AnnotationInvocationHandler's readObject leads to InvokerTransformer's payload, causing code execution. The CommonsCollections1 exploit builds a custom AnnotationInvocationHandler object that contains an InvokerTransformer (Apache Commons Collections class) payload, and outputs the serialized object. In this blog post, I will discuss the CommonsCollections1 exploit, and its working, available in the ysoserial toolkit.Īll code snippets used in this post are sourced from ysoserial The tool provides options to generate several different types of serialized objects, which when deserialized, can result in arbitrary code execution if the right classes are present in the classpath. Several people have created COG - Cloud Optimized GeoTIFF Serverless Stacks and are delivering map tiles XYZ from COG or performing raster functions this is cool.Last year, ysoserial was released by frohoff and gebl. We've used Elastic BeanStalk for this and tried a few proof of concepts with kubernetes cluster with linked docker containers postgis in separate docker. Scaling GeoServer/MapServer for very big datasets and concurrent heavy requests can be expensive. Responding to WMS Requests and building getmap images is CPU intensive task unless cached it would be interesting to see how a getmap request can be a serverless function. It's being used heavily in production via our mobile app for NGA GEOINT App store (Defense and Intelligence and State Dept, Homeland Security and other Government users)
Mapproxy apache generator#
We will be selling API Access, Front-End Submission Web Application and Mobile iOS, Android and Windows apps Offline Map Data Generator app includes GeoRequest for a subscriptionĬLIP-TILES cuts existing mbtiles/gpkg into new one's for AOIĬLIP-VECTOR - Clips GPKG vector features and POSTGIS Tables and builds GPKG for AOIĮlevation - builds GPKG elevation tiles, ridgelines, contourlines, shaded relief, slope,etc In some cases, uses MapProxy Python to deliver WMS, WMTS, TMS from the other servicesįor our GeoRequest Area of Interest API we considered Serverless but because the size of the source and bandwidth costs it did not make sense to host that in AWS or AZURE we went with a dedicated host at a colocation with 20TB of RAID 10 Storage and 32 cores for the jobs to run (and we can mail next day external hard drive to add new data products instead of FTP with 10 or 20 mbps upload) The Colocation is giving us 50TB of bandwidth a month for the cost of the dedicated server. Removing the standard GeoServer/MapServer WMS Stack Or processing raster data to raster tiles and serving via tile server

We've moved to using OGC WPS for some processingĪnd directly publishing data via POSTGIS with CrunchyData's pg_featureserver OGC API Features and pg_tileserver delivers dynamic PBF Vector TilesĪs well as processing data to vector tiles and then serving via tile server The process must be short lived otherwise we've used serverless functions to start EC2/virtual machine and then run process and then stop EC2/VirtualMachine We've done AZURE functions and AWS Lambda Functions with our custom dotnet core console apps and calling GDAL, Whitebox, OTB and python Rasterio and other python packages. It can be used by Admins or given to end users depending on your needs.

We have a CodeIgniter PHP Application that allows users to authenticate/authorize and upload GeoTIF or Shapefile and get WMS.
Serverless would not deliver OGC WMS that would not make senseĪ better approach is just GeoServer REST API to publish data to coverage/data store and return a WMS, TMS, WMTS, WFS URL.
