当前位置:网站首页>【命令执行与中间件漏洞】
【命令执行与中间件漏洞】
2022-08-03 05:12:00 【一纸-荒芜】
前言
网络安全常见面试问题
题目
1.命令执行原理,常见函数,危害,和防护
原理:
应用程序有时需要调用一些执行命令的函数,由于服务器对代码中可执行的特殊函数入口没有做过滤,并且用户能够控制这些函数中的参数时,就可以将恶意命令拼接到正常命令中,从而造成命令执行攻击。
命令执行漏洞可以分为远程命令执行(代码执行)和系统命令执行两类
常见危险函数也分为两类:代码执行函数和命令执行函数。
管道符利用:
windows:
&前面的语句为假则直接执行后面的
&&前面的语句为假则直接出错,后面的也不执行
|直接执行后面的语句
||前面出错执行后面的
Linux:
;前面的执行完执行后面的
| 管道符,上一条命令的输出,作为下一条命令的输入
||当前面的执行出错时执行后面的
& 无论前边语句真假都会执行
&& 只有前边语句为真,才会执行后边语句
利用条件:
*用户能够控制的函数输入
*存在可以执行代码或者系统命令的危险函数
危害:
*继承Web服务程序的权限去执行系统命令或读写文件
*反弹shell
*控制整个网站甚至控制服务器
*进一步内网渗透
常见函数:
远程命令(php代码)执行漏洞----php代码执行
eval(),assert()
<?php
eval($_GET['pass']) //eval(),assert() 把字符串当代码执行
?>
<?php
assert($_GET['pass']);
?>
preg_replace()
call_user_func()
call_user_func_array()
$a($b)
利用远程命令执行还可以:
*?a=print(FILE); //获取当前绝对路径
__LINE__ 文件中的当前行号
__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名
__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录
*?a=var_dump(file_get_contents('c:\windows\system32\drivers\etc\hosts')); //读取文件
*?a=var_dump(file_put_contents($_POST[1],$_POST[2]));
POST写入
1=shell.php&2=<?php phpinfo()?> //写个shell插进去--可以写入一句话木马进去
系统命令执行漏洞 ----系统命令的执行
允许系统命令执行的函数有:
*system()
*exec()
*shell_exec()
*passthru()
*popen()
*反引号
系统命令执行其他利用方式:
*?a=type C:\windows\system32\drivers\etc\hosts //查看文件
*?a=cd chdir //查看当前绝对路径
*?a=echo "<?php phpinfo();?>" > E:\xampp\htdocs\php\os\phpinfo.php
写shell(phpinfo.php)插进去 --- 内容<?Php phpinfo() ?> 可以换成 一句话木马,要先查看当前路径
防护:
(1)尽量不要执行外部命令
(2)使用自定义函数或函数库来替代外部命令的功能
(3)使用escapeshellarg函数来处理命令参数,escapeshellarg函数会将任何引起参数或命令结束的字符转义,单引号“‘”替换成“’”,双引号""“替换成“””,分号“;”替换成“;”
(4)使用safe_mode_exec_dir指定要执行程序的主目录(php.ini),可以把会使用的命令提前放入此路径内safe_mode= On(打开php的安全模式)
safe_mode_exec_dir= /usr/local/php/bin/
2.中间件漏洞原理及利用
IIS
1.IIS 6.0
1.后缀解析 /xx.asp;.jpg。服务器默认不解析 ; 号及其后面的内容,相当于截断。
2.目录解析 /xx.asp/xx.jpg (xx.asp目录下任意解析)
3.默认解析 xx.asa xx.cer xx.cdx
4.RCE CVE-2017-7269
2.IIS 7.0-7.5
1.在Fast-CGI开启状态下,在文件路径后加上 /xx.php ,即 xx.jpg/xx.php 会被解析为php文件
3.PUT漏洞
1.开启WebDAV
2.拥有来宾用户,且来宾用户拥有上传权限
3.可任意文件上传
4.文件名猜解
1.IIS 8.0之前的版本支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种,需要安装ASP.NET。
而IIS 8.0之后的版本只能通过OPTIONS和TRACE方法猜测成功,但是没有ASP.NET的限制。
2.文件夹名前6位字符带点”.”,扫描程序会认为是文件而不是文件夹,最终出现误报
3.不支持中文文件名
Apache
1.后缀解析
test.php.x1.x2.x3 ( x1,x2,x3 为没有在 mime.types 文件中定义的文件类型)
Apache 将从右往左开始判断后缀,若x3为非可识别后缀,则判断x2,直到找到可识别后缀为止,然后对可识别后缀进行解析
2.htaccess
当AllowOverride被启用时,上传启用解析规则的.htaccess,覆盖apache主配置文件
3.目录遍历
配置 Options +Indexes 时Apache存在目录遍历漏洞。
4.CVE-2017-15715
%0A 绕过上传黑名单
Nginx
1.Fast-CGI关闭
在Fast-CGI关闭的情况下, Nginx 仍然存在解析漏洞: 在文件路径(xx.jpg)后面加上 %00.php , 即 xx.jpg%00.php 会被当做 php 文件来解析
2.Fast-CGI开启
在Fast-CGI开启状态下,在文件路径后加上 /xx.php ,则 xx.jpg/xx.php 会被解析为php文件
3.CVE-2013-4547
a.jpg\x20\x00.php
4.配置错误
a.目录穿越
如果配置中存在类似 location /foo {
alias /bar/; } 的配置时,/foo../ 会被解析为 /bar/../ 从而导致目录穿越的发生。
b.目录遍历
配置中 autoindex on 开启时,Nginx中存在目录遍历漏洞。
Tomcat
1.CVE-2017-12615
1.PUT方法上传任意文件
2.但限制了jsp后缀的上传,绕过办法:
a.Windows下不允许文件以空格结尾,以PUT /a001.jsp%20 HTTP/1.1上传到 Windows会被自动去掉末尾空格
b.Windows NTFS流Put/a001.jsp::$DATA HTTP/1.1
c. /在文件名中是非法的,也会被去除(Linux/Windows)Put/a001.jsp/http:/1.1
2.CVE-2020-1938
CVE-2020-1938为Tomcat AJP文件包含漏洞
3.弱口令&war远程部署
在tomcat8环境下默认进入后台的密码为tomcat/tomcat,未修改造成未授权即可进入后台
4.CVE-2019-0232
1.CVE-2019-0232为Apache Tomcat RCE
v.manager App暴力破解
后台密码用base64编码传输,抓包解密即可得到后台密码,也可以进行爆破
Weblogic
i.CVE-2017-10271 反序列化漏洞
ii.CVE-2018-2628 反序列化命令执行漏洞
iii.CVE-2018-2894 Weblogic 任意文件上传漏洞
iv.CVE-2020-14882 Weblogic 管理控制台未授权远程命令执行漏洞
v.SSRF Weblogic SSRF漏洞
vi.弱口令
总结
本期主要介绍了命令执行和中间件漏洞。
边栏推荐
猜你喜欢

pta a.1030的dijkstra+DFS方法

Modelarts第一次培训

跨域错误的原因及处理方法

Go (二) 函数部分1 -- 函数定义,传参,返回值,作用域,函数类型,defer语句,匿名函数和闭包,panic

npm run dev/serve 时报错

js implements a bind function

Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)

MySQL EXPLAIN 性能分析工具详解
网络流媒体下载的 10 种方法(以下载 Echo 音乐为例)

VSO Downloader Ultimate 5.0.1.45 中文多语免费版 在线视频下载工具
随机推荐
1.ROS环境搭建与基础工作
Redis6学习笔记
三角形个数
【特征选取】计算数据点曲率
0.ROS常用命令
TypeError: Cannot read property ‘xxxx‘ of undefined的解决方法
Kaggle 入门(Kaggle网站使用及项目复现)
7.15(6)
【myPow,2次幂,3次幂..代码实现】
Gradle的安装配置
Newifi路由器第三方固件玩机教程,这个路由比你想的更强大以及智能_Newifi y1刷机_smzdm
MySql数据库
-角谷猜想-
处理异步事件的三种方式
HarmonyOS应用开发第一次培训
初识C语言
Djiango第二次培训
求因子数量
Exception (abnormal) and Error (error) difference analysis
对页码的使用总结