Code-Breaking 2020 Bashinj

Code-Breaking 2020 Bashinj

💡 原文中文,约2800字,阅读约需7分钟。
📝

内容提要

本文讨论了Bash语言中的代码注入漏洞,重点介绍了如何利用curl命令进行攻击。通过控制curl请求参数,攻击者可以劫持请求并执行恶意代码。文章提供了具体的攻击步骤,包括设置代理服务器和修改脚本以实现命令执行。

🎯

关键要点

  • Bash语言中的代码注入漏洞依赖于可控的执行代码或命令的方法。
  • curl命令的参数部分可控,但不能直接形成新的bash命令,因此不构成代码注入漏洞。
  • 通过控制curl请求参数,攻击者可以劫持请求并执行恶意代码。
  • 攻击者可以设置代理服务器,劫持靶机的curl请求,返回包含恶意代码的响应。
  • 靶机通过curl请求代理服务器,获取并保存修改过的脚本,从而执行恶意命令。

延伸问答

Bash语言中的代码注入漏洞是如何产生的?

代码注入漏洞依赖于可控的执行代码或命令的方法,而不是控制静态语法结构中的参数。

curl命令在代码注入攻击中扮演什么角色?

curl命令的参数部分可控,攻击者可以通过控制curl请求参数来劫持请求并执行恶意代码。

攻击者如何劫持靶机的curl请求?

攻击者可以设置代理服务器,劫持靶机的curl请求,返回包含恶意代码的响应。

如何通过curl命令执行恶意代码?

靶机通过curl请求代理服务器获取修改过的脚本,保存后执行恶意命令。

在Bash中,如何处理curl命令的参数?

curl命令的参数在执行时被视为函数参数,而不是新的bash命令,因此不能直接形成代码注入漏洞。

如何设置代理服务器以进行curl请求劫持?

可以使用-x选项指定HTTP代理,或者使用--resolve强制将curl请求解析到攻击服务器。

➡️

继续阅读