产生原因

在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用 代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代 码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。
图一
分析漏洞产生原因:15:00

漏洞形成条件(缺一不可)

1、可控变量
2、漏洞函数

具体分析

两个小案例略微说明这两种漏洞:5:50
1、代码执行漏洞典例:php eval()函数:把括号内的语句当作php代码执行。
2、命令执行漏洞典例:php system()函数:把()的内容当作当前操作系统cmd命令执行,并可以通过echo输出。
3、可以知道,利用这个漏洞,可以对系统产生多样的危害。例如,我可以利用文件上传的函数(代码执行)上传一个木马文件,然后通过命令执行漏洞去执行这个木马。
4、此类漏洞相对较前面那几类漏洞在网站的出现几率要小,要具体看网站的作用。
如何测试是否存在两种漏洞:23:10
1、主要是具体情况具体分析,看页面主要是为了完成什么任务。
mozhe靶场演示命令执行漏洞(黑盒)–黑盒功能点命令执行-应用功能:28:00
1、linux下|符号可以执行多条命令(管道服务)。
2、”<”是空格的另一种形式/输入重定向?–cat<a.php
mozhe靶场演示命代码执行漏洞(白盒)–白盒代码及命令执行-代码分析:43:00
1、tac k.php(反引号执行系统命令)–相当于读取k.txt
2、echo可以显示命令执行结果。对于eval(),正常来说是代码执行,但是若是eval(echo``),则是命令执行–linux特性,反单引号可以执行系统命令。
黑盒层 RCE 漏洞检测-公开漏洞:1:00:00
1、学会利用网上公开的漏洞辅助。
2、poc是验证漏洞是否存在、exp是利用漏洞
webshell一句话后门初步原理理解–菜刀、蚁剑原理:1:26:20

防御

1、敏感函数禁用:如eval、assert等
2、变量过滤或固定(固定常用)
3、WAF产品