Burp Suite: 若要抓取HTTPS包需要配置CA证书(详见CSDN收藏)并配置浏览器网络设置
Burp 扮演代理服务器 Proxy 的角色拦截一切发出、接受到的数据包 并可进行伪造
Burp 教程详见 mozhe.cn -> 工具
mozhe.cn 在线靶场 网络安全 浏览器信息伪造
墨者了解到从微信6.0开始,其内嵌的浏览器在User-Agent字符串中增加了NetType字段用于标识客户端(手机)当前的网络环境。增加之后真的安全吗?
实训目标:User-Agent的理解;微信浏览器内嵌新增取值内容;使用BurpSuite修改内容。
解题方向:根据页面提示,抓包分析除了判断浏览器类型还判断了微信特有的NetType。
访问 219.153.49.228:49646
弹窗 “请使用iPhone手机,在2G网络下登陆微信查看!”
抓取数据包:
搜索互联网NetType:
在User-Agent首部伪造iPhone字段,末尾伪造NetType/2G
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) Apple-Webkit /600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger /6.0 NetType/2G
forward数据包,成功访问。
mozhe.cn 在线靶场 网络安全 来源页伪造
安全工程师墨者访问一个网页时,提示只能通过另一个页面跳转的形式访问,该如何办?
(充分理解Referer伪造!)
目标网页:IP 219.153.49.228 端口48606 协议 HTTP
访问 219.153.49.228:48606
点击 “搜索引擎数据查询平台”
弹窗 “禁止浏览!当前页面只允许从google.com访问。”
抓取数据包:
GET /x search index.php HTTP/1.1
Host: 219.153.49.228:48806
User-Agent: Mozilla/5.0 (Windows NT 10.0: VOU64: rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html, application/xhtml+xml, application/xml; q=0.9,^/^ ;q=0.8
Accept-Language; zh-cN, zh; q=0.8, en-Us; q=0.5, en; q=0.3
Accept-Encoding: gz1p, deflate
Referer: http://219.153.49.228:48606/index.html
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
修改 Referer: http://google.com
发送数据包
恭喜成功伪造来源页!
mozhe.cn 在线靶场 网络安全 HTTP动作练习
背景介绍:某日,墨者对一企业办公系统的源代码进行授权检测,过程中发现程序员使用PHP程序,处理服务端接收客户端传递的数据时,使用的是$_REQUEST[],前端使用的是GET方式,然后就遇到了问题:“Request-URL Too Long”
实训目标:掌握在浏览器发送数据时 GET POST方式的差异;理解在PHP程序中$_REQUEST、$_GET、$_POST三者的区别;了解不同浏览器通过GET方式传递数据时限制数据长度的大小。
解题方向:通过POST方式提交“content”数据内容,查看服务端返回结果。
访问219.153.49.338:43320
抓取数据包:
修改 GET 为 POST
Request请求数据包格式:
请求行:请求方法+请求URL+HTTP版本,如 GET /index/html HTTP/1.1
请求头:由键值对组成。最后一个请求头标后是空行,通知服务器不再有头标
请求数据:使用POST传送。常使用Content-Type和Content-Length头标
POST请求方法中,请求数据放在最后,与请求头隔一空行。以content=起始。forward数据包成功获得Key。
mozhe.cn 在线靶场 网络安全 投票系统程序设计缺陷分析
背景介绍:年终公司组织各单位“文明窗口”评选网上投票通知。小墨负责对投票系统进行安全测试,看是否存在安全漏洞影响投票的公平性。
实训目标:了解浏览器插件的使用;了解开发程序员对IP地址获取方式;了解BurpSuite使用。
解题方向:根据页面提示进行投票测试。
访问 219.153.49.228:49776
点击bbb投票抓取数据包:id=2就是第三个竞选者bbb
推测投票系统检测IP。两个解题思路:
- User-Agent代理;
- 查看PHP检测IP地址方法代码,绕过。
X-Forwarded-For (XFF) 是一个 HTTP 扩展头部,主要是为了让 Web 服务器获取访问用户的真实 IP 地址(不一定真实,可以伪造)。若存在该头部则优先读取/使用该头部提供的IP地址。
PHP 中,不明白原理的开发者为了获取客户 IP,会使用 $_SERVER['REMOTE_ADDR'] 变量,这个服务器变量表示和 Web 服务器握手的 IP 是什么(不能伪造)。但很多用户通过代理来访问服务器,假如使用该全局变量,PHP获取到的 IP 就是代理服务器的 IP(不是用户的)
客户端 ->(正向代理 -> 透明代理 -> 服务器反向代理 ->)Web服务器
$_SERVER['REMOTE_ADDR'] 获取到的 IP 是 Web 服务器 TCP 连接的 IP(不能伪造,一般 Web 服务器也不会修改这个头)
因为有了各种代理,REMOTE_ADDR 全局变量产生了一定的歧义,为了让 Web 服务器获取到真实的客户端 IP,X-Forwarded-For 出现了。
X-Forwarded-For: client, proxy1, proxy2
用户 IP 为(A),分别经过两个代理服务器(B,C)最后到达 Web 服务器,那么服务器接收到的 X-Forwarded-For 就是 A,B。
假设你的服务很重要,如抽奖(一个 IP 只能一次抽奖),这时候你可能想通过 X-Forwarded-For 来获取用户的真实 IP(假如使用 REMOTE_ADDR 则会误杀一片),但是由于 X-Forwarded-For 可能会伪造,所以其实并没有什么好的办法,只能在应用层进行处理了。
最终在数据包中添加 X-Forwarded-For 字段,加上伪造的IP地址。BurpSuite -> Intruder -> Payload 处可以修改地址的末两位进行攻击,向网站发送 IP 地址为 192.168.1.1~192.168.255.255 的投票数据包,最终使ggg票数第一。