问题标签 [code-injection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用 C# 进行代码注入
你可以使用 windows 钩子或其他方法使用 c# 进行代码注入吗?我见过很多关于代码注入的事情,但所有这些都是用 C/C++ 完成的。我不懂这两种语言,翻译起来也很困难。有人对如何做到这一点有任何想法吗?
php - 在 PHP 中避免代码注入的最佳方法
我的网站最近遭到了攻击,在我看来,这是一个无辜的代码:
那里没有 SQL 调用,所以我不害怕 SQL 注入。但是,显然,SQL 并不是唯一的注入方式。
这个网站有一个解释和一些避免代码注入的例子:http ://www.theserverpages.com/articles/webmasters/php/security/Code_Injection_Vulnerabilities_Explained.html
您将如何保护此代码免受代码注入?
security - 防止命令行注入攻击
我们目前正在构建一个执行许多外部工具的应用程序。我们经常不得不将用户输入我们系统的信息传递给这些工具。
显然,这是一场等待发生的重大安全噩梦。
不幸的是,我们还没有在 .NET Framework 中找到任何执行命令行程序的类,同时提供与 IDbCommand 对象对数据库所做的相同类型的防范注入攻击。
现在,我们正在使用一个非常原始的字符串替换,我怀疑这还不够:
你们如何防止命令行注入攻击?我们计划实现一个非常严格的正则表达式,只允许一小部分字符通过,但我想知道是否有更好的方法。
一些澄清:
- 其中一些工具没有我们可以编程的 API。如果他们这样做了,我们就不会遇到这个问题。
- 用户不会选择要执行的工具,他们会输入我们选择的工具使用的元数据(例如,将版权声明等元数据注入目标文件)。
hook - 在 Windows 上从用户空间挂钩系统调用
我正在修补 connect() 以将网络流量重定向为库(NetHooker)的一部分,这很好用,但它取决于 ws2_32.dll 保持不变并且如果直接使用系统调用则不起作用。所以我想知道是否有办法在没有驱动程序的情况下捕获系统调用本身。有谁知道这是否可能?
c# - 我可以从 C# 在远程应用程序域中注入线程吗
我想知道是否可以将线程注入到在单独进程中运行的远程应用程序域中。
我的猜测是我可以使用调试接口(ICorDebug)来做到这一点,但我想知道是否还有其他方法?
php - 清理/清理 xpath 属性
我需要为元素属性动态构造一个 XPath 查询,其中属性值由用户提供。我不确定如何清理或清理此值以防止 XPath 等效于 SQL 注入攻击。例如(在 PHP 中):
最后一个特别让人想起以前的 SQL 注入攻击。
现在,我知道事实上会有包含单引号的属性和包含双引号的属性。由于这些是作为函数的参数提供的,那么清理这些输入的理想方法是什么?
code-injection - 代码注入不好吗?
有一些相当强大的工具,如SIMBL或Airfoil /Instant Hijack,它们使用代码注入。
据我了解,这些工具在其他程序中注入了自己的代码。这个想法对我来说听起来很危险,因为这似乎有可能使完全稳定的软件变得脆弱和“有缺陷”。这似乎也带来了安全风险。
出于稳定性或安全原因,是否应该避免使用这些工具?
macos - 将功能注入二进制文件的最佳方法
将功能插入二进制应用程序(3d 方,封闭源代码)的最佳方式是什么。
目标应用程序在 OSX 上,似乎是使用 gcc 3+ 编译的。我可以看到在二进制文件中实现的函数列表,并且已经调试和隔离了一个我想远程调用的特定函数。
zoomByFactor(x,y)
具体来说,当我从复杂的 HIDevice 接收到某些数据时,我想调用这个函数——我们称之为 void 。
我可以轻松地修改或将指令注入二进制文件本身(即修补不需要只在 RAM 中进行)。
你会推荐什么作为“很好”这样做的方式?
编辑:
我确实需要整个应用程序。所以我不能放弃它并使用图书馆。(对于那些需要道德解释的人:这是一个专有的 CAD 软件,其公司网站自 2006 年以来就没有更新过。我已经为这个产品付了钱(真的花了很多钱)并且有项目我无法轻易从中迁移的数据。该产品非常适合我,但我想使用我最近获得的新 HID。我已经检查了应用程序的内部结构,我相当有信心我可以使用相关数据调用正确的函数并使其正常工作)。
到目前为止,这是我所做的,而且非常贫民窟。
我已经通过这个过程修改了部分应用程序:
我正在做这种跳跃,因为二进制文件几乎有 100 兆大。
我在想的主要是我会在主应用程序循环中的某个地方跳转,启动一个线程,然后返回到主函数。
现在,问题是:我可以在哪里插入新代码?我需要修改符号表吗?或者,我怎样才能使 dylib 自动加载,以便我需要做的唯一“黑客”操作就是将对正常加载的 dylib 的调用插入到主函数中?
linux - 在 Linux 上从用户空间挂钩 sycall
有什么方法可以捕获 Linux 上的所有系统调用?我知道的唯一解决方案是使用 LD_PRELOAD à la fakeroot,但这仅适用于动态链接的应用程序。此外,这种方法需要枚举所有系统调用,这是我想避免的。
vbscript - 如何防止 ASP/VBScript 中的注入?
ASP(VBScript)中输入处理的最佳方式(或至少是最常见的方式)是什么?我主要关心的是 HTML/JavaScript 注入和 SQL 注入。是否有一些等效于 PHPhtmlspecialchars
或addslashes
等的?还是我必须使用字符串替换函数之类的手动操作?