命令执行与代码执行漏洞原理

命令执行定义 当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。

形成原因 脚本语言优点是简洁,方便,但也伴随着一些问题,如速度慢,无法解除系统底层,如果我们开发的应用需要一些除去web的特殊功能时,就需要调用一些外部程序。带来方便的同时也存在威胁。

漏洞危害 继承Web服务程序的权限去执行系统命令或读写文件 反弹shell 控制整个网站甚至控制服务器 进一步内网渗透

代码执行与命令执行的区别 命令执行漏洞: 直接调用操作系统命令(相当于在cmd下敲命令) 命令执行漏洞的原理:在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令(如添加一个名为admin 密码为admin的用户 net user admin admin/add net localgroup administrators admin /add 加入管理员组(赋予管理员权限))

img

command1&command2 两个命令同时执行
command1&&command2 只有前面命令执行成功,后面命令才继续执行
command1;command2 不管前面命令执行成功没有,后面的命令继续执行
command1||command2 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

命令执行常用函数

 1. System:system函数可以用来执行一个外部的应用程序并将相应的执行结果输出,函数原型如下:
 string system(string command, int&return_var)
其中,command是要执行的命令,return_var存放执行命令的执行后的状态值。
 2. Exec:exec函数可以用来执行一个外部的应用程序
string exec (string command, array&output, int &return_var)
其中,command是要执行的命令,output是获得执行命令输出的每一行字符串,return_var存放执行命令后的状态值。
 3.Passthru:passthru函数可以用来执行一个UNIX系统命令并显示原始的输出,当UNIX系统命令的输出是二进制的数据,并且需要直接返回值给浏览器时,需要使用passthru函数来替代system与exec函数。Passthru函数原型如下:
void passthru (string command, int&return_var)
其中,command是要执行的命令,return_var存放执行命令后的状态值。
 4. Shell_exec:执行shell命令并返回输出的字符串,函数原型如下:
string shell_exec (string command)
其中,command是要执行的命令。

代码执行漏洞: 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。 很难通过黑盒查找漏洞,大部分都是根据源代码判断代码执行漏洞。

img

代码执行相关函数: PHP: eval、assert、preg_replace()、+/e模式(PHP版本<5.5.0)

漏洞分类

**1.代码层过滤不严
 商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函来调用:
system("/bin/program --arg$arg");
2.系统的漏洞造成命令注入
bash破壳漏洞(CVE-2014-6271)
3.调用的第三方组件存在代码执行漏洞
如WordPress中用来处理图片的ImageMagick组件
JAVA中的命令执行漏洞(struts2/ElasticsearchGroovy等)
ThinkPHP命令执行**

实战 下面来看看TP5.1的命令执行漏洞

img

在url添加上poc

/index.php?s=index/\think\Container/invokeFunction&function=call_user_func_array&vars[]=system&vars[1][]=dir

img

img

成功执行命令 TP的漏洞还有很多大家可以去试试

修复方案

1.尽量少用执行命令的函数或者直接禁用
2.参数值尽量使用引号包括
3.在使用动态函数之前,确保使用的函数是指定的函数之一
4.在进入执行命令的函数/方法之前,对参数进行过滤,对敏感字符进行转义
5.能使用脚本解决的工作,不要调用其他程序处理。尽量少用执行命令的函数,并在disable_functions中禁用
6.对于可控点是程序参数的情况下,使用escapeshellcmd函数进行过滤,对于可控点是程序参数值的情况下,使用escapeshellarg函数进行过滤
7.参数的值尽量使用引号包裹,并在拼接前调用addslashes进行转义
而针对由特定第三方组件引发的漏洞,我们要做的就是及时打补丁,修改安装时的默认配置。
g函数进行过滤
7.参数的值尽量使用引号包裹,并在拼接前调用addslashes进行转义
而针对由特定第三方组件引发的漏洞,我们要做的就是及时打补丁,修改安装时的默认配置。


#  网络安全基础入门需要学习哪些知识?

## 网络安全学习路线

这是一份网络安全从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

![img](https://img-blog.csdnimg.cn/d94b77bc9eee4d11abab8604ea7d2a64.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v19T846c-1677167179814)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]编辑

##  阶段一:基础入门

![img](https://img-blog.csdnimg.cn/img_convert/d8ad143de3b89a20307179b8d44c4f6f.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sRoDZu4K-1677167179814)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

> 网络安全导论
>
> 渗透测试基础
>
> 网络基础
>
> 操作系统基础
>
> Web安全基础
>
> 数据库基础
>
> 编程基础
>
> CTF基础

**该阶段学完即可年薪15w+**

## 阶段二:技术进阶(到了这一步你才算入门)

![img](https://img-blog.csdnimg.cn/img_convert/8d47774ee74b3a902b1deb00d3fb26f7.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-il25GFVz-1677167179815)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]



> 弱口令与口令爆破
>
> XSS漏洞
>
> CSRF漏洞
>
> SSRF漏洞
>
> XXE漏洞
>
> SQL注入
>
> 任意文件操作漏洞
>
> 业务逻辑漏洞

**该阶段学完年薪25w+**

## 阶段三:高阶提升

![img](https://img-blog.csdnimg.cn/img_convert/86eba8b6ea97417700bfc245ed75dea0.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ITOSD3Gz-1677167179816)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]





> 反序列化漏洞
>
> RCE
>
> 综合靶场实操项目
>
> 内网渗透
>
> 流量分析
>
> 日志分析
>
> 恶意代码分析
>
> 应急响应
>
> 实战训练

**该阶段学完即可年薪30w+**

## 阶段四:蓝队课程

![img](https://img-blog.csdnimg.cn/img_convert/385c5927bfeb1e4310d5fd914aa6dfe7.png)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKCwwld2-1677167179818)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]



> 蓝队基础
>
> 蓝队进阶
>
> 该部分主攻蓝队的防御,即更容易被大家理解的网络安全工程师。

**攻防兼备,年薪收入可以达到40w+**

## 阶段五:面试指南&阶段六:升级内容

![img](https://img-blog.csdnimg.cn/img_convert/3b653137f34ce068817347b444447b6c.png)

需要上述路线图对应的网络安全配套视频、源码以及更多网络安全相关书籍&面试题等内容



< img src="https://hnxx.oss-cn-shanghai.aliyuncs.com/official/1678694737820.png?t=0.6334725112165747" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值