add localstorage clearer, sessionstorage cleaer, and cachebuster modifiers
This commit is contained in:
28
proxychain/responsemodifiers/delete_localstorage_data.go
Normal file
28
proxychain/responsemodifiers/delete_localstorage_data.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package responsemodifiers
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"strings"
|
||||
|
||||
"ladder/proxychain"
|
||||
)
|
||||
|
||||
// DeleteLocalStorageData deletes localstorage cookies.
|
||||
// If the page works once in a fresh incognito window, but fails
|
||||
// for subsequent loads, try this response modifier alongside
|
||||
// DeleteSessionStorageData and DeleteIncomingCookies
|
||||
func DeleteLocalStorageData() proxychain.ResponseModification {
|
||||
return func(chain *proxychain.ProxyChain) error {
|
||||
// don't add rewriter if it's not even html
|
||||
ct := chain.Response.Header.Get("content-type")
|
||||
if !strings.HasPrefix(ct, "text/html") {
|
||||
return nil
|
||||
}
|
||||
|
||||
chain.AddOnceResponseModifications(
|
||||
InjectScriptBeforeDOMContentLoaded(`window.sessionStorage.clear()`),
|
||||
InjectScriptAfterDOMContentLoaded(`window.sessionStorage.clear()`),
|
||||
)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
28
proxychain/responsemodifiers/delete_sessionstorage_data.go
Normal file
28
proxychain/responsemodifiers/delete_sessionstorage_data.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package responsemodifiers
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"strings"
|
||||
|
||||
"ladder/proxychain"
|
||||
)
|
||||
|
||||
// DeleteSessionStorageData deletes localstorage cookies.
|
||||
// If the page works once in a fresh incognito window, but fails
|
||||
// for subsequent loads, try this response modifier alongside
|
||||
// DeleteLocalStorageData and DeleteIncomingCookies
|
||||
func DeleteSessionStorageData() proxychain.ResponseModification {
|
||||
return func(chain *proxychain.ProxyChain) error {
|
||||
// don't add rewriter if it's not even html
|
||||
ct := chain.Response.Header.Get("content-type")
|
||||
if !strings.HasPrefix(ct, "text/html") {
|
||||
return nil
|
||||
}
|
||||
|
||||
chain.AddOnceResponseModifications(
|
||||
InjectScriptBeforeDOMContentLoaded(`window.sessionStorage.clear()`),
|
||||
InjectScriptAfterDOMContentLoaded(`window.sessionStorage.clear()`),
|
||||
)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@@ -13,8 +13,12 @@ import (
|
||||
// DeleteIncomingCookies prevents ALL cookies from being sent from the proxy server
|
||||
// back down to the client.
|
||||
func DeleteIncomingCookies(_ ...string) proxychain.ResponseModification {
|
||||
return func(px *proxychain.ProxyChain) error {
|
||||
px.Response.Header.Del("Set-Cookie")
|
||||
return func(chain *proxychain.ProxyChain) error {
|
||||
chain.Response.Header.Del("Set-Cookie")
|
||||
chain.AddOnceResponseModifications(
|
||||
InjectScriptBeforeDOMContentLoaded(`document.cookie = ""`),
|
||||
InjectScriptAfterDOMContentLoaded(`document.cookie = ""`),
|
||||
)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user