Burp Suite 是用于攻击web应用程序的集成平台,有了这玩意儿可以拦截web站点的请求地址、参数等信息,拦截之后就可以对参数进行篡改,再次转发回服务器,以达到不可告人的目的...
下面拿“飞牛网”的搜索功能作为示例:
先看下正常搜索结果,搜索关键字“nike鞋” ,结果为相关品牌和商品:
步骤一:设置burpsuite代理地址和端口并开启拦截,设置浏览器的代理服务器地址和端口,二者保持一致。
步骤二:回到“飞牛网”,再次搜索关键字“nick鞋”,这时burpsuite已成功拦截到请求。通过分析,我们把不需要的请求“forward”掉,最后筛选出了2个请求地址:
请求1:/?q=nike%E9%9E%8B
请求2:/search/getbrands/?q=nike%E9%9E%8B
通过测试发现,
请求1就是获取“商品列表”,而请求2根据请求地址名称可以断言是获取“商品品牌列表”
拦截如图所示:
步骤三:为了篡改参数的之后的展示的效果更直观,我们在这里只修改请求1的搜索关键字为“JAVA”,而请求2不变。
即:
请求1:/?q=JAVA
请求2:/search/getbrands/?q=nike%E9%9E%8B
也就是说用户搜索的是“nick鞋”,结果商品列表里全是“Java”相关的书籍,而品牌分类却显示“nick鞋”的相关分类。
这样的结果在正常情况中那肯定是BUG了。
修改搜索参数为“Java”并发回服务器,请求2不做修改。如图:
结果:
至此,演示结束.....
上面那么玩对网站和公司来说并没有什么影响,其实根本没什么卵用,讲一个真实的案例吧。
我朋友公司是做P2P的,当时无聊就想知道我朋友投资了多少钱,能不能把他的钱提现到我卡里.....
该P2P站点登录名都是手机号,我自然是有朋友的号码的,只是不知道密码,所以考虑着要从找回密码下手。
他们当时找回密码功能流程是这样的:
1、输入找回密码的手机号;
2、服务器发送验证码到找回密码的手机号上;
3、输入接收到的验证码;
4、设置新密码。
很多开发都会忽略“流程2”和“流程3”中一个重要的环节,认为服务器只要收到的验证码是正确的,就认为此次找回密码请求是合法的,而不会去验证手机号和验证码的一致性。
很遗憾,他们的站点存在这个漏洞,然后就像上面所演示的那样,开启burpsuite和浏览器代理,拦截到了发送验证码的请求,把接收方手机号修改为我自己的号码,验证码也就直接发到了我手机上....所以就成功修改了朋友的密码,成功登录....
至此,还没完,就想试试能不能把提现的请求也给拦截了,然后改掉提现的银行卡号和户名,幸运的是虽然改成功了,但是提现是需要人工审核的....后来也就算了,然后把漏洞情况发给朋友,经其同意顺便又发到了乌云网...
大部分情况下,burpsuite都是通过篡改参数来完成漏洞攻击的,所以服务端验证一定要严谨。
关于web安全的问题,本人只知些皮毛,然后把自己知道的一些东西发出来,文笔水平有限,望大家赐教。