小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)

补充概念

AJAX(异步javascript和XML)

Asynchronous javascript and xml

是一个概念,而非一种新的编程语言,是一组现有技术的组合

通过客户端脚本动态更新页面部分内容,而非整个页面

降低带宽使用,提高速度

提升用户体验

后台异步访问

AJAX组件

Javascript:AJAX的核心组件,使用XMLHTTPRequest对象接口向服务器发起请求,接受并处理服务器响应数据

Dynamic HTML (DHTML)

早于AJAX出现,通过javascript、CSS等在客户端修改HTML页面element,缺点是完全依赖客户端代码修改页面,与服务器的交互由JavaScript applets完成,AJAX的XHR弥补了他的缺点(如:注册用户)

Document Object Model (DOM)

处理html、xml文档对象的框架,DHTML是一个浏览器,DOM作为其一个 实现的接口,定义和管理每个页面元素obj的Properties、method、event

基于AJAX的WEB应用工作流程

XMLHTTPRequest API创建对象xmlhttp进行访问

返回内容:Xml、json、html、文本、图片

多个异步请求独立通信,互不依赖

AJAX框架

JQuery

Dojo Toolkit

Google web toolkit (GWT)

Microsoft AJAX library

目前没有通用的AJAX安全最佳实践,其攻击面不为大多数人所知

AJAX的安全问题

多种技术混合,增加了攻击面,每个参数都可能形成独立的攻击过程

AJAX引擎是个全功能的脚本解释器,访问恶意站点可能后果严重,虽然浏览器有沙箱和SOP,但可被绕过

服务器、客户端代码结合使用产生混乱,服务器访问控制不当,将信息泄露

暴漏应用程序逻辑

AJAX对渗透测试的挑战【不可忽视】

异步请求数量多且隐蔽

触发AJAX请求的条件无规律

手动和截断代理爬网可能产生大量遗漏

AJAX爬网工具

ZAP

小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)

客户端代码审计  

源码  【不一定高效】

Firebug

小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)

WEB Service 

一种面向服务的架构 (service oriented architecture),便于不同系统集成共享数据和功能

尤其适合不想暴漏数据模型和程序逻辑而访问数据的场景

无页面,只是一个web接口,通过http协议

两种类型的WEB Service

Simple object access protocol (SOAP)

传统的WEB Service开发方法,xml是唯一的数据交换格式

要求安全性的应用更多采用

RESTful (Representational State Transfer architecture—REST)

目前更多被采用的轻量web service,JSON是首选数据交换格式

WEB Service安全考虑

  1. 使用API key或session token实现和跟踪身份认证
  2. 身份认证由服务器完成,而非客户端(因为客户端源码可查看)
  3. API key、用户名、Session token永远不要通过URL发送
  4. RESTful默认不提供任何安全机制,需要使用SSL/TLS保护传输数据安全
  5. SOAP提供强于HTTPS的WS-security机制
  6. 使用OAuth或HMAC进行身份验证,HMAC身份认证使用C/S共享的密钥加密API key
  7. RESTful应只允许身份认证用户使用PUT、DELETE方法
  8. 使用随机token防止CSRF攻击
  9. 对用户提交参数过滤,建议部署基于严格白名单的方法
  10. 报错信息消毒
  11. 直接对象引用应严格身份验证(电商公司以产品ID作为主索引)
上一篇:Tomcat 8005/8009/8080/8443端口的作用


下一篇:[杂题]CSUOJ1413 Area of a Fractal