微信号:grzlwx

介绍:光荣之路官方资讯

接口自动化测试的"开胃小菜"---简单黑客攻击手段 (续)

2015-09-24 22:41 光荣之路


由于本文主要是出于学习和交流目的,为了保护实验对象的一些隐私,所以下面的图片和相应的URL都会进行一些简单的马塞克。

5 收集api信息

由于Web应用系统本身是不对外开放api的,但是互联网公司的产品为了追求高扩展性和前后端完全分离独立,通常使用如下技术架构:


互联网应用的架构,客户端和服务器一般都是基于Http API来进行通讯,所以对于B/S的程序来说,可以很容易通过一些辅助工具来找到通讯的接口。

某个网站“有幸”被选中了:

http://x.xxx.xx/ugc/out/feedback/

使用Chrome浏览器打开页面

然后填写好表单之后,点击提交按钮。当然,因为提交按钮之后,会跳转到另外一个页面,不便于我们查看提交的数据值,所以要做一些简单的修改,就是表单提交的服务器API简单修改成一个不存在的即可:


然后在Chrome的Network里面可以看到接口信息:


然后将右侧的接口详细数据信息展开,就可以查看到表单值:


这个表单就告诉了我们此网站应用的服务器端API所接收的合法的数据的格式,这样就相当于知道了调用的方式了。

知道了接口,知道了调用方式,那么接下来就可以通过写程序来实施“黑客”行为了。

6 编写crack脚本

由于本人python比较熟悉,所以就使用python来进行相应的操作演示。

返回值


根据200的状态码,明显是成功了。因为有经验的Web开发人员都清楚,Http的200状态码就表示成功调用的返回值了。

如果我使用个for循环,将此程序运行100万次,那么这个网站主的这个地方的数据库估计就要抓狂了。如果使用多个机器连续疯狂的刷,而且恰好这个数据表和他们的核心业务数据库放在一起,那么这将会导致数据库连接数量超过极限,导致正常的服务无法被提供了。

7 后续展望和总结

本文只是演示了如何利用Chrome去寻找Web应用的接口及调用。而对于看不到前端代码的App应用,则可以通过抓包工具Wireshark来轻松获得相应的接口及调用。

网站主避免此漏洞的方法:给相应的位置加上可靠的“验证码”即可。 PS:传统的字符型验证码,稍微会一些图片识别技术,或者机器学习技术,也是相当好破解的。目前的OCR技术已经相当发达了,想想注册Gmail的时候, 那一串人都不认识的字符,结果程序可以进行90%的成功破解率,可想而之机器远比人类想像得要厉害。

当然,如何做好“图灵测试”对“自然人”和“机器人”进行区分,已经成为安全领域的一个重要的课题,也非本文重点讨论的问题了,有兴趣的同学可以在相关领域继续研究吧。

这个事情给做Web应用系统的人员两个警钟:

  • 所有涉及到数据交互的地方,最好加上验证码。

  • 数据尽量要按照重要等级分开部署。

8 免责声明

  • 本文只是以学习交流为目的

  • 本文没有产生破坏行为

  • 本文所获取的信息都是通过正常的暴露在外部的信息得到的

  • 本文隐藏了具体的URL目标的信息

  • 如果实在是有人有要求认为本文造成了事实伤害,作者会按照要求删除此文

  • 最后希望此文能够给有志做接口自动化测试的朋友提供了一个好的“开胃菜”

(完)

(来源:http://www.cnblogs.com/beer/p/4814587.html)

作者:

Harmo哈莫

作者介绍:

https://zhengwh.github.io

QQ:

1295351490

时间:

2015-08-24

版权说明:

未经许可,严禁用于商业目的的非法传播

联系或打赏:

http://zhengwh.github.io/contact-donate.html


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

感谢作者,传播测试知识、技能与正能量!
欢迎来稿,分享你的测试生活!735821166@qq.com

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 [技术] 谈谈编程思想 脚本中使用logging模块记录日志 新媒体┃用政务微信听民声、察民情、传民意 全民K歌增量升级方案 3月16日华为HCIE-R&S脱产班尚有少数名额