首页
登录 | 注册

HTTP内容篡改实践

HTTP内容篡改实践

读完了《图解HTTP》。虽说是一本很轻的书,可后面一章讲的各种攻击让人手痒痒。下面模拟一些不良运营商的做法,给普通http网页加上小广告。

首先,用软件模拟运营商路由器层面的http转发。
为了快速实现http转发,网上找一个http的代理服务器即可。直接搜‘’python http agent server“,找到一个很好用的代理服务器 proxpy,可以自己编写插件来改写http的request、response,正是想要的软件。svn checkout下来后,参照proxpy的说明,运行命令

$ ./proxpy.py -x plugins/changeagent.py 
[*] <b73986c0> Server 0.0.0.0 listening on port 8080

运行后,即在本地启动了一个代理服务器,默认host为0.0.0.0,port 为8080。

然后,浏览器设置代理服务器为上面创建的那个本地代理服务器。
浏览器代理服务器设置方式有很多,推荐用浏览器插件,方便快捷。浏览器代理服务器插件可以在浏览器应用商店中找到。chrome可以安装浏览器代理插件SwitchySharp。在SwitchySharp中创建一个代理模式,设置http代理,代理host为0.0.0.0,port为8080(与上面启动的本地代理服务器参数一致)。

最后,根据自己的想法篡改网页。
改写changeagent.py里的处理response的过程,篡改response。例如用下面的代码把所有js脚本后面加上alert(1).


def proxy_mangle_request(req):
    req.setHeader("User-Agent", "ProxPy Agent")
    return req

def proxy_mangle_response(res):
    res.body=res.body.replace("</script>",";alert(1)</script>")
    print res.body
    return res

处的时候需要注意原来的response是否使用了内容压缩和内容的编码方式,否则replace可能匹配不到。




2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.008 s.
京ICP备10005923号