====== Interceraptor ======
{{template>~infobox|
name=EDITME|
image=EDITME|
sw=-|
hw=-|
founder=[[user:EDITME]]|
interested=[[user:EDITME]]\\ [[user:EDITME]]|
status=active
}}
 ~> listener (1) -> intercept (2) -> filter (3) -> real server (4)
 <~ listener (8) <- intercept (7) <- filter (6) <- real server (5)
Listeners:
  * socks 
  * forwarding
  * custom routing table
SSL:
  * generate SSL cert per host
  * for android emulator generate SSL cert according to the real target cert
  * select custom CA
  * accept HTTP and redirect to HTTP (arbitrary host via routing table (per host filter))
Intercept (all operations are bidirectional):
  * hand examination/modification
  * automatic data modification
Filters:
  * (intercept is a special filter)
  * response normalization. custom rules that defines which request means that the file does (not) exists
  * cookie jar
  * active session maintaining
  * Throttle (max requests per time ...)
  * data parsing (nonce extraction. VIEWSTATE)
  * time analysis for request-response (show the delta)
Vulnerability discovery:
  * http protocol fuzzing / content discovery (files, directories, http parameters) 
  * inner protocol fuzzing (JSON, XML, REST, SOAP)
Data manipulation:
  * base64
  * hex/ascii
  * data validation (html-tidy, json validator, xml validator)
==== GUI ====
  * HTML5 rest client
==== module ====
=== dataflow ===
  - c-s input match
  - c-s perform action (modify input / invoke external script or whatever)
  - c-s send data
  - s-c recieve data
  - s-c match output
  - s-c perform final action
data flow direction:
c-s -- client to server
s-c -- server to client
=== module interconnection ===
  * do it like they do it in apache mod_rewrite rules
===== roadplan =====
  - accept HTTP connection, redirect to SLL service, rule match per HTTP.host
  - accept SSL connection, fake SLL.CommonName by the target service
===== performance =====
  * multithread
  * fast backend without gui
  * ability to cancel pending request
  * each tab can be separated to standalone window
    * window plugin-like eclipse/netbeans/visalstudio...
===== scanner =====
  * passive
  * active
===== schemas =====
{{ :project:img_20130223_181909.jpg?direct&900 |Thread schema}}
{{ :project:img_20130302_163117.jpg?direct&900 |Rules outline}}
{{ :project:img_20130302_170003.jpg?direct&900 |Core REST interface}}
===== references =====
  * http://code.google.com/p/raft/
  * http://www.youtube.com/watch?v=e7FYHaRztWw
  * https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
  * http://portswigger.net/burp/proxy.html
  * http://www.youtube.com/watch?v=kDVIcW7TZVw
  * http://vimeo.com/43659037
  * www.fiddler2.com
  * http://proxies.xhaus.com/java/