Web安全:代码执行漏洞

  • A+
所属分类:安全文章

我们首先要强调的一点就是代码执行与命令执行不是同一个概念,若说二者真有什么共性之处,那便是,二者在程序的代码中往往都是调用相关语言的函数,这些函数都是平级的,没有区别。


若我们深入地考察二者之间的差别就会发现,一个是脚本代码层面的执行,一个是系统层面的cmd命令(或者bash命令)的执行。


代码执行或者命令执行一般都是通过代码审计来得到一些漏洞,比如对Discuz!、DedeCms及PHPCMS等系统进行代码审计。该过程可以发现某处代码存在SQL注入漏洞,然后用户提交一个特意构造的SQL语句到正常SQL逻辑中,从而实现注入,这其实就是一个将用户提交的数据当作代码来执行的过程,所以,它叫作代码执行。


命令执行就是调用一些可以执行系统命令的函数来实现在系统层面添加账户、修改账户密码及安装rootkit等操作。


代码执行是指攻击者通过浏览器或者其他客户端软件提交一些用户自己构造的PHP代码至服务器程序,服务器程序通过eval、assert及reg_replace等函数执行用户提交的PHP代码。


其实,代码执行是一个很广阔的概念,我们平时所见到的SQL注入(SQL代码执行)、跨站脚本(JS或者HTML代码执行)等漏洞都是代码执行漏洞。狭义来讲,eval/assert函数的执行属于代码执行,而system、exec、shell_ exec及passthru函数的执行,则应属于命令执行。


eval或者assert函数代码执行。开启浏览器,输入http://localhost:81/code_exec.php?a=phpinfo()。此时,我们提交的PHP代码phpinfo();被eval或者assert函数成功解析了,Web服务器返回信息如图1所示。

Web安全:代码执行漏洞

图1  执行phpinfo函数


微信公众号:计算机与网络安全

ID:Computer-network


Web安全:代码执行漏洞


一如既往的学习,一如既往的整理,一如即往的分享。感谢支持Web安全:代码执行漏洞

“如侵权请私聊公众号删文”



扫描关注LemonSec

Web安全:代码执行漏洞

觉得不错点个“赞”、“在看”哦Web安全:代码执行漏洞


本文始发于微信公众号(LemonSec):Web安全:代码执行漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: