命令执行漏洞(附例题)

一.原理

应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。

二.利用条件

1、应用调用执行系统命令的函数

2、将用户输入作为系统命令的参数拼接到了命令行中

3、没有对用户输入进行过滤或过滤不严

三.分类

1.远程命令执行漏洞

概念:远程命令执行漏洞,指用户通过浏览器提交执行操作命令, 由于服务器端,没有针对执行函数做过滤,就执行了恶意命令

2、远程代码执行漏洞

概念:代码执行漏洞也叫代码注入漏洞,指用户通过浏览器 提交执行恶意脚本代码,执行恶意构造的脚本代码

四.例题

[SWPUCTF 2021 新生赛]easyrce

1.给一串代码,直接审计

eval():把字符串按照 PHP 代码来计算,需以分号结尾

  1. error_reporting(0);:这行代码将错误报告设置为关闭状态。这意味着在执行PHP代码时,不会显示任何错误或异常信息。这可能会导致难以调试和发现潜在的问题。
  2. highlight_file(__FILE__);:这行代码使用highlight_file()函数来高亮显示当前文件的代码。__FILE__是一个预定义的常量,它表示当前文件的路径和文件名。这个功能可以在调试或查看代码时提供帮助。
  3. if(isset($_GET['url'])):这行代码检查是否有一个名为"url"的GET参数存在。$_GET是一个超全局数组,用于获取通过HTML表单或URL传递的变量值。如果存在名为"url"的GET参数,则继续执行代码。
  4. eval($_GET['url']);:这行代码使用eval()函数执行用户提供的代码。$_GET['url']获取前面检查的GET参数"url"的值,并将其作为字符串传递给eval()函数执行。这意味着用户可以在URL中输入任何PHP代码,并将其执行。

发现通过GET传参,实现命令执行

2.构造payload,查看权限,发现为www-data

/?url=system("whoami");

2.查看目录,发现flllllaaaaaaggggggg

/?url=system("ls /");

3.cat查看文件,得到flag

/?url=system("cat /flllllaaaaaaggggggg");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
格式化字符串漏洞是一种常见的安全漏洞,可以被恶意用户利用来读取内存中的敏感信息或执行任意代码。下面是一个格式化字符串漏洞的示例: ``` #include <stdio.h> int main() { char secret[] = "This is a secret message"; char input[100]; printf("请输入一个字符串:"); scanf("%s", input); printf(input); return 0; } ``` 在这个例子中,程序要求用户输入一个字符串,然后将该字符串作为格式化字符串传递给`printf`函数进行输出。然而,如果用户输入的字符串中包含格式化字符串的占位符(例如`%s`),`printf`函数会尝试解析并输出对应位置的参数。如果输入的字符串中包含了其他的格式化字符串,那么程序就有可能发生未定义的行为,比如读取内存中的敏感信息或执行任意代码。 为了修复这个漏洞,可以使用`printf`函数的格式化字符串参数来指定要输出的具体内容,而不是直接将用户的输入作为格式化字符串。例如,可以将`printf`函数的调用修改为`printf("%s", input);`,这样就可以确保`printf`函数只输出输入的字符串,而不会解析其中的格式化字符串。 总结来说,格式化字符串漏洞是一种安全漏洞,可以通过修改程序代码来避免。在处理用户输入时,应该谨慎使用格式化字符串函数,并确保只输出用户输入的内容,而不是直接将用户输入作为格式化字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MATLAB代码示例,用于将一个字符串添加到字符串数组的末尾(详细步骤).txt](https://download.csdn.net/download/weixin_44609920/88239228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pwn 格式化字符串漏洞例题](https://blog.csdn.net/limenzzz/article/details/127016613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值