<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>花茶安全攻防Team</title>
    <link>https://wechat2rss.xlab.app/feed/67968324b3147407bc172b38832acd931955e743.xml</link>
    <description>网络空间安全|前沿技术研究|新颖知识分享|安全培训服务&#xA;(wechat feed made by @ttttmr https://wechat2rss.xlab.app)</description>
    <managingEditor> (花茶安全攻防Team)</managingEditor>
    <image>
      <url>https://wx.qlogo.cn/mmhead/Q3auHgzwzM4185WEDlqZMdT9oxwcm9PIT3x9ttlZBWDH2mnmiamuIng/0</url>
      <title>花茶安全攻防Team</title>
      <link>https://wechat2rss.xlab.app/feed/67968324b3147407bc172b38832acd931955e743.xml</link>
    </image>
    <item>
      <title>工控DNP3协议及安全风险细解</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzI2ODQwNzAzNw==&amp;mid=2247484031&amp;idx=1&amp;sn=3fd1da85a5106e46619edc48a32033c6</link>
      <description>在开始分析之前，我们得先了解一下DNP3协议的规约，以便我们在下文更容易的分析其DNP3存在的安全问</description>
      <content:encoded><![CDATA[<p>
原创 <span>mosin</span> <span>2022-04-22 08:00</span> <span style="display: inline-block;"></span>
</p>

<p>在开始分析之前，我们得先了解一下DNP3协议的规约，以便我们在下文更容易的分析其DNP3存在的安全问</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=fee8e85c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYb89GDkShRic2SD1rcshdgK8xe5OJub900DcEdLOzCrz2uMAYwBNjZQvrliciaN7v2TWOQOeuveAjTYlHYEvBqMLA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">    在开始分析之前，我们得先了解一下</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">协议的规约，以便我们在下文更容易的分析其</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">存在的安全问题以及构造出攻击</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">协议的</span>E</span><span style="font-family:等线;font-size:16px;">XP</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，文中难免出现错误地方，如有不对的地方，还望大家斧正。</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">为了能够更详细的表达出</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">规约，所以在本文分析中大量引用了原</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">规约的描述文档</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">DNP3.0</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">规约的文本共分为</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">三</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">个部分</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">：</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">数据链路层、传输层、应用层。</span></span></p><h2><strong><span style="font-weight:bold;font-size:21px;"><span style="font-family:等线 Light;">一、数据链路层规约</span></span></strong></h2><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">数据链路层规约文件规定了</span></span><span style="font-family:等线;font-size:16px;">DNP3.0版的数据链路层</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">链路规约数据单元</span>(LPDU)</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">以及数据链路服务和传输规程。数据采用一种可变帧长格式</span></span><span style="font-family:等线;font-size:16px;">:</span><span style="font-family:等线;font-size:16px;"> FT3</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">FT3</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">帧长格式：</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">一个</span> FT3帧被定义为一个固定长度的报头，随后是可以选用的数据块，每个数据块附有一个</span><span style="font-family:等线;font-size:16px;">1</span><span style="font-family:等线;font-size:16px;">6位的CRC校验码。固定的报头含有2个字节的起始字，</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">一个字节的长度</span> (LENGH) ，一个字节的链路层控制字</span><span style="font-family:等线;font-size:16px;">(CONTROL) ，一个16位的目的地址，一个16位的源地址和一个16位的 CRC校验码。<br/></span></p><p><br/><span style="font-family:等线;font-size:16px;"></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5266742338251986" data-s="300,640" style="" data-type="png" data-w="1762" src="https://wechat2rss.xlab.app/img-proxy/?k=45c71cb3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub900uCKkNx1ID7qNaQlbyeAib6qem366V0WWZP2cHTna4H8C6jVtfgqTzA%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">05 64 为数据开始的字节,也可以说是报文头</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">1</span><span style="font-family:等线;font-size:16px;">2</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">为长度，这里</span>Dnp3的长度计算有些不一样，它包括链路报文头中的5个字节，加上传输层和应用层的长度以及除去CRC校验码字节。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">c4 链路控制字节</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　第一位为</span> <span style="font-family:等线;">表明发送的方向</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　第二位为</span> <span style="font-family:等线;">表示发送的设备是主设备还是从设备</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　第三位为</span> <span style="font-family:等线;">如果是请求则为纠错，如果是回应则为保留位</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　第四位为</span> <span style="font-family:等线;">这一位是说明第三位是否有效、在图上为</span>0则为未开启。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　后四位为</span> <span style="font-family:等线;">功能码</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　　　对于主设备来说</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">0，链路重置</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">1，进程重置</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">3，请求发送数据</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">4，直接发送数据</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">9，查询当前链路的状态</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">　　　　对于从设备来说</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">0，同意</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">1，拒绝</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">11，回应当前链路状态</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">0</span><span style="font-family:等线;font-size:16px;">3</span><span style="font-family:等线;font-size:16px;"> 0</span><span style="font-family:等线;font-size:16px;">0</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">目的地址</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">0</span><span style="font-family:等线;font-size:16px;">4</span><span style="font-family:等线;font-size:16px;"> 00 源地址</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">15 2</span><span style="font-family:等线;font-size:16px;">d 校验码</span></p><h2><strong><span style="font-weight:bold;font-size:21px;"><span style="font-family:等线 Light;">二、传输层规约</span></span></strong></h2><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">这部分定义对于</span></span><span style="font-family:等线;font-size:16px;">DNP数据链路层充当伪传输层的传输层功能。伪传输层功能专门设计用</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">于在原方站和从方站之间传送超出链路规约数据单元</span></span><span style="font-family:等线;font-size:16px;"> (LPDU) 定义长度的信息。其格式如下：</span></p><table cellspacing="0"><tbody><tr style="height:39px;"><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="277" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">T</span><span style="font-family:等线;font-size:16px;">H</span><span style="font-family:等线;font-size:16px;">传输层报头</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="277" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">数据块</span></p></td></tr></tbody></table><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.4504391468005019" data-s="300,640" style="" data-type="png" data-w="1594" src="https://wechat2rss.xlab.app/img-proxy/?k=b17bbc38&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90yUeQB5qg248bRXMpUQyyqHRypEGDnRMQuPzTvrsYiboAtcpqk2YF91A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">T</span><span style="font-family:等线;font-size:16px;">H</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">传输层报头：</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">第一位是</span></span><span style="font-family:等线;font-size:16px;">final，标识是否为最后一个包</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">第二位是</span></span><span style="font-family:等线;font-size:16px;">first，标识是否为最后一个包</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">后六位为</span></span><span style="font-family:等线;font-size:16px;">seq，表明当前是第几个包</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;line-height:24px;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">数据块：</span></span></p><p style="text-align:left;line-height:24px;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">应用用户数据</span></span><span style="font-family:等线;font-size:16px;">1-249</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">个字节由于数据链路层</span></span><span style="font-family:等线;font-size:16px;">FT3</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">帧格式中的长度字的最大限制</span></span><span style="font-family:等线;font-size:16px;">255</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，因此传输层数据块的最大长度为</span></span><span style="font-family:等线;font-size:16px;">255-5(</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">链路层</span></span><span style="font-family:等线;font-size:16px;">control + source + destination</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">）</span></span><span style="font-family:等线;font-size:16px;">-1</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">（</span></span><span style="font-family:等线;font-size:16px;">TH</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">）</span></span><span style="font-family:等线;font-size:16px;">= 249</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">。</span></span></p><p style="text-align:left;line-height:24px;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">当应用用户数据长度大于</span></span><span style="font-family:等线;font-size:16px;">249</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">字节时，传输层将以多帧报文方式传送，并每帧前加</span></span><span style="font-family:等线;font-size:16px;">TH</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">控制字。如</span></span><span style="font-family:等线;font-size:16px;">1234=249+249+249+249+238</span><span style="font-family:等线;font-size:16px;">,</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">分</span></span><span style="font-family:等线;font-size:16px;">5</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">帧</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">进行</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">传送。</span></span></p><p><br/></p><h2><strong><span style="font-weight:bold;font-size:21px;"><span style="font-family:等线 Light;">三、应用层规约</span></span></strong></h2><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">本文本定义了应用层报文</span></span><span style="font-family:等线;font-size:16px;">(APDU)的格式。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">主站被定义为发送请求报文的站，而</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">从站则为从属设备。</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">被请求回送报文</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">的</span></span><span style="font-family:等线;font-size:16px;">RTU或智能终端 (IEDS)</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">是事先规定了的。在</span></span><span style="font-family:等线;font-size:16px;">D</span><span style="font-family:等线;font-size:16px;">NP</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">中，只有被指定的主站能够发送应用层的请求报文，而从站则只能发送应用层的响应报文。</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">应用报文格式：</span></span></p><p style="text-align:left;"><span style="font-family:Helvetica;color:rgb(0,0,0);font-size:20px;"> </span></p><table width="565" cellspacing="0"><tbody><tr style="height:68px;"><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="141" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Request Header</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">请求报文</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="132" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Object Header</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">对象标题</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="65" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Data</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">数据</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="142" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Object Header</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">对象标题</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="84" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Data</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">数据</span></p></td></tr></tbody></table><p style="text-align:left;"><span style="font-family:Helvetica;color:rgb(0,0,0);font-size:20px;"> </span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;">1. </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">应用响应报文格式</span></span><span style="font-family:等线;font-size:16px;">:</span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:19px;"> </span></p><table width="565" cellspacing="0"><tbody><tr style="height:68px;"><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="141" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Response Header</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">请求报文</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="132" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Object Header</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">对象标题</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="65" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Data</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">数据</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="142" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Object Header</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">对象标题</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="84" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Data</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">数据</span></p></td></tr></tbody></table><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">请求</span>(响应)报头：标识报文的目的，包含应用规约控制信息(ACPI)</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">对象标题：标识随后的数据对象</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">数据：在对象标题内的指定的数据对象</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">2</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">．</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">应用报文报头字段的定义：</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">请求报头有两个字段。每个字段为</span>8位的字节</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">说明如下：</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><table cellspacing="0"><tbody><tr style="height:60px;"><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="189" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Application Control</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">应用控制</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="364" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Function Code</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">功能码</span></p></td></tr></tbody></table><p style="line-height:24px;"><span style="font-family:宋体;font-size:20px;"> </span></p><p style="line-height:24px;"><span style="font-family:宋体;font-size:20px;"><span style="font-family:宋体;">响应报头有三个字段。</span></span><span style="font-family:宋体;font-size:20px;"><span style="font-family:宋体;">前两个字段为</span></span><span style="font-family:Arial;font-size:20px;">8</span><span style="font-family:宋体;font-size:20px;"><span style="font-family:宋体;">位的字节，第三个字段为两个字节，说明如下：</span></span></p><p style="line-height:13px;"><span style="font-family:等线;font-size:13px;"> </span></p><table cellspacing="0"><tbody><tr><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="189" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Application Control</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">应用控制</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="151" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Function Code</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">功能码</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="213" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Internal Indication</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">内部信号字</span></p></td></tr></tbody></table><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5127877237851662" data-s="300,640" style="" data-type="png" data-w="1564" src="https://wechat2rss.xlab.app/img-proxy/?k=f2af937c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90vUPFSmGGofgtuMQq1my9mn1UpicvUKOKe5qgLvWdcJAY2IiapBeYkZEQ%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="line-height:27px;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">应用控制：一个字节的长度，格式如下：</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">FIR ：此位置“ 1” , 表示本</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">报文分段是整个应用报文的第一个分段</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">FIN ：此位置“ 1” , 表示本</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">报文分段是整个应用报文的最后一个分段</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">CON ：此位置“1” , 表示接受到本</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">报文时，对方须要给予确认，为</span>“0”则不需要</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">序号：表示分段的序号，</span></span><span style="font-family:等线;font-size:16px;">1-15</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">功能</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">码：标识报文的目的，一个字节的长度</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">例如：请求报文：</span></span></p><p style="text-indent:48px;text-align:left;"><span style="font-family:等线;font-size:16px;">0</span><span style="font-family:等线;font-size:16px;">x</span><span style="font-family:等线;font-size:16px;">01 </span><span style="font-family:等线;font-size:16px;">-</span><span style="font-family:等线;font-size:16px;">- </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">读，请从站读所指定的数据对象</span></span></p><p style="text-indent:48px;text-align:left;"><span style="font-family:等线;font-size:16px;">0x02 </span><span style="font-family:等线;font-size:16px;">-</span><span style="font-family:等线;font-size:16px;">- </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">写，向从站写入指定的数据对象</span></span></p><p style="text-indent:48px;text-align:left;"><span style="font-family:等线;font-size:16px;">……</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">上图数据包分析此处为写信号</span>write</span><span style="font-family:等线;font-size:16px;"> </span><span style="font-family:等线;font-size:16px;">(0x</span><span style="font-family:等线;font-size:16px;">02)</span></p><p style="text-align:left;"><span style="font-family:STSongStd-Light-Acro;color:rgb(0,0,0);font-size:20px;"><span style="font-family:宋体;">内部信号：</span> </span></p><p style="text-align:left;"><span style="font-family:STSongStd-Light-Acro;color:rgb(0,0,0);font-size:20px;"><span style="font-family:宋体;">共两个字节，</span> </span><span style="font-family:Helvetica;color:rgb(0,0,0);font-size:20px;">16</span><span style="font-family:STSongStd-Light-Acro;color:rgb(0,0,0);font-size:20px;"><span style="font-family:宋体;">位，每一位分别表示从站的当前的各种状态。</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">3．对象标题 (Object Header)：</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">报文的对象标题指定包含在报文中的数据对象或是被用来响应此报文的数据对象。格式如下：</span></span></p><table cellspacing="0"><tbody><tr><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="141" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Object</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">对象</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="180" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Qualifier</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">限定词</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="232" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Range</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">变程（范围）</span></p></td></tr></tbody></table><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">对象（</span> Object）：</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">两个字节，指定对象组以及跟在标题后面的对象的变化。对象段的格式如下：</span></span></p><table cellspacing="0"><tbody><tr><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="277" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Group</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">对象组</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="277" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Variation</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">变体</span></p></td></tr></tbody></table><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">对象段规定一个对象组和在该组内的对象变体。对象的组别与变体结合起来可以唯一的规定报文所指定的对象。对象组指定数据的基本形式（如：模拟输入</span> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">)，对象变体指定数据的形式</span><span style="font-family:等线;font-size:16px;">(</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">如</span>16位模拟输入或32位模拟输入)。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">下图可以看到数组为</span>1个，所以为0x</span><span style="font-family:等线;font-size:16px;">01</span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.48250265111346763" data-s="300,640" style="" data-type="png" data-w="1886" src="https://wechat2rss.xlab.app/img-proxy/?k=c682c185&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90x0zSdALADjaDje80ibfzvsy804oBtxAjbbS0QiaqST4nmFnKLviaqibn2Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="margin-top:10px;margin-bottom:10px;"><span style="font-family:等线;font-size:16px;">3</span><span style="font-family:等线;font-size:16px;">2 01</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">这里表达的意思为要读取的数据的基本类型，上图的数据包为</span>Time的类型</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">07</span><span style="font-family:等线;font-size:16px;"> <span style="font-family:等线;">为限定词。</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">限定词为一个</span> 8位的字节段，规定交程段的意义。变程说明数据对象的数量，起点和终点的索引成所讨论的对象的标识符。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">限定词段的格式如下</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">：</span></span></p><table cellspacing="0"><tbody><tr><td style="padding: 0px 7px;border-color: windowtext;border-style: solid;border-width: 1px;" width="47" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">R</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="217" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Index Size</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">索引规模</span></p></td><td style="padding: 0px 7px;border-color: windowtext windowtext windowtext currentcolor;border-style: solid solid solid none;border-width: 1px 1px 1px medium;" width="289" valign="top"><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">Qualifier Code</span></p><p style="text-align:center;"><span style="font-family:等线;font-size:16px;">4位限定词码</span></p></td></tr></tbody></table><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">R：保留位，置为零。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">索引规模（</span> Index Size)：</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">3个Bits，规定前置于每个数据对象的索引规模或对象的规模。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">在请求报文中，当限定词码</span> (Qualifier Code) 等于 11时,1、2、3分别代表数据对象前的索引是1、2、4个字节。0无效</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">。</span></span><span style="font-family:等线;font-size:16px;"> 4、5、6、7保留。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">限定词码</span> (Qualifier Code) ：</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">4个Bits，用以规定变程 (Range) 意义。当限定词码取值 0～5时，变程段包含1个开始范围 (Start Range) 和1个结束范围 (Stop range)。当限定词码取值 6时，则 Range 段的长为零 (即无变程段 )，因为所指定的是所要求的数据类型的全部数据对象。当限定词码取值为 7～ 9 时，则变程段由一个计数值所组成，它指明所讨论的数据对象的数目。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">限定词段中限定词码和索引规模的有效组合主要有</span>“0x00，0x01，0x02，0x03，0x04，0x05</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，</span></span><span style="font-family:等线;font-size:16px;">0x40，0x43，0x51， 0x54，0x62，0x65，0x07，0x17，0x27，0x37，0x08，0x18，0x28， 0x38，0x09，0xl9，0x29</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，</span></span><span style="font-family:等线;font-size:16px;">0x39，0xlb，0x2b，0x3b。</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">上图可以看到，此处的</span></span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">限定词码</span>(Qualifier Code)</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">为</span>0x</span><span style="font-family:等线;font-size:16px;">07</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">我们用一张图来概括</span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.2808460634547591" data-s="300,640" style="" data-type="png" data-w="1702" src="https://wechat2rss.xlab.app/img-proxy/?k=b1324544&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90BaIicH29avjoVzfskx82TcGMW5D7FlfPiczKa3d89uS69nLyS91L6jRg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">好了，到这个地方，</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">协议规约大致就是这样，那么下面我们来看看它的安全问题。</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><strong><span style="font-family:等线;font-weight:bold;font-size:16px;"><span style="font-family:等线;">安全风险分析：</span></span></strong></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">协议和大多数工控协议一样，在</span>T</span><span style="font-family:等线;font-size:16px;">CP</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">上进行传输时都是未作加密处理的，所以存在中间人攻击和数据重放攻击等安全风险。</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">本文以文件读取为例子，来讲讲通过协议构造任意文件读取。</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">通过下图我们可以知道，读取文件的函数操作码为</span>0</span><span style="font-family:等线;font-size:16px;">x19</span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5645863570391872" data-s="300,640" style="" data-type="png" data-w="1378" src="https://wechat2rss.xlab.app/img-proxy/?k=3349ca8e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90QUs4eNd04eSmrMib8CaibvbPsZrYlrUSLXsdoicuC1wseibwJ1K0Mj3Qjg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">按照读取文件的大致过程为</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">打开文件</span>(</span><span style="font-family:等线;font-size:16px;">O</span><span style="font-family:等线;font-size:16px;">pen</span><span style="font-family:等线;font-size:16px;">)-&gt;</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">读取文件</span>(</span><span style="font-family:等线;font-size:16px;">Read)-&gt;</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">关闭文件</span>(</span><span style="font-family:等线;font-size:16px;">C</span><span style="font-family:等线;font-size:16px;">lose</span><span style="font-family:等线;font-size:16px;">)</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">所以，我们需要发送三次完整的数据包就可以读取到文件了，</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">现在我们来构造数据包</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">前</span>1</span><span style="font-family:等线;font-size:16px;">0</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">个字节为固定字节，所以我们分成两段，第一段定义为</span>Header，第二段定义为Body</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p><span style="font-family:等线;font-size:16px;">H</span><span style="font-family:等线;font-size:16px;">eader</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">为</span>:</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">数据头</span>(</span><span style="font-family:等线;font-size:14px;">0564)+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">数据包总长度</span>(后面总长度</span><span style="font-family:等线;font-size:14px;">)+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">链路控制</span>c</span><span style="font-family:等线;font-size:14px;">4+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">目的源地址</span>+校检码</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">Bod</span><span style="font-family:等线;font-size:16px;">y</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">这个地方只有几处需要注意的地方，其他的地方直接置</span>0即可，然后就是一些固定的格式操作码，我们不用改变它，所以构造出来的格式就为</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">链路控制</span>c</span><span style="font-family:等线;font-size:14px;">1+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">打开文件操作码</span>(</span><span style="font-family:等线;font-size:14px;">19)+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">数组</span>0</span><span style="font-family:等线;font-size:14px;">1+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">后面字节总数</span>+文件名偏移地址</span><span style="font-family:等线;font-size:14px;">+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">文件名长度</span></span><span style="font-family:等线;font-size:14px;">+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">文件句柄</span></span><span style="font-family:等线;font-size:14px;">+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">文件操作码</span></span><span style="font-family:等线;font-size:14px;">+</span><span style="font-family:等线;font-size:14px;"><span style="font-family:等线;">文件缓冲区</span>+文件名</span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">解决完这些格式之后呢，我们就只需要再解决</span>C</span><span style="font-family:等线;font-size:16px;">RC</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">校检的问题就可以了</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;">D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">使用的是</span>dn</span><span style="font-family:等线;font-size:16px;">p16</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">的校检，也就是每隔</span>1</span><span style="font-family:等线;font-size:16px;">6</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">位就检查一次，我们这里用</span>python来解决这个，在python里面有个包叫做</span><span style="font-family:等线;font-size:16px;">crccheck</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">，它里面已经有了</span>dnp</span><span style="font-family:等线;font-size:16px;">16</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">这个校检函数，所以我们可以直接拿来用，最后根据规约格式，就可以很轻松编写出代码来</span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">我们打开</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">服务器，将开放</span>2</span><span style="font-family:等线;font-size:16px;">0000</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">端口</span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6407563025210085" data-s="300,640" style="" data-type="png" data-w="1904" src="https://wechat2rss.xlab.app/img-proxy/?k=e1047df4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90V71AIurZ8F5NGTCgXaYq3lHIpFsib5dkIicAQcC2B2ntKvlia3wJ4cIuA%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">利用我们写好的工具进行测试，就可以成功读取</span>win</span><span style="font-family:等线;font-size:16px;">.ini</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">文件，这里只能读取一部分文件，想要读取全部文件需要计算偏移</span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5166487647690655" data-s="300,640" style="" data-type="png" data-w="1862" src="https://wechat2rss.xlab.app/img-proxy/?k=3d603382&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90SKSF6PcwGXtI8y0IibN6ecaagtnYgIp5HAxAVukvicf7EQdD7qzLsAWQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;margin-bottom: 0em;"><br/></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">通过抓包，我们可以看到具体的流量情况<br/></span></span></p><p style="text-align:left;"><br/></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5284837861524978" data-s="300,640" style="" data-type="png" data-w="2282" src="https://wechat2rss.xlab.app/img-proxy/?k=e366b446&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90fXAmOibLXgDCGs9bALPo3ib4EbalEjUC6BichyP0fu9At57JNTGmA9Pzw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><br/><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;"></span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">具体的通信过程为：</span></span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;">1. </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">请求打开文件<br/></span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.566747572815534" data-s="300,640" style="" data-type="png" data-w="1648" src="https://wechat2rss.xlab.app/img-proxy/?k=185040aa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90U0IlKp4phQ3XCPSEEibaJejnmmEiaAVCAUHWdjQQ1IeibRNicWPzvaaM4Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="margin-left:24px;text-align:left;"><br/></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;">2. </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">然后</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">服务器返回文件句柄等信息</span></span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;"></span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5501355013550135" data-s="300,640" style="" data-type="png" data-w="1476" src="https://wechat2rss.xlab.app/img-proxy/?k=ada967df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90YxEQcoibfhPbU4cga5NRl4oLFtVLicibGAOxmiaL6FXnibpX4VCUEaLBGsA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;margin-bottom: 0em;"><br/></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;">3. </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">我们拿着这个句柄去读取文件的内容</span></span><br/><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;"></span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.581989247311828" data-s="300,640" style="" data-type="png" data-w="1488" src="https://wechat2rss.xlab.app/img-proxy/?k=4038f3c2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90leibxmuSq1oBB5A5s0M9E0rqbmAFRNKs6nYfCkSORNoqQeYyEUU6tHg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;margin-bottom: 0em;"><br/></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;">4. </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">最后返回我们读取的文件信息</span></span><br/><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;"></span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5447852760736196" data-s="300,640" style="" data-type="png" data-w="1630" src="https://wechat2rss.xlab.app/img-proxy/?k=7372343b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub907ktVQ7nRseLdbduUtSNQL5j4jGkvz0COoib9sBiajib4wAk0mm78ibY4jg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="margin-left:24px;text-align:left;"><span style="font-family:等线;font-size:16px;">5. </span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">关闭文件句柄</span></span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6714905933429812" data-s="300,640" style="" data-type="png" data-w="1382" src="https://wechat2rss.xlab.app/img-proxy/?k=1ca0d407&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRic2SD1rcshdgK8xe5OJub90Yw27S7kXEYNibxxS9jHThHzAy8k3OoEyJOsn5IvjDOjmRTiaECvWhZicQ%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;"><strong><span style="font-family:等线;font-weight:bold;font-size:16px;"><span style="font-family:等线;">总结</span></span></strong></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">通过对</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">协议的大致分析，我们可以知道，</span>D</span><span style="font-family:等线;font-size:16px;">NP3</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">在</span>T</span><span style="font-family:等线;font-size:16px;">CP</span><span style="font-family:等线;font-size:16px;"><span style="font-family:等线;">上传输时如果通信双方没有约定一定的加密技术，那么很容易被发包伪造数据，对设备进行攻击。</span></span></p><p><br/></p><p style="text-align:left;"><strong><span style="font-family:等线;font-weight:bold;font-size:16px;"><span style="font-family:等线;">引用：</span></span></strong></p><p style="text-align:left;"><span style="text-decoration:underline;"><span style="font-family:等线;color:rgb(5,99,193);text-underline:single;font-size:16px;"><a href="https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-dnp.c" target="_blank">https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-dnp.c</a></span></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><a href="https://www.anquanke.com/post/id/187221" target="_blank">https://www.anquanke.com/post/id/187221</a></span></p><p style="text-align:left;"><span style="font-family:等线;font-size:16px;"><a href="https://www.docin.com/p-630530021.html?docfrom=rrela" target="_blank">https://www.docin.com/p-630530021.html?docfrom=rrela</a></span></p><p><br/></p>



<p><a href="2247484031">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=c04bbe4a&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2ODQwNzAzNw%3D%3D%26mid%3D2247484031%26idx%3D1%26sn%3D3fd1da85a5106e46619edc48a32033c6%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 22 Apr 2022 08:00:00 +0800</pubDate>
    </item>
    <item>
      <title>窥探CVE-2018-8120与exploit编写</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzI2ODQwNzAzNw==&amp;mid=2247484012&amp;idx=1&amp;sn=9ef0ebd20751aa2aeb31cb783e0b804a</link>
      <description>环境： win7  x86一、 概要前面的文章写了，要实现一个exploit的编写，分析的方向就要放在漏洞点</description>
      <content:encoded><![CDATA[<p>
原创 <span>ProMinions</span> <span>2021-02-01 18:30</span> <span style="display: inline-block;"></span>
</p>

<p>环境： win7  x86一、 概要前面的文章写了，要实现一个exploit的编写，分析的方向就要放在漏洞点</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=d134573c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJiaTib1BENtJero6iaibkfZzwd9p4TSFVSGL1oEeQujTt5qpJWsdc28zf0g%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">环境：</span> win7  x86</span></p><p style="line-height: 150%;"><span style="font-family:宋体;font-size:14px;">一、 </span><span style="font-family:宋体;font-size:14px;">概要</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">前面的文章写了，要实现一个</span>exploit<span style="font-family:宋体;">的编写，分析的方向就要放在漏洞点的下半部分，</span></span></p><p style="text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">本文写的是通过</span>IOCL<span style="font-family:宋体;">对象进行的池溢出，参考的是</span></span><span style="text-decoration:underline;"><span style="font-family: 宋体;color: rgb(128, 0, 128);">b2ahex</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">的文章，因为别的都是利用是</span>BITMAP<span style="font-family:宋体;">进行布局。</span></span></p><p style="margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">二、 </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">自己对</span>Exploit<span style="font-family:宋体;">的理解</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">要写一个</span>Exploit<span style="font-family:宋体;">，首先就要梳理以下几点：</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">1. </span><span style="font-family:宋体;font-size:14px;">目前该漏洞的利用方向是什么（好像大多数都是提权）。</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">2. </span><span style="font-family:宋体;font-size:14px;">根据利用方向再寻找利用的位置，以及该位置的元素（参数）是否可控。</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">因为</span>CVE-2018-8120<span style="font-family:宋体;">的利用点是任意读写，最大利用就是提权。因此我们从提权的角度开始研究。</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">1. </span><span style="font-family:宋体;font-size:14px;">首先要明白的事情是何为提权？</span></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">用语言描述就是权限提升，从普通用户权限提升到了管理员权限。那么对应到代码的世界是什么呢？其实就是</span>cs<span style="font-family:宋体;">、</span><span style="font-family:Calibri;">ss</span><span style="font-family:宋体;">、</span><span style="font-family:Calibri;">EIP</span><span style="font-family:宋体;">和</span><span style="font-family:Calibri;">ESP</span><span style="font-family:宋体;">（也诠释了各种门的设计）（微观角度），如果在加上一条那便是</span><span style="font-family:Calibri;">ACL</span><span style="font-family:宋体;">机制</span><span style="font-family:Calibri;">-</span><span style="font-family:宋体;">常用就是</span><span style="font-family:Calibri;">TOKEN</span><span style="font-family:宋体;">）（宏观角度）的控制。</span></span></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">举个列子：</span></p><p style="margin-left:56px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">从应用层代码到了内核层，但是由于通过漏洞我们控制了</span>cs<span style="font-family:宋体;">、</span><span style="font-family:Calibri;">ss</span><span style="font-family:宋体;">、</span><span style="font-family:Calibri;">EIP</span><span style="font-family:宋体;">和</span><span style="font-family:Calibri;">ESP</span><span style="font-family:宋体;">，从而执行了我们预先安排好的代码，创建了</span><span style="font-family:Calibri;">CMD</span><span style="font-family:宋体;">进程，并进行了</span><span style="font-family:Calibri;">token</span><span style="font-family:宋体;">的替换，在用户层使用</span><span style="font-family:Calibri;">whoami</span><span style="font-family:宋体;">指令查看用户，就会发现是管理员权限。</span></span></p><p style="margin-left:56px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;">(1) </span><span style="font-family:宋体;font-size:14px;">从上面自己的看法中，因此编写这个程序分为两点去考虑。</span></p><p style="margin-left:84px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;">① </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">微观的把控，其实就是寻找可以任意读写的位置，通过这个位置，执行指定位置的</span>shellcode<span style="font-family:宋体;">。</span></span></p><p style="margin-left:84px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;">② </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">宏观的把控，修改</span>ACL<span style="font-family:宋体;">的规则，常用的就是替换</span><span style="font-family:Calibri;">Token</span><span style="font-family:宋体;">。</span></span></p><p style="margin-left:56px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;">(2) </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">通过中断门实验看待这</span>2<span style="font-family:宋体;">点，我觉得可以得出，宏观的把控是为了上层更好的利用，以及简便的考虑，其实微观的把控才是最重要的。因为中断门就是把控了微观的角度，从而让</span><span style="font-family:Calibri;">R3</span><span style="font-family:宋体;">某个函数具有</span><span style="font-family:Calibri;">R0</span><span style="font-family:宋体;">的权限。</span></span></p><p style="margin-left:0;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">2. </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">简而言之，</span>exploit<span style="font-family:宋体;">就是对微观和宏观控制的诠释。</span></span></p><p style="margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">三、 </span><span style="font-family:宋体;font-size:14px;">分析</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">1. </span><span style="font-family:宋体;font-size:14px;">找到可以利用的位置</span></p><p style="text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">从漏洞点的位置出发，可以看到敏感函数</span> qmemcpy<span style="font-family:宋体;">，那么它是否就是利用点呢？还要看它的参数是否能被我们控制。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7361516034985423" data-s="300,640" style="" data-type="png" data-w="686" src="https://wechat2rss.xlab.app/img-proxy/?k=acecc2d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJXtf3o3wxyDdw7BINIXQyenmSW5UNdqkNjibnoHWq1ytrjrmYgBn7afA%2F640%3Fwx_fmt%3Dpng"/></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">从上图不难看出，它的第一个参数</span>V4<span style="font-family:宋体;">的来源于</span><span style="font-family:Calibri;">V3</span><span style="font-family:宋体;">，</span><span style="font-family:Calibri;">V2</span><span style="font-family:宋体;">的参数来源于这个函数本身的参数。于是焦点就变成了这个函数的两个参数是否可控，那便就要看上一层。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7992831541218638" data-s="300,640" style="" data-type="png" data-w="558" src="https://wechat2rss.xlab.app/img-proxy/?k=695c0a7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJ44lJFYfHKLRdYGvMkIwVjWo1tXCp6fHET7Eq1E4HwzgIPOOeasrL6Q%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这个函数的</span>v2<span style="font-family:宋体;">来源于</span><span style="font-family:Calibri;">GetProcessWindowStation</span><span style="font-family:宋体;">函数，对于分析过这个漏洞的人，应该知道这个是可控的，而</span><span style="font-family:Calibri;">V4</span><span style="font-family:宋体;">来源于</span><span style="font-family:Calibri;">V1</span><span style="font-family:宋体;">。此时我们可以可以断定</span><span style="font-family:Calibri;">qmemcpy</span><span style="font-family:宋体;">就是利用位置。</span></span></p><p style="margin-left:0;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">2. </span><span style="font-family:宋体;font-size:14px;">顺序分析注意的点</span></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">为什么要进行这一步呢？这是因为为了保证构造的数据要走到漏洞利用的位置。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.878839590443686" data-s="300,640" style="" data-type="png" data-w="586" src="https://wechat2rss.xlab.app/img-proxy/?k=4d5db115&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJvo6zDKTPhuK9aQEogQB7a3icGD1bviaib6ia75gXX4hx2rBRDYpWnW2icQQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.2986003110419907" data-s="300,640" style="" data-type="png" data-w="643" src="https://wechat2rss.xlab.app/img-proxy/?k=550ada4e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJ9n58gSbDxxyklZrqKR7s7d8Pr2ldbffxLD7aYICdibNaAfsNDv1D64w%2F640%3Fwx_fmt%3Dpng"/></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">由上图可知，参数</span>1+0x14(<span style="font-family:宋体;">为</span><span style="font-family:Calibri;">NULL)+0x2c(</span><span style="font-family:宋体;">填充目的位置</span><span style="font-family:Calibri;">)+0x48(</span><span style="font-family:宋体;">为</span><span style="font-family:Calibri;">NULL)</span><span style="font-family:宋体;">，满足这几个条件才可以走到我们的利用点的位置。</span></span></p><p style="margin-left:0;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">3. </span><span style="font-family:宋体;font-size:14px;">总体流程图</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7905263157894736" data-s="300,640" style="" data-type="png" data-w="950" src="https://wechat2rss.xlab.app/img-proxy/?k=9eca5960&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJDGwxtUrVObS6PJ8XncrpEJ97H7dOtV2COyQicm83ZITX0ebMOhz4Zeg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">由于可以控制读写的位置，所以控制这个位置到池的位置，覆盖池的某些位置来达到触发</span>shellcode<span style="font-family:宋体;">代码。</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">其实主要是为了溢出池中对象头的</span>TypeIndex<span style="font-family:宋体;">。通过构造</span><span style="font-family:Calibri;">TypeIndex=0</span><span style="font-family:宋体;">（这里涉及到使用零页面），通过对象执行某些回调函数，来达到执行</span><span style="font-family:Calibri;">shellcode</span><span style="font-family:宋体;">的目的。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.48533724340175954" data-s="300,640" style="" data-type="png" data-w="682" src="https://wechat2rss.xlab.app/img-proxy/?k=626312c1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJJibwWicxFXfVQEyn1beCLOKBxfkb2lXviafXVSN9jJYxTuPGYibiakRwS6g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">常见的方法就是通过</span>closehandle<span style="font-family:宋体;">来执行相应的回调。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8828451882845189" data-s="300,640" style="" data-type="png" data-w="717" src="https://wechat2rss.xlab.app/img-proxy/?k=4e7f46d3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJht0lRLab7uq7uWOYt2SNZcORicFB9sBcASeibF6aiaGdysewXic4nZr09A%2F640%3Fwx_fmt%3Dpng"/></p><p style="margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">四、 </span><span style="font-family:宋体;font-size:14px;">代码编写思路</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">采用的方式是池溢出：</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">池</span><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">喷射最重要的就是构造</span></span><span style="font-family:宋体;font-size:14px;">池</span><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">的布局，为了稳定性，可以选择泄漏内核地址（</span>NtQuerySystemInformation<span style="font-family:宋体;">）</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.47929936305732485" data-s="300,640" style="" data-type="png" data-w="628" src="https://wechat2rss.xlab.app/img-proxy/?k=6a875ffb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJw5AouV3L8KnibKmByojL3iasiaSYMGt1P2wicQ5xr1cibusW1kIyMZw2f1g%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">其次池的布局已经构造完毕，但是由于只能拷贝</span>0x15c<span style="font-family:宋体;">个字节，所以我们要计算从相邻的空闲池的哪个位置开始复制。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7310789049919485" data-s="300,640" style="" data-type="png" data-w="621" src="https://wechat2rss.xlab.app/img-proxy/?k=7a15bbb1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJR7jUsDrFWTjeia67svGUjMcA2GoiaEvDEeTtyrby8wd4v6f44Oj7bzAA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">推导公式</span>:</span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">开始复制的地址</span>  +0x15c  = <span style="font-family:宋体;">泄露的内核地址 </span><span style="font-family:Calibri;">-0xC +1(+1</span><span style="font-family:宋体;">是为了将这个地址重写了，而不是刚好到这里</span><span style="font-family:Calibri;">)</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">公式</span>:   <span style="font-family:宋体;">开始复制的地址 </span><span style="font-family:Calibri;">= </span><span style="font-family:宋体;">泄露的内核地址 </span><span style="font-family:Calibri;">- 0xC +1 - 0x15c  =    </span><span style="font-family:宋体;">泄露的地址</span><span style="font-family:Calibri;">-0xC-0x15b</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">由于要覆盖</span> POOL_HEADER + OBJECT_HEADER_QUOTA_INFO + OBJECT_HEADER<span style="font-family:宋体;">（中的</span><span style="font-family:Calibri;">TypeIndex</span><span style="font-family:宋体;">） </span></span><span style="font-family:宋体;font-size:14px;">，</span><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">计算大小为</span> 0x23<span style="font-family:宋体;">个字节， 因此需要构造</span><span style="font-family:Calibri;">UserBuffer</span><span style="font-family:宋体;">最后</span><span style="font-family:Calibri;">0x23 </span><span style="font-family:宋体;">个字节</span></span><span style="font-family:宋体;font-size:14px;">。</span></p><p style="margin-left:420px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">代码见附件</span>1</span></p><p style="margin-left:0;text-indent:0;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">五、 </span><span style="font-family:宋体;font-size:14px;">BUG<span style="font-family:宋体;">调试</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">刚开始我的代码是构造了一个裸函数来进行残根函数调用，但是总是堆栈总是会少一个值，需要自己</span>push<span style="font-family:宋体;">一下，才可以堆栈平衡。这是因为裸函数外部也会实现一个 </span><span style="font-family:Calibri;">add esp,4</span><span style="font-family:宋体;">。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.15466101694915255" data-s="300,640" style="" data-type="png" data-w="944" src="https://wechat2rss.xlab.app/img-proxy/?k=de857d86&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJwvwCGTvTicEy7Lctib1aG0k6RNRo3AjLqTx5sooIk6GSJ72qsLQc3w9g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">后来我也尝试了一下</span><span style="text-decoration:underline;"><span style="font-family: 宋体;color: rgb(128, 0, 128);">b2ahex</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">的方法，但是发现他会</span>push<span style="font-family:宋体;">两次，比较好奇，我尝试了</span><span style="font-family:Calibri;">push</span><span style="font-family:宋体;">一次，那么就直接</span><span style="font-family:Calibri;">BSOD</span><span style="font-family:宋体;">。为什么会导致这个问题呢？其实可以通过分析系统写的函数来观察这个堆栈。</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">以</span>ZwOpenProcess<span style="font-family:宋体;">为例：</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.21320495185694635" data-s="300,640" style="" data-type="png" data-w="727" src="https://wechat2rss.xlab.app/img-proxy/?k=f9f912b9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJk3N3VxsGnibC3Tys7UibYLlxJhHmdicEMfdoRqB7xPmbn2vQiawwkea40A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.11202185792349727" data-s="300,640" style="" data-type="png" data-w="732" src="https://wechat2rss.xlab.app/img-proxy/?k=2e33b43d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJboopJ2M6PZwR3LbadtKmzFJ5O8z55xHq5rMma0LGBShBQT57PoVBRg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">堆栈是这样的：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5659163987138264" data-s="300,640" style="" data-type="png" data-w="311" src="https://wechat2rss.xlab.app/img-proxy/?k=287877c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJicYBCGBicm6xQjrY0miat9SQfuE4icH3ibc10z9IrS709cdKGJgI2I46tAA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">但是如果少压入一个值的话，堆栈就会变成：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6752767527675276" data-s="300,640" style="" data-type="png" data-w="271" src="https://wechat2rss.xlab.app/img-proxy/?k=50713280&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJY5ZH5yEZAQP50nNFChVqoEbmoNJibaPicC80qEMyjPBkdPzsBh2TkPQg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">其实这样的堆栈只会影响</span>R0<span style="font-family:宋体;">拷贝</span><span style="font-family:Calibri;">R3</span><span style="font-family:宋体;">的参数：</span></span></p><p style="margin-left:28px;text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">在</span>KiFastCallEntry<span style="font-family:宋体;">的时候会将参数拷贝过去，但是会从</span></span><span style="font-family:Calibri;color:rgb(255,0,0);font-size:14px;"><span style="font-family:宋体;">残根函数返回地址</span>+8</span><span style="font-family:宋体;color:rgb(255,0,0);font-size:14px;"><span style="font-family:宋体;">（</span>esp<span style="font-family:宋体;">）</span></span><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">的位置进行拷贝</span></span><span style="font-family:宋体;font-size:14px;">，如果我们不压入一个值，那么拷贝的就是随机值，就会导致蓝屏。</span></p><p style="text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">验证这个结论：</span></span></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;">这是拷贝一个参数的过程。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.303125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=0096c97c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJL0jiaNJoOjRHH0DO1AaMbz3UWVdBB6xhbwbwnUfjCoOB0rnADOxaxoA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3390625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=2bc29940&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJQHUAasqVQBqvvAIPKlVwsDXkDHmhgFm9dRpOzxuqXCymiaAhG6jbqFA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">从下图可以看出来，</span>esp+8<span style="font-family:宋体;">，才等于参数</span></span><span style="font-family:宋体;font-size:14px;">。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3828125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=78c1201c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJ86yeXAk69MNkppNMTpRic6RRdVmlc8JG8KaS5EEAQ52Z3zYuwcV2Niag%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">从上面的</span>KiFastSystemCall<span style="font-family:宋体;">函数可以看出，进入内核给</span><span style="font-family:Calibri;">edx</span><span style="font-family:宋体;">备份一下</span><span style="font-family:Calibri;">esp,</span><span style="font-family:宋体;">方便后续使用</span><span style="font-family:Calibri;">edx</span><span style="font-family:宋体;">进行拷贝参数。此时的</span><span style="font-family:Calibri;">esp</span><span style="font-family:宋体;">指向残根函数的返回地址。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.11202185792349727" data-s="300,640" style="" data-type="png" data-w="732" src="https://wechat2rss.xlab.app/img-proxy/?k=2e33b43d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJboopJ2M6PZwR3LbadtKmzFJ5O8z55xHq5rMma0LGBShBQT57PoVBRg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-autospace:ideograph-numeric;text-align:left;line-height:150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">通过分析，我们会发现进行拷贝的时候会将</span>edx+8<span style="font-family:宋体;">，这也告诉我们微软在设计的时候，就指定了</span><span style="font-family:Calibri;">R3</span><span style="font-family:宋体;">进入内核前存放参数的位置。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.31875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=53d37781&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJrztGzfNs1Y7POQaxSlpJSpxISupadEAPjqTibk2uDKAqyosXY2EGa2A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.49296875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=7b093e79&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJzd3WMj2Ivt84tTu7eQbVyTh7ibShicwMSIKEwAc40cKUXuKBeQ0DTTZw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-autospace:ideograph-numeric;text-align:center;line-height:150%;"><span style="font-family:宋体;font-size:14px;">通过源码再探池管理机制</span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">如果想了解内核池的管理和分配，那么就要分析一下</span>InitializePool<span style="font-family:宋体;">、</span><span style="font-family:Calibri;">MiAllocatePoolPages</span><span style="font-family:宋体;">和</span><span style="font-family:Calibri;">ExAllocatePoolWithTag</span><span style="font-family:宋体;">的函数了。</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">由于</span>ExAllocatePoolWithTag<span style="font-family:宋体;">比较长，后续给出完整的流程。这个函数主要就是网上写的分配的流程，先从</span><span style="font-family:Calibri;">Lookaside</span><span style="font-family:宋体;">、再</span><span style="font-family:Calibri;">ListHead</span><span style="font-family:宋体;">，其次才分配大页。</span></span></p><p style="line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">先看</span>InitializePool<span style="font-family:宋体;">初始化池的函数。</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">此</span></span><span style="font-family:宋体;font-size:14px;">函数</span><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">为指定的池类型初始化池描述符。一旦初始化，该池可用于分配和释放。</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">在系统初始化期间，应针对每种基本池类型调用一次此函数。</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">每个池描述符包含一个用于空闲块的列表头数组。每个列表头保存的块是</span>POOL_BLOCK_SIZE<span style="font-family:宋体;">的倍数。列表</span><span style="font-family:Calibri;">[0]</span><span style="font-family:宋体;">上的第一个元素将大小为</span><span style="font-family:Calibri;">POOL_BLOCK_SIZE</span><span style="font-family:宋体;">的空闲条目链接在一起，第二个元素</span><span style="font-family:Calibri;">[1]</span><span style="font-family:宋体;">将</span><span style="font-family:Calibri;">POOL_BLOCK_SIZE * 2</span><span style="font-family:宋体;">，第三个</span><span style="font-family:Calibri;">POOL_BLOCK_SIZE * 3</span><span style="font-family:宋体;">等的条目链接在一起，最多可容纳一个页面的块数。</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"> </span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">首先会计算</span>PoolTrackTableSize<span style="font-family:宋体;">的大小，获取的办法有两种，一种是注册表指定，一种是使用默认的值。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5684596577017115" data-s="300,640" style="" data-type="png" data-w="818" src="https://wechat2rss.xlab.app/img-proxy/?k=1b59c875&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJjJUZvbl2CKs1ibH9KuKGTXyDFIWwaINvLncCia6ecoQDw9k0lAw3Fguw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">计算完大小后，就为其分配内存空间。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.09941520467836257" data-s="300,640" style="" data-type="png" data-w="684" src="https://wechat2rss.xlab.app/img-proxy/?k=049eaf24&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJA9rGbKRk5E7HVibrZSicRGbUsJwxGdKUXibjTnUOsvFoj72oHv4HLwk7w%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">其次会使用</span>Hash<span style="font-family:宋体;">算法为这块内存初始化</span><span style="font-family:Calibri;">tag</span><span style="font-family:宋体;">标签。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.128125" data-s="300,640" style="" data-type="png" data-w="320" src="https://wechat2rss.xlab.app/img-proxy/?k=8fdcaa57&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJgmz9AApqcLJuCExsSVO1piaJX0uGwlrzAiag8tseABgAJfw6NpLpsnPg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">接下来，使用同样的算法，申请</span>PoolBigPageTable<span style="font-family:宋体;">表，</span><span style="font-family:Calibri;">PoolBigPageTable</span><span style="font-family:宋体;">申请后，会有一个初始化过程。也就是将其中</span><span style="font-family:Calibri;">va</span><span style="font-family:宋体;">成员置为</span><span style="font-family:Calibri;">0x1</span><span style="font-family:宋体;">，以表示空闲。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.10810810810810811" data-s="300,640" style="" data-type="png" data-w="740" src="https://wechat2rss.xlab.app/img-proxy/?k=d7c2cb35&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJuJsDepP6C1Gw99oiaazhQhy8oKu5MJHLWicCOoLRwialFF6JX4M3Gf30g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.29797191887675506" data-s="300,640" style="" data-type="png" data-w="641" src="https://wechat2rss.xlab.app/img-proxy/?k=1e7b244c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJuTDVK6TMPCBvos4QbKY0y499rIpHukemicrlgaDhWMBOJoFpOX3axiaQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">其次插入到</span>PoolTrackTable<span style="font-family:宋体;">中，这个表通过分析，其实就是用来记录非分页和分页池的使用情况。也可以通过结构观察到其用途。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.25735294117647056" data-s="300,640" style="" data-type="png" data-w="544" src="https://wechat2rss.xlab.app/img-proxy/?k=ef9e3f11&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJ2ictQBb7j3rNux9xm8Qo8lk2Stx6aRMyOQOqoNOIeWwknRwW5wvwLLw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">最后一步就是初始化非分页池的描述符，用来管理非分页池的使用情况。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.33134920634920634" data-s="300,640" style="" data-type="png" data-w="504" src="https://wechat2rss.xlab.app/img-proxy/?k=ddac500d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJWqGeL7aR6icgibgAEdib0aIfia4n6H4sO4skJXu5Vn4IZ98kzhqLbwxcow%2F640%3Fwx_fmt%3Dpng"/></p><p style="line-height: 150%;"><span style="font-family:宋体;font-size:14px;">总结一下：</span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">InitializePool<span style="font-family:宋体;">函数就是先初始化了一个空间用来管理各种池的分配情况，接下来就是初始化了</span><span style="font-family:Calibri;">PoolBigPageTable</span><span style="font-family:宋体;">结构，最后就是初始化了非分页的描述符。</span><span style="font-family:Calibri;">PoolBigPageTable</span><span style="font-family:宋体;">结构的用途目前还不清楚。</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">MiAllocatePoolPages<span style="font-family:宋体;">函数的分析：</span></span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">这个函数主要是用来分配池页面的。</span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">首先会对输入的大小进行向上取整并</span>+1<span style="font-family:宋体;">。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.1243455497382199" data-s="300,640" style="" data-type="png" data-w="764" src="https://wechat2rss.xlab.app/img-proxy/?k=e24c54de&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJCTJMxBMVbR6DnLW1rtyDibV1TIUNW9GsPzibicg1OeYaKuORU91xf4iapg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;">BASE_POOL_TYPE_MASK  = 1<span style="font-family:宋体;">，说明了 </span><span style="font-family:Calibri;">0 </span><span style="font-family:宋体;">和 </span><span style="font-family:Calibri;">1</span><span style="font-family:宋体;">才是基础的池类型，同时也验证，只有非分页池和分页池才是基础类型</span></span><span style="font-family:宋体;font-size:14px;">。</span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">当要分配的页面小于</span>1<span style="font-family:宋体;">（页）时，首先是从单链表中获取。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4860335195530726" data-s="300,640" style="" data-type="png" data-w="1074" src="https://wechat2rss.xlab.app/img-proxy/?k=7b5fff4a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJO5n8DNia7VOw8QDOOBBh5xm1M1JSIXEPT0iaicZcpXT4qUG9Zjqv6Gmag%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">如果需要的空间</span> <span style="font-family:宋体;">大于</span>4096</span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">（</span>1<span style="font-family:宋体;">页）</span></span><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">，那么就在空闲的非分页池链表中分配</span></span><span style="font-family:宋体;font-size:14px;">，</span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;">MmNonPagedPoolFreeListHead<span style="font-family:宋体;">链表有四个，要从哪个链表中开始分配是由 需要的页数决定的。（注意：这里是开始分配）</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4478442280945758" data-s="300,640" style="" data-type="png" data-w="719" src="https://wechat2rss.xlab.app/img-proxy/?k=8e3b42ce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJAYz5oqZzJI8lKP3ciadwKqpq8RZoALWEk68zpZCYkQb8v3XBD346ibaA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">找到指定的链表后，判断其大小，如果满足就开始进行分配</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4611973392461197" data-s="300,640" style="" data-type="png" data-w="902" src="https://wechat2rss.xlab.app/img-proxy/?k=70e47e77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJ3PNgdKgK4D8uxbM9aS4zuFtNsCFRher5iboRDKDmgLmBc7YXI0SYmsQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">得出的结构就是</span> <span style="font-family:宋体;">这个池的</span> <span style="font-family:宋体;">开始地址为</span> 0x825c900</span><span style="font-family:宋体;font-size:14px;">。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.1206896551724138" data-s="300,640" style="" data-type="png" data-w="754" src="https://wechat2rss.xlab.app/img-proxy/?k=2e07594a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJIJbRbwpvoric3nCrWRI3zEiaSPUX6L8RHEqVXsPGcNsNz8FmLkmyDokQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:Calibri;font-size:14px;"><span style="font-family:宋体;">从这个算法可以看出，池页面是从最后一个地址开始分配的</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">（也可以反向推导），分配完之后有一个摘链和插链的操作。这一步操作其实是调整链表，因为</span>4<span style="font-family:宋体;">个链表是</span><span style="font-family:Calibri;">1</span><span style="font-family:宋体;">、</span><span style="font-family:Calibri;">2</span><span style="font-family:宋体;">、</span><span style="font-family:Calibri;">3</span><span style="font-family:宋体;">为同一个类型，分配对应的大小，当大于等于</span><span style="font-family:Calibri;">4</span><span style="font-family:宋体;">时，就会从最后一个链表分配。所以有种情况就是当第</span><span style="font-family:Calibri;">4</span><span style="font-family:宋体;">个链表分配后所剩的页数不足</span><span style="font-family:Calibri;">4</span><span style="font-family:宋体;">页时，那么就要将其插入到前面的三个链表中。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6536796536796536" data-s="300,640" style="" data-type="png" data-w="924" src="https://wechat2rss.xlab.app/img-proxy/?k=2cce26e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJWwctzCR3ldx38068ouUiakTP69Rbice7JRauTyPrQHV148WEn8AUPGibw%2F640%3Fwx_fmt%3Dpng"/></p><p style="line-height: 150%;"><span style="font-family:宋体;font-size:14px;">分配完毕后，调整一下记录空闲非分页池的全局变量。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18607442977190877" data-s="300,640" style="" data-type="png" data-w="833" src="https://wechat2rss.xlab.app/img-proxy/?k=80c57b69&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJwB6o7bplPbzUznMs5GxwRd3XGyXhK5QOdpibJDglH0xZuhzVM7UqtMQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">虚拟地址分配了也要在物理地址（</span>PFN<span style="font-family:宋体;">）标识一下，这里可以看出在</span><span style="font-family:Calibri;">PFN</span><span style="font-family:宋体;">中标识了起始分配置位，以及结束分配位置。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.811529933481153" data-s="300,640" style="" data-type="png" data-w="902" src="https://wechat2rss.xlab.app/img-proxy/?k=34f4bcc7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR8fjicfFC34EhFq1B3nbniclJGkJWhZdpGOPbO0tGYzicZKtu3HSfwKPmsCFiccXNibbHlL9cd9MqYNBmg%2F640%3Fwx_fmt%3Dpng"/></p><p style="line-height: 150%;"><span style="font-family:宋体;font-size:14px;">总结一下：</span></p><p style="text-indent: 28px;line-height: 150%;"><span style="font-family:宋体;font-size:14px;">MiAllocatePoolPages<span style="font-family:宋体;">函数就是找到空闲的结点，通过这结点计算分配的位置，最后在物理地址（</span><span style="font-family:Calibri;">PFN</span><span style="font-family:宋体;">）上标记一下。</span></span></p><p><br/></p>



<p><a href="2247484012">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=550c8768&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2ODQwNzAzNw%3D%3D%26mid%3D2247484012%26idx%3D1%26sn%3D9ef0ebd20751aa2aeb31cb783e0b804a%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 01 Feb 2021 18:30:00 +0800</pubDate>
    </item>
    <item>
      <title>空指针解引用分析</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzI2ODQwNzAzNw==&amp;mid=2247483973&amp;idx=1&amp;sn=6d1d4f75844d14611d85de93cc32b863</link>
      <description>一、 概述 1．CVE-2018-8120 是通过一个空指针解引用达到任意读写的漏洞。其实个人感觉单凭空指针</description>
      <content:encoded><![CDATA[<p>
原创 <span>ProMinions</span> <span>2021-01-18 19:25</span> <span style="display: inline-block;"></span>
</p>

<p>一、 概述 1．CVE-2018-8120 是通过一个空指针解引用达到任意读写的漏洞。其实个人感觉单凭空指针</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=99bb102f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXccaIeb5TCqFiaWACMmgwv1dEMXibE8icFLzDqpzS7zIk58W8keibfMngww%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size:19px;font-family:黑体;color:rgb(0,0,0);">一、 概述</span></p><p><span style="font-size:19px;font-family:黑体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">．</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">CVE-2018-8120 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">是通过一个空指针解引用达到任意读写的漏洞。其实个人感觉单凭空指针 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">解引用的危害就是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BSOD</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，但是利用方面还是要配合任意读写漏洞，如果单纯的只是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BSOD </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">那可能充其量算一个 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BUG</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，但是如果能配合任意读写（全称：</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Write What Where</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）那么才算 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">是漏洞。通过思考得出的结论就是漏洞 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">= BUG+</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">利用。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:19px;font-family:黑体;color:rgb(0,0,0);">二、 初识空指针解引用 </span></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">．空指针解引用的伪代码 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）解引用，顾名思义，其实就是对一个指针进行访问其中的值，那么空指针解引用就代 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">表了这个指针是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，所以伪代码如下：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.2618724559023066" data-s="300,640" style="" data-type="png" data-w="737" src="https://wechat2rss.xlab.app/img-proxy/?k=6a19d0e9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXEPtxiczr4ap7X8yJKSLMPdE6jSv7ticE2WwVBd6syVnRg0JI01ySE97A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">2</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）用户层 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">如果这段代码身处在用户层环境，那么就是访问异常，</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0xC0000005 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">错误，这是因为操 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">作系统的顶层异常替我们处理了，所以只会弹出来错误对话框显示出错误码。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">3</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）内核层 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">如果这段代码身处在内核层环境，那么就会直接 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BSOD</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，因为操作系统在派发两次异常 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">后发现没有人能处理，那么直接蓝屏。这也体现了操作系统对于内核层的容错性很低。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">4</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0xC0000005 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">或 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BSOD </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">原因 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这是因为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">处的地址并没有进行挂 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">PTE</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，只是单纯了挂了 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">PDE</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（如下图），简而言 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">之就是没有对应的物理页。此处让我想起了操作系统划分地址空间的时候，都是将虚拟地址 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">当做是空头支票，实际干活的时候还是得靠物理地址。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18193717277486912" data-s="300,640" style="" data-type="png" data-w="764" src="https://wechat2rss.xlab.app/img-proxy/?k=18d5c66d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXRicG35uBA7FIAlMZZgMfPAIfibeHFrUtFLpJ5aRiaNhWTOOxZTIsQvmdg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">2</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">．空指针解引用到任意读写</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）空指针解引用到任意读写的这一步，就是锦上添花扩大战果的一步。如果从空指针解</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">引用这一句代码为分界线，那么此前的很多代码就是造成空指针的原因，此后的代码就是是 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">否能够任意读写的关键（这里有点不严谨，因为还要看是否有</span><span style="font-size:14px;font-family:宋体;color:rgb(255,0,0);">可控</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的元素）。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18802228412256267" data-s="300,640" style="" data-type="png" data-w="718" src="https://wechat2rss.xlab.app/img-proxy/?k=4e01d734&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXPhJicC5BIoDFGEIZ80cUAKRK00SOKtEIWknxfic7uSWkmmtrXkddSAPA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:19px;font-family:黑体;color:rgb(0,0,0);">三、 通过 HEVD 看空指针解引用</span></p><p><span style="font-size:19px;font-family:黑体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">因为不太懂得漏洞什么，所以先挑选一个比较简单的漏洞环境来进行探一探究竟。这 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">有点初时不识君难免有些羞涩的味道。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">源码角度分析</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(1) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞的成因 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞原因就是没有对申请的结构体 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NullPointerDereference </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">判断是否为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，直接调用 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">了其中的函数。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.41569086651053866" data-s="300,640" style="" data-type="png" data-w="854" src="https://wechat2rss.xlab.app/img-proxy/?k=9d0e6657&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXDJmxtiawoRTuicff6icJF3ycsuFKeOmwPC9FTNPGziatg7ONgKOickjERJA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(2) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">利用分析 </span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">我们已经知道了漏洞的原因是直接对一空指针进行解引用，并且利用了空指针进行了一 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个函数的调用。那么我们让此处的空指针变成不是名义上空的指针，并且在该指针调用的函 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">数偏移处进行放置我们的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">shellcode</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，那么达到漏洞利用的效果。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">1. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">申请 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">地址页面内存 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">调用 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NTDLL.NtAllocateVirtualMemory </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数进行为地址为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的位置申请内存，为</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">什么不直接写 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">呢？这是如果写 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的话就由系统确定你的内存从哪里开始申请。如果写 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">别的值，那么这个函数内部会自动向下取整一个页面大小。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.49864864864864866" data-s="300,640" style="" data-type="png" data-w="740" src="https://wechat2rss.xlab.app/img-proxy/?k=2f237e2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXeHmKarPuIp3qOvk3icibbQT1N6S5dLKoseoWf2iaUuzHyLplxUxAhReLw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这也就说明了我们写 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x1-0xFFF</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，都会帮我们分配到 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0-0xFFF </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这个虚拟地址空间的 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">内存。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">其次要想这个函数真正内部做了什么东西（以后详细分析，这里简述）。其实这个</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数并没有直接帮我们申请到物理页面，我们通过可以分析后可知，这个函数调用完之</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">后，并没有帮我们挂上</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">PTE</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，那么它到底做了什么呢？其实它只是帮我们申请了虚拟地 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">址，也在虚拟内存中申请一个 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">VAD </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">来保留一段空间。当我们真正使用的时候操作系统 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">才会帮我们挂上物理页面。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">2. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">在特定位置放置 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">shellcode </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这一步，其实就是挂上了 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">PTE</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，并在调用的函数偏移处写上我们 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">shellcode </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的地址。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18909512761020883" data-s="300,640" style="" data-type="png" data-w="862" src="https://wechat2rss.xlab.app/img-proxy/?k=2d00256e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJX8wUowic0uy0icbSKbGuHFRvEWrUNyCAYvDibJIibZqyUJDD2GloxtEfQjA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">3. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">提权代码 </span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">提权代码，其实就是将 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">system </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">系统进程的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">token </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">令牌替换到我们进程中的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">token </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">结</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">构体中，这种就间接的提升了权限。（这里是操作系统的安全机制，目前不是很了解）</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6876712328767123" data-s="300,640" style="" data-type="png" data-w="730" src="https://wechat2rss.xlab.app/img-proxy/?k=2ebbfe09&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXB7JZsaJApnakLraxt90j52NEaFRsVHUUYiaMOchF2qicXjgWY9gxc2Tg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">现在对空指针解引用有了初步的了解，当时觉得算是理解了，分析了</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">CVE </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">后，发</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">现自己以为的真的是自己以为的，这大概就是理想与现实吧！接下来看看 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">CVE </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的分析。</span></p><p><span style="font-size:19px;font-family:黑体;color:rgb(0,0,0);">四、 CVE-2018-8120 分析 </span></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">定位漏洞位置</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过对比补丁前后，查看漏洞所在位置。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（可以使用工具</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BinDiff </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">或者</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Diaphora </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">来对比</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">分析),这里就直接查看漏洞函数 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">win32k!SetImeInfoEx</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">打补丁前：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.476123595505618" data-s="300,640" style="" data-type="png" data-w="712" src="https://wechat2rss.xlab.app/img-proxy/?k=91e1505a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXM3aKtzzcg6NhvDWjR6j4Qp8LxCeiauEFRfr7dbLI9KibPX272KHLDy6Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><br/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">打补丁后：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5884146341463414" data-s="300,640" style="" data-type="png" data-w="656" src="https://wechat2rss.xlab.app/img-proxy/?k=e375b1cf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJX4SszUvyj9JkrSOPF1JgtyYt671TITPibibGycLCBKrUCU7Hsjxz0B1Fw%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">2. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞的原因分析 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">接下来从如下几个角度进行审视，进而确定它为漏洞而不是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Bug</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(1) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞位置是否可控？</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这个自我感觉是很重要的，因为之前有点和 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">rootkit </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">混淆，漏洞是利用系统留给用 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">户的接口来进行攻击，有点像用正当的手法做最不正当的事情，而 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">rootkit </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这种就是大 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">肆的破坏。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过使用 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">IDA </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">对 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">SetImeInfoEx </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数进行交叉引用后，会发现第一个参数是来自于 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NtUserSetImeInfoEx </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数中的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">GetProcessWindowStation </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数的返回值，因此这个值是</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">可控的。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6244604316546762" data-s="300,640" style="" data-type="png" data-w="695" src="https://wechat2rss.xlab.app/img-proxy/?k=6861d671&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXcJ8C97wdnMYdCk7hwLMBPMwNibHoJ4vGMWdCNQfzWGxvzficfHYW2bfg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(2) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">是否可以扩大影响？</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">对于扩大影响，我们则需要查看 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">SetImeInfoEx </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这个函数的漏洞点以下的部分。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过查看，我们发现了此处有个 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">qmemcpy </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数，并且目的参数与漏洞点的指针有些间</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">接的关系，如果可以控制这个位置，那么就可以达到任意读写从而使其 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">bug </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">变为漏洞。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(3) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">为什么会存在这样的问题？</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">站在代码编写的角度来想，编写者可以潜意识的认为这个地址不可能为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，所以没 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">有进行更深层次的检验。这可能是因为是结构与代码组合时，没有想到过多个 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">WindowStation </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的问题，因为我查看了当前桌面的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">WindowStation</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，发现它并不是为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，但是如果是新建 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">一个，默认是为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的。 </span></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">3. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">POC </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">编写 </span></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(1) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">分析用户层到漏洞点的路径 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">IDA </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">一路交叉引用，找到最终的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Nt </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">开头的函数，它的执行路径如下：</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Ntdll!NtUserSetImeInfoEx --&gt; Win32k!NtUserSetImeInfoEx --&gt; Win32k!SetImeInfoEx</span></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(2) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">代码编写</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">1. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">创建自己的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">WindowStation</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，并且查看（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">tagWINDOWSTATION*</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">pwinsta-&gt;spklList </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">是否为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过调用 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">CreateWindowStationA </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">创建的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">WindowStation</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">pwinsta-&gt;spklList </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">默认是为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">2. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">调用 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Ntdll!NtUserSetImeInfoEx</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，这一步，我们可以模仿 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NTDLL </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">中的残根函数写</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">法，自己调用。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">完整代码如下：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.31002331002331" data-s="300,640" style="" data-type="png" data-w="858" src="https://wechat2rss.xlab.app/img-proxy/?k=8ae07fbe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXicKxgLQRJic6Mj6bicyia459tBDZib8bCCWju2K4B6wle2aOsD2LE3Zlfxw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">4. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞的利用编写 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">POC </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的编写是研究如何走到漏洞点，</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">exploit </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的编写是从漏洞点如何走下去。</span></span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(1) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">分析当前可利用的区域</span></span><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18800461361014995" data-s="300,640" style="" data-type="png" data-w="867" src="https://wechat2rss.xlab.app/img-proxy/?k=df17a057&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXfNRZgKicYHXqSPibomichPp8ygNLuptPiatCGib3ia5H8GwScxIKsIlPuruQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过查看 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">qmemcpy </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">第一个参数的来源，我们发现它来自于 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">v3 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的一个指针，由此可知 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，我们可控的区域就是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">4 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个字节，控制了这 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">4 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个字节，就可以进行任意的读写。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">(2) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">如何利用这个区域 </span><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">1 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">池喷（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Pool Spraying</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">）的可行性。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">查看 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">qmemcpy </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的第一个参数，可以发现该地址是位于内存池的，因此，我们可以</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过池喷射的技术来利用漏洞。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.27169811320754716" data-s="300,640" style="" data-type="png" data-w="795" src="https://wechat2rss.xlab.app/img-proxy/?k=b49b937b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXZa5CA0ZQ1OglGhzuicPxibkXwQIMobOL7vq6t2G3qZePRlQF0xXqTEYQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">可以发现这个地址来自于池里面，所以我们利用池喷进行内存句柄，进而控制住指</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">针。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">2. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">池喷射</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">先研究一下池喷射，这个就根据 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">HEVD </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的池溢出漏洞来进行研究。</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">1) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">漏洞点构造</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5358592692828146" data-s="300,640" style="" data-type="png" data-w="739" src="https://wechat2rss.xlab.app/img-proxy/?k=7ef5a972&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXO9ClPpeIuLjKZG4IiaWWkf5WyZbX0nmyNUSvb7HLhFWMIUf1XFp11ZA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">2) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">临界值观察 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">a. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">首先我们将利用的代码中 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Size </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">修改为和缓冲区刚刚好的大小。查看 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">一下池的布局。这里设置为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x1F8 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个字节。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.08806818181818182" data-s="300,640" style="" data-type="png" data-w="704" src="https://wechat2rss.xlab.app/img-proxy/?k=e06430c3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXMSH09pd9E5L7gs4jXMjvnKqmEFVpgnQp7On0FuKd3V4pe2SV351zkw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.2296983758700696" data-s="300,640" style="" data-type="png" data-w="862" src="https://wechat2rss.xlab.app/img-proxy/?k=6b9ce443&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJX12DpBCgSpyNoRkg4DtiasZeTVmWic7Ij4x4N8A6PflGAGBVvEuCLkPyg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">为什么上面的设定是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x1F8 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个字节呢？而不是别的。这是因为</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">_POOL_HEAD </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">占 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">8 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">字节，所以总共加起来刚好 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x200 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个字节，够一个 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Lookaside </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">中的大小。 </span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">接下来，查看一下 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">pool </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的布局，通过查看会发现如果用户输入的大小超过 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x1f8</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">， </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">那么就会覆盖掉下一个池头。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4332874828060523" data-s="300,640" style="" data-type="png" data-w="727" src="https://wechat2rss.xlab.app/img-proxy/?k=ee466279&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXu7k2xUf4Tx4IllLpnh4k1wJm0sjj8kZuaR6Yv7KJmibaicicj2AppYpXQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3152909336941813" data-s="300,640" style="" data-type="png" data-w="739" src="https://wechat2rss.xlab.app/img-proxy/?k=05bedd3e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXXUAG7I2zNIDnYEUqRBNUZ28H5xia4sHP5Jdib72oFhxjLJ7sNxKZzIDA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">3) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">寻找利用点 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">a. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">由上面可知，可以控制溢出到池头，那么必然我们的利用点得利用池 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">头中的某些成员来进行控制</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">EIP</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.425" data-s="300,640" style="" data-type="png" data-w="600" src="https://wechat2rss.xlab.app/img-proxy/?k=fc21c4a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXFHalrEiaIKyrQV9Rdb5nUWFG13sYYnfbUMcTvxa2iaibBmCwdIVpxpfbQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">通过查看，池头部和池配额结构体，都没有发现可以利用地方，但是考虑到这是非</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">分页池，那么里面就存放了很多内核对象结构体。（这里思考的比较久，已经看很多网</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">上的文章都是一路 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">dt </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">下去，找到了内核对象，都没有说这块内存是用来干嘛的。那是 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">不是如果是非分页池了，就不能这么使用了。）</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"> </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">于是我们可以尝试探索一下，查看里面是不是存放的是内核对象，由于某一个内核 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">对象都会有一个头部（</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">_OBJECT_HEADER</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">），所以可以试探性的搜寻是否可以找到对应</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">BODY</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.285336856010568" data-s="300,640" style="" data-type="png" data-w="757" src="https://wechat2rss.xlab.app/img-proxy/?k=714ec098&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXR3ibK376Rt1ooYw4N8ACpF2ZbbibibaltcP6JyFFoQBMbjae4icTDD0hQw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这也就是为什么国外的文章，直接使用 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">dt _OBJECT_HEADER </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这个地址。</span></span><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5776699029126213" data-s="300,640" style="" data-type="png" data-w="618" src="https://wechat2rss.xlab.app/img-proxy/?k=db1b0e06&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXM2UtxSMKzRQKcL49M1ffTPHNzBiauGKtiaCsnQ0PCRA0Qpeqpdz4Ddlg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">是不是内核对象，还得在通过其中的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">TypeIndex </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">来进行验证。操作系统将所有的内核对 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">象定义成了一个全局数组 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">nt!ObTypeIndexTable</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，而 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">TypeIndex </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">就是数组的索引。这个数组</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的类型是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">OBJECT_TYPE </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">类型，如果这个索引可以到这个数组中寻找到，那么必然是内核</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">对象</span>。</span><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6060606060606061" data-s="300,640" style="" data-type="png" data-w="660" src="https://wechat2rss.xlab.app/img-proxy/?k=db3ee49d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJX2x26hyXkpFrR2GJfP56TmW5Sn7JuibALHKTmVvdKzuhJ6FXib1205wicA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">查看对象模板中的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">_OBJECT_TYPE_INITIALIZER</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">，会发现很多回调函数，都可以进行利用， </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">但是最好利用应该就是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">CloseProcedure </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">了，只需要通过调用 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">closeHandle </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">函数来触发。</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);"></span><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8079763663220089" data-s="300,640" style="" data-type="png" data-w="677" src="https://wechat2rss.xlab.app/img-proxy/?k=8382916f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXP2H68gk0WAXjOUSEI1dMhmibhNsOZujR4ibZC8NTAh6NPesB7bAL3ccg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">4) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">内存布局 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">内存布局的话，可以通过申请大量的内核对象，这里选择的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Event </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">对象，这个 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">和这个对象的大小刚好为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x40 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个字节（释放 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">8 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">个就是 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x200</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">），申请大量的 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Event </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">对象将 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Lookaside </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">和 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">ListHeads </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">占用了，然后通过申请新页来分配内存， </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">进而释放内存的时候可以进行合并成想要的大小。（因为分配 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Pool </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">内存的时 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">候循序为，</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">lookaside--&gt;ListHeads --&gt;</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">申请新页）</span></p><p><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">这个漏洞可以利用的关键点还在于 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Win7 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">系统可以申请 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">页面。所以将 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">TypeIndex </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">修改为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0</span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">（溢出的位置），然后将 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">NULL </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">页面 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">+0x60 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">偏移处修改为 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">shellcode </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的位置，就可以在 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">CloseHandle </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的时候触发 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">shellcode </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">代码。</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">5) </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">攻击过程综述 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">a. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">进行内存布局，制造出 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0x200 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">的空隙，控制位置</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4288079470198676" data-s="300,640" style="" data-type="png" data-w="604" src="https://wechat2rss.xlab.app/img-proxy/?k=51edda51&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXSqUibicBqibTtAbyic69Ndv2AIicbngsNdSwODn4aAicg5hhmfEvFPMJajBw%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.29769736842105265" data-s="300,640" style="" data-type="png" data-w="608" src="https://wechat2rss.xlab.app/img-proxy/?k=5e8ef733&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJX24ERLazwnmjic3rV8ZaDFfnM24eviakicxYiaLNOQPOPXumuS2lqlib0zFQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">b. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">申请 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">0 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">页面，构造</span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">shellcode</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.10921052631578948" data-s="300,640" style="" data-type="png" data-w="760" src="https://wechat2rss.xlab.app/img-proxy/?k=25146563&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXsB3mAvf9qBOk5hicOfNq1tWX8Al6fvopiaUsbicibicfneOM7PFml35pZZg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">c. </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">触发</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3584637268847795" data-s="300,640" style="" data-type="png" data-w="703" src="https://wechat2rss.xlab.app/img-proxy/?k=0c4bad33&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibHsq4dvA2hTpZYvCmfqgJXtwyXFX3xZ95vpCp6gtAtNzu0rV7RkTib1mYzzFGO4RtjTibTtrAULntg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="font-size:12px;font-family:宋体;color:rgb(0,0,0);">3 </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">研究 </span><span style="font-size:14px;font-family:Calibri;color:rgb(0,0,0);">Bitmap </span><span style="font-size:14px;font-family:宋体;color:rgb(0,0,0);">布局的可行性。</span></p><p><br/></p>



<p><a href="2247483973">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=6b5e7bf5&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2ODQwNzAzNw%3D%3D%26mid%3D2247483973%26idx%3D1%26sn%3D6d1d4f75844d14611d85de93cc32b863%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 18 Jan 2021 19:25:00 +0800</pubDate>
    </item>
    <item>
      <title>放贷渣男系列:他到底有多不要脸?</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzI2ODQwNzAzNw==&amp;mid=2247483941&amp;idx=1&amp;sn=598151a3a23ebfbfadbce76c6dda92ce</link>
      <description>今天天空阴沉沉的，还下了点小雨，我坐在公司天台的秋千上，抽着烟思考着人生。正在这时，手机响了一下，我拿起手机</description>
      <content:encoded><![CDATA[<p>
原创 <span>想泡花茶</span> <span>2019-12-10 20:19</span> <span style="display: inline-block;"></span>
</p>

<p>今天天空阴沉沉的，还下了点小雨，我坐在公司天台的秋千上，抽着烟思考着人生。正在这时，手机响了一下，我拿起手机</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=be0b33ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4Yq79q9pj5pWric9Kos6w5Ublv4v3H6rMWEiacRcib4otibG9ITCCaZCd7w%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">今天天空阴沉沉的，还下了点小雨，我坐在公司天台的秋千上，抽着烟思考着人生。正在这时，手机响了一下，我拿起手机晃了一眼，啥东西？</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.46115288220551376" data-s="300,640" style="" data-type="png" data-w="399" src="https://wechat2rss.xlab.app/img-proxy/?k=e5d69c94&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4Nv4GUHueeBT6f8PjbHiaRvghrk1Ndu9rFw8CLhVA34Rdn5iamFlPLBcA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;">  <span style="font-family:宋体;">定眼一看，原来是一条只有一个网址的短信，以我这个安全从业多年的经验来看，肯定又是啥钓鱼短信，人生等会来思考，我现在只想看看钓鱼者是怎么套路我的，想到这里，我的嘴角开始露出邪恶的笑容。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><strong><span style="font-family: 宋体;font-size: 16px;"><span style="font-family:宋体;">揭开盖头</span></span></strong></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;">   </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">打开网址</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">后</span></span><span style="font-family:宋体;font-size:14px;">, </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">透过我有点反光的手机屏幕看到的是一个贷款</span></span><span style="font-family:宋体;font-size:14px;">app<span style="font-family:宋体;">的下载页面，几个大字把我震的一愣一愣的，蚂蚁借呗？</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;">   <span style="font-family:宋体;">这个</span>APP<span style="font-family:宋体;">不会是想盗取我的支付宝账号，然后继承我那</span><span style="font-family:Calibri;">500</span><span style="font-family:宋体;">块限额的蚂蚁花呗？</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7306317044100119" data-s="300,640" style="" data-type="png" data-w="839" src="https://wechat2rss.xlab.app/img-proxy/?k=9fb619d4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4koZPerLhGUoPfBoaMLP738OibYO1FH5qjRgFOCle2icKgWFCSQ2sr7rQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:32px;text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">烟抽完了，回去打开电脑，输入页面下面的那个链接。</span></span></p><p style="text-indent:32px;text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">打开后发现，这个</span></span><span style="font-family:宋体;font-size:16px;">CMS有那么一点点眼熟，于是乎做了个指纹验证，然后百度一圈搜搜CMS的漏洞，无果！</span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;">   <span style="font-family:宋体;">遂到官网下载此套</span>CMS进行审计，什么，下载要钱？？</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.55" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=3417af70&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4bICZq3GnLcUydLiaIzaXUKveleZ2ic2hmvB0DBhsuwueYiber8QTriciaaw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"> <span style="font-family:宋体;">我看了看桌子上早上没吃完还剩下的半个馒头，不禁心里一酸。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;">   <span style="font-family:宋体;">算了，算了，这年头干啥都要钱，看看网上有没有乞丐版本。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;">   <span style="font-family:宋体;">在网上搜了一圈，老天还是挺好的，给了我一条明路，把这套</span>CMS下载回来后，召集小伙伴并拿出我久经考验的审计专用IDE开始干活。</span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;">   </span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">先找找入口点，全局处理什么的。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;">   <span style="font-family:宋体;">这里可以</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">看</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">到</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">它定义了一个方法来处理</span>get</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">、</span></span><span style="font-family:宋体;font-size:16px;">post</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">、</span></span><span style="font-family:宋体;font-size:16px;">cookie</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">的相关</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">请求</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.58515625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b1860901&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe479ZBSL3sibW8x4VbTEWMjb9GWVsB04qx7Rt3juq5oVGQKNQwSlvZ4Mg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:32px;background:rgb(255,255,255);"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">返回</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">数据</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">时经过</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">了</span></span><span style="font-family:宋体;font-size:16px;">format_param函数,</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">我们跟进</span></span><span style="font-family:宋体;font-size:16px;">format_param函数</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">。</span></span></p><p style="text-indent:32px;background:rgb(255,255,255);"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">在</span></span><span style="font-family:宋体;font-size:16px;">format_param函数</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">里面我们</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">看见</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">了</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">一</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">大</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">堆过滤</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">，</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">仔细看看</span>int类型直接返回,输入字符串转实体化然后加\</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">，</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">下面每一种类型都有对应的处理方法</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5349682107175295" data-s="300,640" style="" data-type="png" data-w="1101" src="https://wechat2rss.xlab.app/img-proxy/?k=b054f30d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe46Ug21zoD5CPPzmptCogVeS2ncEB5bE298hqqy1N8fbxOgCvxV3gaCw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">那么这样的话，就有点难办了，虽然俗话说的好</span>“世上无难事，只要肯放弃”，但是我们还是要试试，万一呢？先抽根烟稳定一下情绪。</span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">在漫长的寻找</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">过程中</span></span><span style="font-family:宋体;font-size:16px;">,</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">我们</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">发现了</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">一处可疑的地方，</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">这里可控的参数没单引号包裹</span>,然后</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">我们</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">就可以闭合</span>)去注入了</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8815060908084164" data-s="300,640" style="" data-type="png" data-w="903" src="https://wechat2rss.xlab.app/img-proxy/?k=eee05641&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4nLiaZdoQNm2q18hms5F5QmAkwZZ0gQ29svGW2BVDonTbFCgIM7a9vdQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="background:rgb(255,255,255);"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">在这个文件里面，我们</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">又发现了</span>,这里完全没有走format_param函数方法</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">，在跟进数据库操作</span></span><span style="font-family:宋体;font-size:16px;">find()方法函数里面也是一样，没有任何的处理，直接进行了相关参数的一个拼接，所以注入点理论上是成立的了。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8599348534201955" data-s="300,640" style="" data-type="png" data-w="921" src="https://wechat2rss.xlab.app/img-proxy/?k=5f581926&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4eRvVE2V0KPMEjQVKLw1ll5hz5kJkazJe2a6v3hfm1llJLMmXxpLjqg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">那么，实践是检验真理的唯一标准，</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">本地搭建</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">此套</span></span><span style="font-family:宋体;font-size:16px;">CMS</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">系统</span>,</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">构造</span></span><span style="font-family:宋体;font-size:16px;">POC，去吧，皮卡丘。可以看到</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">没问题</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">，成功利用。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"> </span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.12769953051643193" data-s="300,640" style="" data-type="png" data-w="1065" src="https://wechat2rss.xlab.app/img-proxy/?k=b1ec5cfb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4wibVo1kd3MRnU4wiccw3AFyJmMvlqGq6SlAYOAYrricLmp2YVc2OQBO8Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="background:rgb(255,255,255);"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">这下拿着</span></span><span style="font-family:宋体;font-size:16px;">POC到那个钓鱼网站试试效果。</span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">动作要快，姿势要帅。额</span></span><span style="font-family:宋体;font-size:14px;">........</span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">没反应</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">？</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.32109375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=9eeeb5c7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4X0JafA0FZAQ5xTzo7rxiardtAMtSqkJDg1Wl1Vq1ibKITdGYHz1l1nxA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">经过和官网目录核对</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">嗯</span>... </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我可能</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">下错</span></span><span style="font-family:宋体;font-size:14px;">CMS</span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">了</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，跑偏了。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">所以啊，指纹识别有时候也是不靠谱的，正所谓</span>“尽信书，不如无书”。</span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">通过长时间的寻找，终于还是找到了。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.530241935483871" data-s="300,640" style="" data-type="png" data-w="992" src="https://wechat2rss.xlab.app/img-proxy/?k=7724ddeb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4lLVbz7KeYCFzLlN3JON1ttosdB2GCUaickymM52K9kUNUBnGDXyd9pQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这个</span></span><span style="font-family:宋体;font-size:14px;">CMS<span style="font-family:宋体;">目录简单，直接看看吧，几分钟后，我们发现了一个后门文件，</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这</span>cms<span style="font-family:宋体;">里后门太明显了</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，果然干这行的，都喜欢黑吃黑。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8865030674846626" data-s="300,640" style="" data-type="png" data-w="978" src="https://wechat2rss.xlab.app/img-proxy/?k=cafff9b9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4NjZtUn2n3Kl0GRp3icF8qOiabMrNU6Pky1I2Qp8wTrPyqrKEmXXFR6WQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">那么，我们也就不费劲去找啥</span></span><span style="font-family:宋体;font-size:14px;">0day<span style="font-family:宋体;">了</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，直接进吧。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5450041288191577" data-s="300,640" style="" data-type="png" data-w="1211" src="https://wechat2rss.xlab.app/img-proxy/?k=18ea4de3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4FibmoyU5LpjZOVqCZ5M9dYAyNIHDvMiacIz0lX6QUwAibPWvKiaCtfR80w%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">进入大马后发现大马的</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">权限</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">很</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">低</span>,并且Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64,并不好提</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">权，因为我连执行权限都没有（命令函数都被禁了）。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">拿了密码</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">进</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">入</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">后台</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">后</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">看见安装量还</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">有点</span></span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">多诶</span>,并且这后台只是一个分发系统,不是真正的app数据管理系统,故放弃提这台</span><span style="font-family:宋体;font-size:16px;"><span style="font-family:宋体;">服务器，提了也没啥用。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.36640625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=1292f590&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4VW11w1UEUKtg5qthUHPhZKicdn8CiciaZ2wxDjhdZib8iaoib9IFaXvD1XWw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">正当无计可施之时，我们想到了</span></span><span style="font-family:宋体;font-size:14px;">APT<span style="font-family:宋体;">攻击。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">既然服务器我们没办法，</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">那</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我们就</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">直接搞管理员</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">？</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">用之前看见</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">比较火</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">的</span>Flash</span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">更新</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">钓鱼</span></span><span style="font-family:宋体;font-size:14px;">(<span style="font-family:宋体;">既</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">然你钓鱼我，那么我也来钓鱼你，礼尚往来），对远控进行</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">免杀</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">捆绑。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">免杀伪装</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">步骤：</span></span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:Calibri;font-size:14px;">1） </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">免杀远控</span></span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:Calibri;font-size:14px;">2） </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">捆绑工具</span></span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:Calibri;font-size:14px;">3） </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">图标提取</span></span><span style="font-family:宋体;font-size:14px;">(</span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">从</span>flash<span style="font-family:宋体;">原版程序提取图标资源</span></span><span style="font-family:宋体;font-size:14px;">)</span></p><p style="margin-left:24px;text-align:left;"><span style="font-family:Calibri;font-size:14px;">4） </span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">制作捆绑伪装</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4723404255319149" data-s="300,640" style="" data-type="png" data-w="940" src="https://wechat2rss.xlab.app/img-proxy/?k=e5831e33&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe491GYtT70VVsje1C5fDvuuLNbamspyNibqFgrxlPDMP3icPTZ1oMRV4YQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">直接提取图标版权内容，稍后用作捆绑，版权信息可以捆绑完以后在加到</span>exe<span style="font-family:宋体;">上这样捆绑完成后比较完美，还可以把原版</span><span style="font-family:Calibri;">flash</span><span style="font-family:宋体;">程序数字签名一同复制到捆绑程序上就完成</span></span></p><p style="text-indent:28px;text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">在</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">网上随便下的的一个捆绑工具用做木马捆绑</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8685015290519877" data-s="300,640" style="" data-type="png" data-w="654" src="https://wechat2rss.xlab.app/img-proxy/?k=ec1bdc14&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4T6O5n2PMFxic96M8Yxo02TMiaV1hiaweqIC9KThCEtamKiakSPuEyibXrCA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent:28px;text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">下一步就是让目标运行咱们这个独家定制的</span>flash<span style="font-family:宋体;">更新程序了。。。。。。。</span></span></p><p style="text-indent:28px;text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-indent:28px;text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">钓鱼肯定需要伪装，</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">于是</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我们克隆了</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">一个</span>Flash<span style="font-family:宋体;">官网页面</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，并注册了一个和</span></span><span style="font-family:宋体;font-size:14px;">flash<span style="font-family:宋体;">官网差不多的域名</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">漂漂亮亮的把咱的独家定制</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">小玩意</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">放上去</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.55546875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=ee0fd8ae&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4QjWVeB07PiatWj6dkIwLsMA0Gapzd9icslRAO7hpp0GgxrJcRJhVHXiaw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><br/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">接</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">下来呢，我们</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">在后台登录文件里写个跳转代码</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">之前想过写在前台的，想了一下，这样不就暴露了么，还会钓到很多无用用户回来，于是乎，后台一般只有管理员会来看，所以这样就比较目标精确了。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">插入了跳转代码后测试一下，</span></span><span style="font-family:宋体;font-size:14px;">OK<span style="font-family:宋体;">，有那么一点小完美。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.421259842519685" data-s="300,640" style="" data-type="png" data-w="1270" src="https://wechat2rss.xlab.app/img-proxy/?k=a3515b7f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4m9lzAtCEDkskRMicFLrptmb6prT1RtCt1wia9uM7icFbutH5kB0mYdHYA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">吃</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">完</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">午饭回来一看</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">嗯</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">，运气不错鱼</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">上钩了</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">成功获取到目标的</span></span><span style="font-family:宋体;font-size:14px;">PC<span style="font-family:宋体;">权限。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.41298467087466184" data-s="300,640" style="" data-type="png" data-w="1109" src="https://wechat2rss.xlab.app/img-proxy/?k=8358df66&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4vlaN5ibeJesgRKmE1QdgknUHhQfqibj2x3eGA1QGuvWzoBcMzP96nwxA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">事情都走到这一步了，顺便翻了一下他的电脑，在翻看他电脑的时候我们发现了一个秘密。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">那就是那个手机短信里的那个站根本不是钓鱼站，之前我们还以为这个站就是套取个人信息或者盗号的那一套玩意，没有想到，事情远远比我们想象中的还要复杂和严重的多，一切似乎变得有意思了起来，于是乎，我们打算长期潜伏并监视此团伙。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;"><br/></span></span></p><p style="text-align:left;"><strong><span style="font-family: 宋体;font-size: 19px;"><span style="font-family:宋体;">水落石出</span></span></strong></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我们翻看了此团伙的电脑后，发现了一些重要的东西。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">在下面的文档中我们可以看到，他们是一个做假贷的网站，这个文档里面包含了他们的一些话术，也就是对每一种情况，他们都有相应的应对措施，</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5130932896890343" data-s="300,640" style="" data-type="png" data-w="1222" src="https://wechat2rss.xlab.app/img-proxy/?k=41c7673d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe49JEKcW39MEzHbfick1Gsibj2jg369Vlz2QIMSeiaicFlTqB7wiccwAsRAHw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">受害人在申请贷款后，骗子将会利用受害人的贷款心切心理，引导受害人交钱。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5210222588623248" data-s="300,640" style="" data-type="png" data-w="1213" src="https://wechat2rss.xlab.app/img-proxy/?k=55cb7dec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4QuDLPKQxUk24S1icWY52mARaxwEBukzs8QxdVoDRRrz3OuU3rhxYToA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">利用平台套取受害人的相关个人信息</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6686507936507936" data-s="300,640" style="" data-type="png" data-w="504" src="https://wechat2rss.xlab.app/img-proxy/?k=73bf28a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe41g4qbOKBia60zwxpZal4CMP0qicaaGLibQ9YL1VOzUrwH37CBYPauiaMGA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1.2792553191489362" data-s="300,640" style="" data-type="png" data-w="376" src="https://wechat2rss.xlab.app/img-proxy/?k=89931488&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4dmPLL4GKQeKtFWnVuWAWudtlIvGNxe6lu6uBH3ZfdmQRDsaibgyr5xg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">找到了他们的其他站点</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1.1047486033519553" data-s="300,640" style="" data-type="png" data-w="716" src="https://wechat2rss.xlab.app/img-proxy/?k=f06b32c4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4t5fjSyVKL02aU0YSywicqM3xUsZkIQJwbfibETrnkcianiaIKj9ibPGGeUQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">随便找一个看看</span>,<span style="font-family:宋体;">居然还有人满意</span><span style="font-family:Calibri;">...... </span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4283464566929134" data-s="300,640" style="" data-type="png" data-w="1270" src="https://wechat2rss.xlab.app/img-proxy/?k=1d627c08&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4uqEApHH0UmWVgic1jy2uNNZJnFzt5BEFTicL5azYoAW1Ism8sSoYHArA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.39921875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=60addc10&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe40sicDFuLwukvAZjqjMLQUSRSpDzuSWCeT5LajSW3bt9XviaFu0Rg2klQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我们在其他的站点翻到了这个团伙的邮箱地址、手机号码及</span></span><span style="font-family:宋体;font-size:14px;">QQ<span style="font-family:宋体;">号码</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5079365079365079" data-s="300,640" style="" data-type="png" data-w="819" src="https://wechat2rss.xlab.app/img-proxy/?k=ed4498c1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4A33ZrPWJsYGo1ia7cxLNaaX1CyvkiaFwM5MpFmjuhAicx3ZEiciag1XqseA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3856812933025404" data-s="300,640" style="" data-type="png" data-w="866" src="https://wechat2rss.xlab.app/img-proxy/?k=d369864d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4jicibGQnlRZ2IBfO511q6avUdReejZ8xricVYX4mn4DO4bVb5TB4x48VQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">利用配置找到邮箱密码，登录之</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.556013179571664" data-s="300,640" style="" data-type="png" data-w="1214" src="https://wechat2rss.xlab.app/img-proxy/?k=9157f46b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4gzkPWqJwmYcIKh4UUxsnmzzz9FJPbqlCDwy3kJgdHY1Cebr5ByiaaOA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这个邮箱绑定了服务器的主机和域名，那么，我们有个大胆的想法</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.725925925925926" data-s="300,640" style="" data-type="png" data-w="945" src="https://wechat2rss.xlab.app/img-proxy/?k=3690f7bb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4SnN9rPDlBKjPG6dibTLxHGL6L7wTvw8grLMKeNpcGGsicDUAic3VlIbGw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我们登录域名服务器查看到了骗子的真实信息（不一定真实，伪真实）</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5146804835924007" data-s="300,640" style="" data-type="png" data-w="579" src="https://wechat2rss.xlab.app/img-proxy/?k=9ada27b7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe42lsibjEYTVQuVftRX2RiaTBn1KVqEFUiah52j37DIHDu4oYc0moPn7sicw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">查看下联系地址是什么地方的</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">厉害，这个地址也敢乱写，还有什么不敢的</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1.2961783439490446" data-s="300,640" style="" data-type="png" data-w="314" src="https://wechat2rss.xlab.app/img-proxy/?k=ee7b28a8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4zAsSP2HUHIgYfpzhdveHwmWc1cT7SWVKkLKhia2NPZtJdJJZKpgibfVQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">单看这些东西也不行啊，我们打算直接进内网看看，直接上隧道，加个代理直进内网。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">进入内网发现，都是个人</span></span><span style="font-family:宋体;font-size:14px;">PC<span style="font-family:宋体;">电脑，不好搞啊，那么还是先</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">用</span></span><span style="font-family:宋体;font-size:14px;">ms17010<span style="font-family:宋体;">扫一遍。扫完后发现，好多都打不了，即使成功了，也无法返回链接，额，不用说了肯定蓝屏了，所以算了，动静小点</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6527131782945736" data-s="300,640" style="" data-type="png" data-w="645" src="https://wechat2rss.xlab.app/img-proxy/?k=640e4c62&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4kPiaRa7Zz5jjNaRqCRUcb7km6qPmfo8IiaLsgOnHia4kamzqukib2dXrAA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">那就抓个密码吧，发现密码为空，而且之前拿了几台都一样，所以可以肯定的是，内网中大部分或者全部都没有密码，而且都是用的</span>WIN7<span style="font-family:宋体;">，即使开了</span><span style="font-family:Calibri;">3389</span><span style="font-family:宋体;">也不敢连，会被挤掉</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.48318924111431316" data-s="300,640" style="" data-type="png" data-w="1041" src="https://wechat2rss.xlab.app/img-proxy/?k=f1d2b0ad&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4M7WpoJkcs8ibYCJoBJwVCH8BjSN6eYZ7GtibscLNNhQuiaGELrhODBvOQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">所以还是先从已经拿下的这台电脑入手吧，先截一个图先，发现还在使用</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6354029062087186" data-s="300,640" style="" data-type="png" data-w="757" src="https://wechat2rss.xlab.app/img-proxy/?k=8a8563a3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4eabl2oERp7RC9OE2a96Ro4IC6T61icBWicnCMfKLPrjIlcuQHiaibn5jdw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这个时候我们查看进程，在进程中发现</span>teamview<span style="font-family:宋体;">的存在，那么就直接上</span><span style="font-family:Calibri;">teamview</span><span style="font-family:宋体;">密码抓取工具，抓到密码后，等待一个夜深人静的时候，观察到没有动静了后开始干活。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5956416464891041" data-s="300,640" style="" data-type="png" data-w="1239" src="https://wechat2rss.xlab.app/img-proxy/?k=af2e4a68&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe43oEfhtbibccC6ZiaHicQFa259QCjzhltZ7ylswib5AkLL1qRDb70G2gAbA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">连上后，发现</span>QQ<span style="font-family:宋体;">还是登上的，看一下聊了些啥</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5521739130434783" data-s="300,640" style="" data-type="png" data-w="920" src="https://wechat2rss.xlab.app/img-proxy/?k=f349117a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4adiaPeJecvTpibDj69l1EXCL8RVGsAG2Mcjkkh1DQun887fjvQQTYic1g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">为了尽可能的在服务器上停留时间短，我们把几个人聊天记录导出到本地观看，以免被发觉</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;">,<span style="font-family:宋体;">从他们的聊天记录看，他们这个所谓的贷款平台就是赤裸裸的诈骗</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5051813471502591" data-s="300,640" style="" data-type="png" data-w="772" src="https://wechat2rss.xlab.app/img-proxy/?k=54f7d61e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4sJaXgo4rgQJfaJ3CXT7GTEAUJ6LFA0NQfQCM4D5ysGVvbm2LG5Uiaxw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">从这个电脑上，我们登录上了阿里云服务器</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.60625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=98ba143e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe49ePP0619263bTp7YVRbvWdQn0psybUopIqxzk62ic9ialjickS4s7zJ0Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">查到了个人信息</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;">**<span style="font-family:宋体;">印</span></span><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">河北省</span>**<span style="font-family:宋体;">县</span><span style="font-family:Calibri;">*******90</span><span style="font-family:宋体;">号</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这个信息也不一定就是真的</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;"><br/></span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">通过他们的聊天记录，我们掌握了他们所有平台的账号密码，下面来梳理一下这个团伙的分工及套路</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"> </span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.24302430243024303" data-s="300,640" style="" data-type="png" data-w="1111" src="https://wechat2rss.xlab.app/img-proxy/?k=c28a6c25&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR87kibFIOkzTvJ8zTfwbJqe4st08KohfP07NtEgHicIKWrbfiaC1HC8MWtbOoRIk6BztD5hves8OFxbg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"></span><br/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">团伙采取公司化运作，下设客户经理、话务组、业务组等。诈骗模式为，先由话务员电话</span>,<span style="font-family:宋体;">短信方式招揽需要贷款的受害人， 再由业务员与受害人联系，让受害人下载所谓的放贷</span><span style="font-family:Calibri;">APP</span><span style="font-family:宋体;">，在这个虚假</span><span style="font-family:Calibri;">APP</span><span style="font-family:宋体;">平台中，要求受害人按流程操作并先交纳</span><span style="font-family:Calibri;">10%</span><span style="font-family:宋体;">的手续费才能贷款，受害人一旦 转账，便以各种理由推脱，不予放贷。</span></span></p><p><br/></p><p><mp-miniprogram class="miniprogram_element" data-miniprogram-appid="wxececc7ef1827721a" data-miniprogram-path="pages/index/index?id=68505" data-miniprogram-nickname="推文留言" data-miniprogram-avatar="http://mmbiz.qpic.cn/mmbiz_png/IdY9QibLZOIP4icic16HVlcUdlwhkPNWs0YMibENKk7afvGwf5CXTzvZFRVwPDvz4YRbyd9wVNzbCia5MnkCFVDJtvg/640?wx_fmt=png&amp;wxfrom=200" data-miniprogram-title="花茶安全攻防区 | 913083924" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/Yb89GDkShR87kibFIOkzTvJ8zTfwbJqe4UCUwib1qaDS9nLbJiabGlEnian32odsKTEvgqK0zjvEgTl3psjbqUR06w/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0"></mp-miniprogram></p><p><br/></p>



<p><a href="2247483941">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=83522302&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2ODQwNzAzNw%3D%3D%26mid%3D2247483941%26idx%3D1%26sn%3D598151a3a23ebfbfadbce76c6dda92ce%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 10 Dec 2019 20:19:00 +0800</pubDate>
    </item>
    <item>
      <title>某APP,JNI层自写算法分析</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzI2ODQwNzAzNw==&amp;mid=2247483887&amp;idx=1&amp;sn=76b50e1bcec2fc4a1d64da1e541b38f9</link>
      <description>首先我们登陆抓个包,可以发现有一个sign签名认证,在app与服务端接口安全的问题上,sign是一个很好的办</description>
      <content:encoded><![CDATA[<p>
原创 <span>想泡花茶</span> <span>2019-12-09 22:35</span> <span style="display: inline-block;"></span>
</p>

<p>首先我们登陆抓个包,可以发现有一个sign签名认证,在app与服务端接口安全的问题上,sign是一个很好的办</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=037205a5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYt1KH3ibJhJUOBSfH3GmEyIclVPdT1tHcrQiakZ85a6VqhBGhwX9kEVjOw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">首先我们登陆抓个包</span>,<span style="font-family:宋体;">可以发现有一个</span><span style="font-family:Calibri;">sign</span><span style="font-family:宋体;">签名认证</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">在</span><span style="font-family:Calibri;">app</span><span style="font-family:宋体;">与服务端接口安全的问题上</span><span style="font-family:Calibri;">,sign</span><span style="font-family:宋体;">是一个很好的办法来保证安全性。</span></span></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">服务端会根据客户端的加密方式，得到一个</span>sign(<span style="font-family:宋体;">签名</span><span style="font-family:Calibri;">)</span><span style="font-family:宋体;">，和客户端传过来的参数做对比一样就继续下面的数据调用，错误就直接结束程序</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">所以中间改了数据包的话</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">服务端是直接给你数据包结束掉的。</span></span></p><p><span style="font-family:宋体;font-size:14px;">   Sign<span style="font-family:宋体;">原理：用户登录后向服务器提供用户认证信息（如账户和密码），服务器认证完后给客户端返回一个</span><span style="font-family:Calibri;">Token</span><span style="font-family:宋体;">令牌，用户再次获取信息时，带上此令牌，如果令牌正确，则返回数据。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7031602708803611" data-s="300,640" style="" data-type="png" data-w="886" src="https://wechat2rss.xlab.app/img-proxy/?k=79fc5d1b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtfaxd4pkOfsT1ZcHsomXzcUc8ticcGZyzwF7HQ7Z2Jb6yvY5j7t6hWGw%2F640%3Fwx_fmt%3Dpng"/></p><h4><span style="font-family:宋体;font-size:12px;">0x1 Java<span style="font-family:宋体;">层分析</span></span></h4><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">那么我们反编译该</span>APP<span style="font-family:宋体;">，通过搜索字符串、查找相关函数，最终定位到</span><span style="font-family:Calibri;">sign</span><span style="font-family:宋体;">数据包的相关代码段，分析它是如何处理传参并生成最终的</span><span style="font-family:Calibri;">sign</span><span style="font-family:宋体;">值。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5523012552301255" data-s="300,640" style="" data-type="png" data-w="956" src="https://wechat2rss.xlab.app/img-proxy/?k=33ec2720&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtPxGkvyABhuaUQonPYMibk6N6L6xVxlqiaYGDOLL8kgFb1ktzcEf4RJdg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">跟进第一个</span>i0.a, <span style="font-family:宋体;">静态我们可以看出</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">它是将传进的参数进行了</span><span style="font-family:Calibri;">MD5</span><span style="font-family:宋体;">的一次加密</span><span style="font-family:Calibri;">,</span></span></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">我们在它传参进来明文处下断点</span>,<span style="font-family:宋体;">再将加密返回后下个断</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5376967688483845" data-s="300,640" style="" data-type="png" data-w="1207" src="https://wechat2rss.xlab.app/img-proxy/?k=605bdefc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtQZtAggvt4jds4Oz64zLIsY8WMH3ymlOx12F1ZalSCVaQmSpODk2wlQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">开始调试</span>,<span style="font-family:宋体;">获取明文</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.48642172523961663" data-s="300,640" style="" data-type="png" data-w="1252" src="https://wechat2rss.xlab.app/img-proxy/?k=7c214914&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtRZvVw7smUaDzYVYjlUdU055RgjWqfX2FKfUv04ULEaOibic7xXlD8q5A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">单步调试到返回密文</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.47734375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=05f02d34&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtKrRTrE5Cx27oDWBJZzSzPFh4VJ6wmnJNFh8liaVFnPrRk0cUPKOCHAw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">返回的密文确实是经过</span>MD5<span style="font-family:宋体;">加密一次</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">但是和篇头抓包的</span><span style="font-family:Calibri;">sign</span><span style="font-family:宋体;">差了最后八位</span><span style="font-family:Calibri;">,</span></span></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">之前分析是进了两次方法</span>,<span style="font-family:宋体;">我们继续跟进</span></span></p><h4><span style="font-family:宋体;font-size:12px;">0x2  JNI<span style="font-family:宋体;">层代码分析</span></span></h4><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5580786026200873" data-s="300,640" style="" data-type="png" data-w="1145" src="https://wechat2rss.xlab.app/img-proxy/?k=66b15849&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYt9ZxiacNeMCo1YP3aeibavp98x7DeduuVs7SkXpsbHKicbbgkRmrMcKywQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">跟进之前的</span>sign<span style="font-family:宋体;">可以看见，数据以参数形式传入了</span><span style="font-family:Calibri;">getEncryptDeviceId</span><span style="font-family:宋体;">方法</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.48499594484995945" data-s="300,640" style="" data-type="png" data-w="1233" src="https://wechat2rss.xlab.app/img-proxy/?k=21e794f6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtBjZqLDlKhHeNMsmDmUQa25N0B3r2D7yZvqomxZLpK39rGG8kkMybgg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">跳转到该方法的定义处，可以发现</span>getEncryptDeviceId<span style="font-family:宋体;">方法是由</span><span style="font-family:Calibri;">native</span><span style="font-family:宋体;">标识符修饰的</span><span style="font-family:Calibri;">JNI</span><span style="font-family:宋体;">层函数</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.400974025974026" data-s="300,640" style="" data-type="png" data-w="1232" src="https://wechat2rss.xlab.app/img-proxy/?k=1c486076&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtibHjxm3pjpPEQO3Cw6hK5pEzGt6FkdrIicUkXWsEyKE4NpKCPibbLDhhA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;">JNI<span style="font-family:宋体;">函数具体定义在哪一个</span><span style="font-family:Calibri;">so</span><span style="font-family:宋体;">文件中，可以通过查看相关的</span><span style="font-family:Calibri;">loadLibrary</span><span style="font-family:宋体;">操作</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6724303554274735" data-s="300,640" style="" data-type="png" data-w="1041" src="https://wechat2rss.xlab.app/img-proxy/?k=4c72adce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYt5IWUWFgaJqQOvqMvglXjETzPib4AoywqWM4VMIOanATsIO3Yd56kGOg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">打开</span>libcryp.so<span style="font-family:宋体;">文件，通过其导出表找到</span><span style="font-family:Calibri;">getEncryptDeviceId</span><span style="font-family:宋体;">方法的实现。</span></span></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;">(<span style="font-family:宋体;">对于命名规范的</span><span style="font-family:Calibri;">android JNI</span><span style="font-family:宋体;">层函数，都是以</span><span style="font-family:Calibri;">&#34;Java_</span><span style="font-family:宋体;">包名</span><span style="font-family:Calibri;">_</span><span style="font-family:宋体;">类名</span><span style="font-family:Calibri;">_</span><span style="font-family:宋体;">方法名</span><span style="font-family:Calibri;">&#34;</span><span style="font-family:宋体;">的格式来命名的，若要分析的目标方法没有按照命名规范，就要涉及到</span><span style="font-family:Calibri;">android</span><span style="font-family:宋体;">中的</span><span style="font-family:Calibri;">JNI_OnLoad</span><span style="font-family:宋体;">以及</span><span style="font-family:Calibri;">JNI</span><span style="font-family:宋体;">函数的动态注册机制了，这里不过多解释。</span><span style="font-family:Calibri;">)</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.1902834008097166" data-s="300,640" style="" data-type="png" data-w="988" src="https://wechat2rss.xlab.app/img-proxy/?k=213eaa30&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtVTzfgLXIo2RCqm9TqGr8NoZBFQHkeK29Exrd2rRKPoeQjglzaQVzRg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">跟进到该方法</span>,<span style="font-family:宋体;">可以静态分析到它的算法</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">如下</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.8922888616891065" data-s="300,640" style="" data-type="png" data-w="817" src="https://wechat2rss.xlab.app/img-proxy/?k=79bdc30b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtUMuwYpDFnBibxGkb4IbzJjkavy92UN6PM2Ue2JkP2OH6UdDtxzoLOjA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">这里我将该伪</span>C<span style="font-family:宋体;">代码翻译为</span><span style="font-family:Calibri;">JS</span><span style="font-family:宋体;">代码后</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">成功得到后八位</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3703125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=81745fba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtChNHQNhajzKE6IMK00skmEfl7goKBEaL3TAFWib6efUQdkg6Hv3dW4w%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">至此我们的分析出来的</span>sign<span style="font-family:宋体;">就是 </span></span><span style="font-size:11px;">18c93acf307b0ba142df393b9722b0d112351f2d</span></p><p><span style="font-family:宋体;font-size:14px;"><span style="font-family:宋体;">与篇头抓包的</span>sign<span style="font-family:宋体;">相同</span><span style="font-family:Calibri;">,</span><span style="font-family:宋体;">至此已经清楚的分析出了该</span><span style="font-family:Calibri;">sign</span><span style="font-family:宋体;">加密的流程方式</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7008830022075055" data-s="300,640" style="" data-type="png" data-w="906" src="https://wechat2rss.xlab.app/img-proxy/?k=55f0b9dc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShR9bd43SdiaHs2wWQzfzxmLYtjXG326yQIArOia0SZrDaSic346TxvYwaVGxib54G1DJxibvbAxVw1Tdzjg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><mp-miniprogram class="miniprogram_element" data-miniprogram-appid="wxececc7ef1827721a" data-miniprogram-path="pages/index/index?id=68349" data-miniprogram-nickname="推文留言" data-miniprogram-avatar="http://mmbiz.qpic.cn/mmbiz_png/IdY9QibLZOIP4icic16HVlcUdlwhkPNWs0YMibENKk7afvGwf5CXTzvZFRVwPDvz4YRbyd9wVNzbCia5MnkCFVDJtvg/640?wx_fmt=png&amp;wxfrom=200" data-miniprogram-title="留言区" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/Yb89GDkShR9bd43SdiaHs2wWQzfzxmLYtL8hchriay0Q1hVBC9zLhJMQlgXWQ3lydxJ2vmcibKeSG9J872ZphSq7A/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0"></mp-miniprogram></p><p><br/></p>



<p><a href="2247483887">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=5fbaab02&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2ODQwNzAzNw%3D%3D%26mid%3D2247483887%26idx%3D1%26sn%3D76b50e1bcec2fc4a1d64da1e541b38f9%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 09 Dec 2019 22:35:00 +0800</pubDate>
    </item>
    <item>
      <title>被好友嫌弃拉黑？这一招绝地反杀你一定不知道！</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzI2ODQwNzAzNw==&amp;mid=2247483812&amp;idx=1&amp;sn=91200324418a9dc57a1ef5cc6157f905</link>
      <description>好久没清理qq好友了,也不知道你过得好不好,反正你肯定是被盗了,我也不打王者荣耀干嘛发给我呢?打开这个网址扫</description>
      <content:encoded><![CDATA[<p>
原创 <span>想泡花茶</span> <span>2019-11-14 12:45</span> <span style="display: inline-block;"></span>
</p>

<p>好久没清理qq好友了,也不知道你过得好不好,反正你肯定是被盗了,我也不打王者荣耀干嘛发给我呢?打开这个网址扫</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=d6382a92&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9woKkCYGWpJuanDCOnCSIlfbX9Zu3JOnoJ9ONtHATAfebxf9qbr5b6w%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">好久没清理</span>qq<span style="font-family: 宋体;">好友了</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">也不知道你过得好不好</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">反正你肯定是被盗了</span><span style="font-family: Calibri;">,</span></span></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">我也不打王者荣耀干嘛发给我呢</span>?</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6197183098591549" data-s="300,640" style="" data-type="png" data-w="355" src="https://wechat2rss.xlab.app/img-proxy/?k=6b3625a7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9M0w6Qz2BiamnbFiaXbJyTGW3aDj1KGQUdYa6Qjdh7KL2QNR6csHNr0HA%2F640%3Fwx_fmt%3Dpng"/><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="2.1670428893905194" data-s="300,640" style="" data-type="png" data-w="886" src="https://wechat2rss.xlab.app/img-proxy/?k=507fe287&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9cPb7KRxiaicRFiaf34bNEP26eftrLz1jRyw6t83CaOVwqHWkMfs1Z98xQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">打开这个网址扫下目录就扫到了后台</span>,<span style="font-family: 宋体;">本来盲打了一个</span><span style="font-family: Calibri;">xss</span><span style="font-family: 宋体;">可是半天没反应</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">看着是</span><span style="font-family: Calibri;">asp</span><span style="font-family: 宋体;">的这么简陋</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">试试万能密钥一下</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">还就进去了</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.34552845528455284" data-s="300,640" style="" data-type="png" data-w="1230" src="https://wechat2rss.xlab.app/img-proxy/?k=6ecff035&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9uV5SfciaB2DUZcZibo77mV7icqHn4U0ONTZS7Lh4CWvVomicZXZRbKaE1A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">进来了发现</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">还有</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">号码还躺在里面</span>......</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5626151012891344" data-s="300,640" style="" data-type="png" data-w="1086" src="https://wechat2rss.xlab.app/img-proxy/?k=211ac04f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9mdAicuZ1ZUDAR8bhureicWvUic6rTSec6rFia8foian7O1xOkl6udMdZ1Vw%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">进是进来了</span>,<span style="font-family: 宋体;">不能这么算了</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">扒下信息吧</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">登陆框都有万能密钥那后台里肯定到处都是注入</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">但是</span><span style="font-family: Calibri;">access</span><span style="font-family: 宋体;">数据库我这跑不出来</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">再扫扫目录吧</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">发现一个</span><span style="font-family: Calibri;">mdb</span><span style="font-family: 宋体;">目录</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.41383812010443866" data-s="300,640" style="" data-type="png" data-w="766" src="https://wechat2rss.xlab.app/img-proxy/?k=b902d64f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk96NPZZCxjzXW4UdHuESgN8hb2tB6kvyV43QVFasdGRsXVoIRyZq7J7Q%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">访问这个目录</span>,<span style="font-family: 宋体;">还有目录遍历</span><span style="font-family: Calibri;">....</span><span style="font-family: 宋体;">还使用的简易服务器工具</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">心可真大</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">直接下数据库看看</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.41893830703012913" data-s="300,640" style="" data-type="png" data-w="697" src="https://wechat2rss.xlab.app/img-proxy/?k=b2e9db55&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9G2J5hSrzxN2qyj0xtnLaxl9oogc9mqJDlS4AmzVx4TaHBvIaKlSYtw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">打开数据库</span>,<span style="font-family: 宋体;">发现</span><span style="font-family: Calibri;">mail</span><span style="font-family: 宋体;">字段还拿</span><span style="font-family: Calibri;">qq</span><span style="font-family: 宋体;">邮箱</span><span style="font-family: Calibri;">.....</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.22589167767503301" data-s="300,640" style="" data-type="png" data-w="757" src="https://wechat2rss.xlab.app/img-proxy/?k=bd5a9848&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9Juke78hAcw2iabJy5uk6H80W2TR1ibf1aJbibiaDibYrvc5Qv03ibMEypvZg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">搜索引擎了一通什么收录都没看见</span>, <span style="font-family: 宋体;">然后呢看了一下这个</span><span style="font-family: Calibri;">qq</span><span style="font-family: 宋体;">资料</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">原来还有旗下网站</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">业务有点广的嘛</span><span style="font-family: Calibri;">...</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1.393939393939394" data-s="300,640" style="" data-type="png" data-w="429" src="https://wechat2rss.xlab.app/img-proxy/?k=cafd1037&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk99hmialFZwTPiawibsO5zAfSRvf17MSTdfL7RekdjUgnNjBfq8ibibGCT0Bw%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">打开一个还卖吃鸡辅助的噢</span>,<span style="font-family: 宋体;">真是业务广</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.48203125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=99ee76c9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9AIfgJtpEkjWCxb5ibvw45HKmZFIXgENYcH8BqnssvgoK94rVr28Z5gA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">随手一个</span>robots,</span><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">太不长心眼了</span>,xiaocms和后台都出来了</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6334310850439883" data-s="300,640" style="" data-type="png" data-w="682" src="https://wechat2rss.xlab.app/img-proxy/?k=503ee832&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9cVZs1Kib2icJNeM3PFMxQ4LzlyaT25n874g8QWq9urdLVPKAP8KSYx1w%2F640%3Fwx_fmt%3Dpng"/><br/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">根据后台实锤就是这套</span>cms了</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.51015625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=c3d81b50&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9l8fhflPXgLSQAIBRUuZ6Xv9GyXleDYiaiaAhrBickSZeSsmuYKgrIcwDg%2F640%3Fwx_fmt%3Dpng"/><br/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">于是去官网下来了这一套</span>cms,<span style="font-family: 宋体;">看看能不能拿吧</span><span style="font-family: Calibri;">,</span><span style="font-family: 宋体;">这套</span><span style="font-family: Calibri;">cms</span><span style="font-family: 宋体;">对</span><span style="font-family: Calibri;">get,post</span><span style="font-family: 宋体;">做了</span><span style="font-family: Calibri;">html</span><span style="font-family: 宋体;">实体化</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3669821240799159" data-s="300,640" style="" data-type="png" data-w="951" src="https://wechat2rss.xlab.app/img-proxy/?k=456dbf53&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk94xXCiapA0aIzicgL6Y8ZXzgbK0jK5zeKguq8ZkP5z1D8AZt4qZEGic88w%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">并且有个安全函数</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18265440210249673" data-s="300,640" style="" data-type="png" data-w="761" src="https://wechat2rss.xlab.app/img-proxy/?k=036007df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk94lQHj25INvdjNANpSmB2icsJ0y3Dg2Anh0cS0OiandpevjLicbDwPgljg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">并且对这些个超全局变量做了过滤</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.1976" data-s="300,640" style="" data-type="png" data-w="1250" src="https://wechat2rss.xlab.app/img-proxy/?k=ca6359df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9bYqLgpAibkAJ9tNLqqXibKnw3eKJq0ll8BOlRdIMEXmBJGET4DwBeqsw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">然后</span></span><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">使用了</span>pdo预编译，</span><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">只能看看被</span>pdo照顾不到的地方,经多次观察...</span></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">终于我还是放弃了前台</span>,还是看看后台吧,这有个注入,并且支持pdo,多语句的话,进去是可以拿shell的</span></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"> </span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.632965165675446" data-s="300,640" style="" data-type="png" data-w="1177" src="https://wechat2rss.xlab.app/img-proxy/?k=b9223be7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9BDcqYaSnJ5cADtOaxsHnZzKoMk1ib0YsnueuIg3ka40oB6Pn8rH0dnQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">还有任意文件上传</span>,type和size都可控,这也可以拿shell的</span></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"> </span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.2974828375286041" data-s="300,640" style="" data-type="png" data-w="874" src="https://wechat2rss.xlab.app/img-proxy/?k=6795599c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk91hjPq68H3f2rYUXPxxtpGXNPrg5IvqkvSibtghB2HBicEpy6W4pS7m5Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.39768683274021355" data-s="300,640" style="" data-type="png" data-w="1124" src="https://wechat2rss.xlab.app/img-proxy/?k=77c397f7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk97bcAAR8hznET8NibjrXtPVLLibCE4gBzmfESovxGibiavspHL4bTdrSP6g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">还有任意目录删除</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.581958195819582" data-s="300,640" style="" data-type="png" data-w="909" src="https://wechat2rss.xlab.app/img-proxy/?k=ec3702b9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9iac37XNjSxTW2x3I2hPN1kGyibUpnmeHQ7opUxLjZIuxqNTobiaicjSRIQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">但是我进不了后台啊</span>..... 咋办呢</span></p><p><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">挠挠头，点起一根香烟，想想这小子，从钓鱼站开始就是很不严谨，爱使用一键化，</span>robots默认的都没有删除过， 那么这个站是Windows的，十有八九他用phpstduy搭建的，试试?</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1.008" data-s="300,640" style="" data-type="png" data-w="750" src="https://wechat2rss.xlab.app/img-proxy/?k=cd387f06&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk99iaU3cBPev71lvCpcJzCEmIfdJ4H2FtAeKYI2RYUKc9VOxLoYLrjuPw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">猜对了，还真有，</span>dir找到网站目录了，</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.24890446976336547" data-s="300,640" style="" data-type="png" data-w="1141" src="https://wechat2rss.xlab.app/img-proxy/?k=588a3b4d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk90v3XicNcA0DyGwyiabdz54t5mvRoA3NKz3ulnvlwvn3F74yPiaj5vx9tQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">往里面</span>echo<span style="font-family: 宋体;">一句话，菜刀连接，</span><span style="font-family: Calibri;">08</span><span style="font-family: 宋体;">的还没一个杀软，直接烂土豆上去提权</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5935114503816794" data-s="300,640" style="" data-type="png" data-w="524" src="https://wechat2rss.xlab.app/img-proxy/?k=e8bde0cb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9G3KqNYJGzBS6eGMZtZvk5MTuqdt6vd7n26XUqS2oDMHzfnNDB84W1g%2F640%3Fwx_fmt%3Dpng"/><br/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">服务器逛了一圈，并没有发现有关于这人的资料信息啥的，白来一圈，</span></span></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">我还是得打到他</span>PC才有办法搞点事情</span></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">于是就</span></span><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">仿</span></span><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">了</span></span><span style="font-family: 宋体;font-size: 16px;"><span style="font-family: 宋体;">个这页面</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4281072298943948" data-s="300,640" style="" data-type="png" data-w="1231" src="https://wechat2rss.xlab.app/img-proxy/?k=bca009a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9nOFW9eGyjebYojrGKOSrZrAlkodLKhD4dYeVya3Fwlh0dnCWrUMDCQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">三个浏览器我都和我的免杀捆绑起来，随便挑一个你都得遭</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1" data-s="300,640" style="" data-type="png" data-w="98" src="https://wechat2rss.xlab.app/img-proxy/?k=a502bc02&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9UxhY9TvfBaqhUicyQq19pKibPjTcJeuClKM4iaR4EHicbXIK2iaZuPaermA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">专为目标制作的木马捆绑程序，三个只要任意执行一个就会上线，</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">直接</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">在浏览器图标上做了一个</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">下载</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">链接，</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">在后台登录代码里插入跳转代码，跳转代码通过</span></span><span style="font-family: 宋体;font-size: 14px;">cookie<span style="font-family: 宋体;">来判断，如果</span><span style="font-family: Calibri;">TZ</span><span style="font-family: 宋体;">这个</span><span style="font-family: Calibri;">cookie</span><span style="font-family: 宋体;">值为空就跳转 ，如果跳转过就在浏览器里添加一个</span><span style="font-family: Calibri;">TZ cookie </span><span style="font-family: 宋体;">避免每次都跳转。</span></span></p><p style="text-indent: 32px;text-align: center;"><span style="font-family: 宋体;font-size: 16px;"> </span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">当目标打开网站</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">后台</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">时候</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">直接跳转</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">升级浏览器</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">页面</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">，他会点击更新程序下载图标，下载了我加工的更新程序自然而然便会感染我的大</span></span><span style="font-family: 宋体;font-size: 14px;">MA</span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">，哈哈哈这样目标就打回来了，做好水坑攻击以后便是长时间的耐性等待。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6240963855421687" data-s="300,640" style="" data-type="png" data-w="415" src="https://wechat2rss.xlab.app/img-proxy/?k=e6e536dd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9eYQ62S5pyVGKuiclThzUCNxg0RonjnLlPIA5icUiaiapyibrnZBCJzRXDNA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">经过漫长的等待目标终于上线了，虽然这次钓鱼等待时间过长不过好在还是拿到了目标，既然</span>CS<span style="font-family: 宋体;">已经上线先简单看下目标就可以进一步对目标渗透了。</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3155216284987277" data-s="300,640" style="" data-type="png" data-w="786" src="https://wechat2rss.xlab.app/img-proxy/?k=90bba9bf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk94uMs1lvQ7lPFkJBOCLibCGdXzAmnv4oVNhu6ibaHGtaR1RETsLicQD5ZQ%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.18958502847843775" data-s="300,640" style="" data-type="png" data-w="1229" src="https://wechat2rss.xlab.app/img-proxy/?k=d7f780e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk94hJVia4M2ZoPk2diaMTxEjTAz1PaAeic1TIWzVibePr7mDptAhVo76IeaA%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">通过对数据的分析发现目标还有不少傻瓜中招，被钓鱼网站钓鱼</span></span><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">。</span></span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">不过，我还是逛了一圈没有发现这个人的啥信息，全是别人的，难道这台电脑只是他搞这些用的，平常不拿来打游戏，上网啥的？</span></span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"> </span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">看来还是得想点其他招了，我去下了他的和平精英除草，</span>app<span style="font-family: 宋体;">需要卡密激活才能使用</span></span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"> </span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">将他的</span>app<span style="font-family: 宋体;">里注入一个</span><span style="font-family: Calibri;">shell</span><span style="font-family: 宋体;">，安装后就弹回</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="1.7898936170212767" data-s="300,640" style="" data-type="png" data-w="376" src="https://wechat2rss.xlab.app/img-proxy/?k=a81ffb6b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9ibw3U778b64yQpibnKBWfYSwSM0bK87B4QDO4GaMrcpMm6ThJCnsWV0A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">加上他的</span>qq<span style="font-family: 宋体;">，我购买了卡密，但是</span><span style="font-family: Calibri;">app</span><span style="font-family: 宋体;">安装上去卡密激活不了，诱使他安装一下</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.4837310195227766" data-s="300,640" style="" data-type="png" data-w="461" src="https://wechat2rss.xlab.app/img-proxy/?k=d08cfb94&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9Mk7vvv0CyUnleDPWicS812Iibh4drrsagtsQSuxFLvIWic5riaJMCicZchw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5745140388768899" data-s="300,640" style="" data-type="png" data-w="463" src="https://wechat2rss.xlab.app/img-proxy/?k=494334fa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk933hxfNmAQMDfM0YyCa98v7icIlt5rlenlP6VcUicspfR5O91GmzQ2LUg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.3747412008281574" data-s="300,640" style="" data-type="png" data-w="483" src="https://wechat2rss.xlab.app/img-proxy/?k=844d7bbd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9nI9FicWEseoyJQ5P3aV9lVAZl93nVY4UbsUdNmb49QxIS0eXCcZQ3fA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7524038461538461" data-s="300,640" style="" data-type="png" data-w="416" src="https://wechat2rss.xlab.app/img-proxy/?k=cfeac8c8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9afaPrluCnia8dhp496nZOn6dIKCgJF6UGIp1s5q8E1uPMU3g7EoPSKw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">我当然知道要联网，不然你怎么能上线</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.9372937293729373" data-s="300,640" style="" data-type="png" data-w="303" src="https://wechat2rss.xlab.app/img-proxy/?k=f19bd1b6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9Jkias4pru7Rcdz6dHdhic6IfKrQwp4ibyM1s7Fyn9Od5oAiaxjEGoaDM5A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">翻一翻手机</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.13730569948186527" data-s="300,640" style="" data-type="png" data-w="772" src="https://wechat2rss.xlab.app/img-proxy/?k=6e25bd5f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9EaibXW8lrDtErrxKiaYJQiby8oiaMibHtr8mYwYk2Jfc5kGI1WQrK11slrA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">看看他的手机信息，拿到手机号了，浙江人，魅族手机</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.5071428571428571" data-s="300,640" style="" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=be8aac00&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9QghwqiaIyzkbGicomjPkmicLM1unNQdCAzfL23cco3LLiakSZkklbQRUVg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.30357142857142855" data-s="300,640" style="" data-type="png" data-w="616" src="https://wechat2rss.xlab.app/img-proxy/?k=30087997&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk92N4RqGQwibYAJEtQMskyrnwv9dOKvX9qOxVFlgBKic1uAJM394YiaNAPQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">看看短信</span></span><span style="font-family: 宋体;font-size: 14px;">,<span style="font-family: 宋体;">这里已经掌握了他家具体位置了</span></span></p><p><br/><span style="font-family: 宋体;font-size: 14px;"></span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;"></span></span><br/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.38636363636363635" data-s="300,640" style="" data-type="png" data-w="924" src="https://wechat2rss.xlab.app/img-proxy/?k=7c8116ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9R7NDkmkub7R6IJDnZwHANMc4Magh0SmzISsJj5Nsv2DTniccPQPKFXA%2F640%3Fwx_fmt%3Dpng"/></p><p>找这个勤奋小伙聊聊天~</p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.6919315403422983" data-s="300,640" style="" data-type="png" data-w="409" src="https://wechat2rss.xlab.app/img-proxy/?k=bcaac4d7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9QEzf8MbOSRwxiaMEdWNr9z4Pgf8fMibczjL9XptWpuhaKRq7NxgCpSOA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">他不知道我是什么人，直接问我是不是jc，我对他信息的掌握都是真实的，一步步逼问他，</span></p><p><span style="font-size: 14px;">当自己的生活和所做的不正当的事情曝光，内心承受的压力是很大的。</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7412060301507538" data-s="300,640" style="" data-type="png" data-w="398" src="https://wechat2rss.xlab.app/img-proxy/?k=9a6243f0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9GgXo3TuFbu4TfSkfR4mVd6jWH6FRRVSXGicXnTSnaWPSGrrdNNC3oiaQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.7081218274111675" data-s="300,640" style="" data-type="png" data-w="394" src="https://wechat2rss.xlab.app/img-proxy/?k=29a57a5f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9beGNdWNELMvBdMdy275jqSicEoVDiacl8vQC0t4xpqia77QQicgzHoCiacg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">说完之后我发现我的好友列表已经没了他，再添加也不给任何回应</span></span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-ratio="0.828" data-s="300,640" style="" data-type="png" data-w="250" src="https://wechat2rss.xlab.app/img-proxy/?k=51fa6600&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYb89GDkShRibGnibHH37LNedFKggV3yxk9MyIiby1MaVhmgNe9NnfvCjricjFJ7bTZD5VoYHPiaOrOPIApafStIiaQ0g%2F640%3Fwx_fmt%3Dpng"/><br/></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">他到底怎么选择我也不得而知，即使关站那也可能不会结束</span></span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">希望他的选择是正确的</span></span></p><p style="text-indent: 28px;text-align: center;"><span style="font-family: 宋体;font-size: 14px;"><span style="font-family: 宋体;">好运和幸福只会降临在，当你开始为自己的未来一步一步脚踏实地的操作时。</span></span></p><p style="text-align: justify;"><span style="font-family: 宋体;font-size: 14px;">     </span></p><p style="text-align: center;"><mp-miniprogram class="miniprogram_element" data-miniprogram-appid="wxececc7ef1827721a" data-miniprogram-path="pages/index/index?id=60773" data-miniprogram-nickname="推文留言" data-miniprogram-avatar="http://mmbiz.qpic.cn/mmbiz_png/IdY9QibLZOIP4icic16HVlcUdlwhkPNWs0YMibENKk7afvGwf5CXTzvZFRVwPDvz4YRbyd9wVNzbCia5MnkCFVDJtvg/640?wx_fmt=png&amp;wxfrom=200" data-miniprogram-title="留言区" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/Yb89GDkShRibGnibHH37LNedFKggV3yxk9smXBSY2WPmx6SMudXFS6hC1TsYhiaPQRGhhFSoInCjlEVkuRwQjA0Rg/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0"></mp-miniprogram></p>



<p><a href="2247483812">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=56054bbd&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2ODQwNzAzNw%3D%3D%26mid%3D2247483812%26idx%3D1%26sn%3D91200324418a9dc57a1ef5cc6157f905%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 14 Nov 2019 12:45:00 +0800</pubDate>
    </item>
  </channel>
</rss>