Web Rendering Proxy – Overdue Status Update

(This is a guest post from Antoni Sawicki aka Tenox)

There hasn’t been a major update to WRP (Web Rendering Proxy) in 5 years or so. Some new features have been added thanks to efforts of Claunia but the whole project was mostly impeded with mass migration of the whole Internet to SSL/TLS/https. It does semi work somehow thanks to sslstrip but the whole stack is an unmaintainable pile of crap which I’m not going to update any more.

A new rewrite from scratch is well under way. This time written in GoLang and using Chrome DevTools Protocol. Things should be much more stable and future proof.

Far from complete but I have a fully functional prototype now working in just under 100 lines of code:

UPDATE 1: You can play with it if you want. Please do not submit any bug reports just yet, as this is just a development version. Note that WRP is currently not a true HTTP proxy but rather browser-in-browser. Proxy may be supported later.

UPDATE 2: As of today online setting of size, scaling and scrolling is supported. I’m specifically happy about the scrolling feature albeit it probably needs a better user input, like prev/next page.

Windows version still doesn’t work due to an upstream bug, which is probably easy to fix.

ISMAP is currently in development.

5 thoughts on “Web Rendering Proxy – Overdue Status Update”

    1. That looks pretty awesome to abuse! tuntap/l2 bridging/slirp/HECnet/DOSBox IPX why the possibilities are endless!

      Not that I’d suggest using it to smuggle data, but it’s certainly good for smuggling data.

  1. Hi tenox! Nice to see WRP still alive! I have used it to showing up to my friend that my old browser is capable to open modern webpage, hahaha. 😀

    As I’m Go programmer, often coding for backends, I just have little suggestions:
    * There was awesome webview library that fits in Go like this https://github.com/zserge/webview (not sure if this fits in, but could be your good candidate) 🙂
    * And finally, if you decide make HTTP Proxy version too, this goproxy (https://github.com/elazarl/goproxy) may fits your needs. I have used to trap and debugging HTTP traffics and this one works well.

  2. Cool to hear that! Maybe you can contribute to WRP 😉 Thank you for the suggestions!
    I did consider using webview / webkit but in the prototype I wanted specifically to experiment with Chrome Headless and the DevTools Protocol. I don’t know if it’s better or worse, this is why I’m still prototyping. So far it works quite well so unless I encounter a major obstacle I will probably stick with it.
    Yes I’m considering full proxy mode, however the main problem is with HTTPS of course. While HTTP 1.1 capable browsers will usually issue CONNECT, this is not the case with the browsers I’m targeting, which mostly are pre 1.1. At some point I will go through most of the old browsers and discover how they proxy HTTPS and see how to satisfy that. There are also browsers that do not even have https at all. A man in the middle may work for that. I think in the end WRP may offer both browser in browser and proxy modes.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.