标签: code-injection

C++ Dll Injection

我非常感谢你的帮助.

我一直试图将Dll注入远程进程并在其中进行一些更改,我现在遇到的问题是我不知道如何实现这一目标.

首先,这是我到目前为止开发的代码片段:
dllmain.cpp

#include <windows.h>
#include <stdio.h>

BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
switch (reason)
    {
      case DLL_PROCESS_ATTACH:
           MessageBox (0, "From DLL\n", "Process Attach", MB_ICONINFORMATION);
        break;

      case DLL_PROCESS_DETACH:
           MessageBox (0, "From DLL\n", "Process Detach", MB_ICONINFORMATION);
        break;

      case DLL_THREAD_ATTACH:
           MessageBox (0, "From DLL\n", "Thread Attach", MB_ICONINFORMATION);
        break;

      case DLL_THREAD_DETACH:
           MessageBox (0, "From DLL\n", "Thread Detach", MB_ICONINFORMATION); …
Run Code Online (Sandbox Code Playgroud)

c++ dll process code-injection

3
推荐指数
1
解决办法
4263
查看次数

GWT RequestFactory:如何在每个请求中使用单个EntityManager

为了得到RequestFactory持续连接的实体,我需要确保我用同样的EntityManager每个请求.

我根据ThreadLocal实现拼凑了我自己的Factory类,但我不确定如何正确释放资源(例如,如何知道请求已完成并调用close()).

是否有一种简单的方法可以确保在给定的ServletRequest中使用单个EntityManager而无需使用完整的J2EE/CDI?如果必须,我会采取这种方式,但我希望保持简单,特别是因为我想继续使用GWT附带的轻量级开发服务器.

gwt code-injection entitymanager cdi requestfactory

3
推荐指数
1
解决办法
3400
查看次数

@ManagedProperty - 将一个请求范围的bean注入另一个请求范围的bean

我有这个SearchBean:

@ManagedBean(name = "searchBean")
@RequestScoped
public class SearchBean implements Serializable
{
    private String input = null;

    // getter methods
    public String getInput() {
        return input;
    }

    // setter method
    public void setInput(String input) {
        this.input = input;
    }

    public String Submit() {
        return null;
    }    
}
Run Code Online (Sandbox Code Playgroud)

我可以使用@ManagedProperty将其注入另一个bean.例如:

@ManagedBean(name = "bookBean")
@RequestScoped
public class BookBean implements Serializable
{
    @ManagedProperty(value = "#{searchBean}")
    private SearchBean searchBean;  

    @PostConstruct
    public void init()
    {   
       System.out.println("Value: " + searchBean.getInput());
    }

    public SearchBean getSearchBean() {
       return …
Run Code Online (Sandbox Code Playgroud)

jsf code-injection jsf-2

3
推荐指数
1
解决办法
2万
查看次数

鉴于我的代码是开源的,而且我在服务器上运行,而且我接受几乎原始的代码,那可能发生在我身上的最糟糕的是什么?

我正在研究几种情况,即接受几乎原始的代码会更加容易.所以,

  1. 如果你不能lambda,你可以用表达式做什么最糟糕的,怎么样?
  2. 如果您不能使用导入以及如何使用导入的代码,您可以做的最糟糕的是什么?(不能使用X ==字符串扫描为X)

另外,如果有人可以想到这样的expr给出d = {key:value,...}:expr.format(key)== d [key],那么B是必要的

不改变格式的外观.

python security code-injection

3
推荐指数
1
解决办法
237
查看次数

Python应用程序中是否需要"cgi.escape"?

正在查看开发人员的代码.他在Python应用程序中做过我以前从未见过的事情.他的背景是PHP,只是学习python,所以我不知道这是否可能是他习惯使用的不同系统架构的延续.

他告诉我,此代码的目的是防止用户通过代码插入攻击应用程序.我很确定这对我们的用例来说是不必要的,因为我们从不将数据作为代码进行评估,但我只是想确认并询问社区.

# Import library
from cgi import escape

# Get information that the client submitted
fname   = GET_request.get('fname',   [''] )[0]

# Make sure client did not submit malicious code <- IS THIS NECESSARY?
if fname:
    fname = escape(fname)
Run Code Online (Sandbox Code Playgroud)
  • 这在Python应用程序中通常是必需的吗?
  • 在什么情况下有必要?
  • 在什么情况下没有必要?

python cgi code-injection

3
推荐指数
1
解决办法
4144
查看次数

将Maven参数注入Java类

我想将settings.xml配置文件参数注入Java类.我尝试使用maven-annotation-plugin,但值为null.我想知道这是不是因为这个插件是为Mojo设计的

Setting.xml片段

  <profiles>
    <profile>
      <id>APP_NAME</id>
      <properties>
        <test.email>USER_EMAIL</test.email>
        <test.password>USER_PASSWORD</test.password>
      </properties>
    </profile>
  </profiles>
Run Code Online (Sandbox Code Playgroud)

在班上

@Parameter(defaultValue = "test.email", readonly = true)
private String userEmail;

@Parameter(defaultValue = "test.password", readonly = true)
private String userPassword;
Run Code Online (Sandbox Code Playgroud)

java code-injection maven

3
推荐指数
1
解决办法
2601
查看次数

AspectJ - 编译时 - 在JDK类中编织类型

我需要在JDK类中添加字段.例如java.lang.String

首先我试过:

declare parents: ( * && !java.lang.Object ) implements VistaInt;
public String[] VistaInt.abc;
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用.

它会发出警告

this affected type is not exposed to the weaver:
org.aspectj.lang.Signature [Xlint:typeNotExposedToWeaver]
Run Code Online (Sandbox Code Playgroud)

所以我在互联网上进行了研究,发现它看起来更难,并且AspectJ不支持直接引入JDK类,这里说:

http://www.inf.usi.ch/faculty/binder/documents/pppj08.pdf

但是有人提出了一些callse FERRARI框架,AspectJ的工具应该允许注入JDK类.

所以我一直在寻找它并到达这里:

http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02520.html

但这些链接都不起作用,我无法找到任何其他来源,工具或任何可以帮助我的东西.

你有什么想法,在哪里可以找到这个库,或者如何注入java JDK类型?

谢谢!

java aop aspectj code-injection

3
推荐指数
1
解决办法
1185
查看次数

如何避免使用`#{str}`来解决安全问题

编写这样的代码是一种方便的方法:

str = "John"
p "Welcome, #{str}"
# => "Welcome, John" 
Run Code Online (Sandbox Code Playgroud)

在真正的Rails应用程序中,有可能str有意地编写终止当前表达式并启动恶意代码.#{}如果我们需要将字符串与已评估的函数值混合,我该如何避免使用?例如:"Hello, #{foo(param)}".

ruby security ruby-on-rails code-injection

3
推荐指数
1
解决办法
84
查看次数

使用注入的DLL从远程进程调用函数

我看到了一个类似但仍然不同的问题,所以只是为了澄清这不是13428881的欺骗(在注入的DLL中调用函数).

我现在所拥有的:一个DLL,注入到目标进程中,显示​​一个消息框并摆弄数学.

我将来想要的是:一个可以操纵和玩弄目标进程内部的DLL.

实现所需操作的下一步是在我注入的进程中调用远程线程中的方法.

让我们举一个例子:我有一个C++应用程序,它有int main,让我们说它看起来像这样:

int PrintText(string text)
{
    cout << text;
    return 1;
}

int main()
{
    while (true)
    {
        PrintText("From the DLL");
    }
}
Run Code Online (Sandbox Code Playgroud)

好的,这很可爱,我的目标应用程序目前正在打印一些文本,而且它似乎非常愉快地这样做.它以令人难以置信的速度向它发送垃圾邮件,但如果我需要的话,我可以使用线程和睡眠等来降低速度.事实是这不是问题,这里的代码没有编译或测试,我也不打算使用这个确切的代码.我实际上正在玩游戏.

现在,假设我创建了一个指向方法PrintText的指针,并且我知道该进程中的地址.我如何在外部调用它,传递参数?

在本地,我相信它看起来像这样:

int i;
int (*PrintSomeText)(string) = PrintText;
Run Code Online (Sandbox Code Playgroud)

然后,我可以使用引用调用此函数,如下所示:

i = operation("Text to be printed", PrintSomeText);
Run Code Online (Sandbox Code Playgroud)

根据我的理论,这应该声明一个名为i的整数,然后定义一个指向返回int的方法的指针,将一个字符串作为参数,指针存储PrintText中指针的值.(或者那种性质的东西).

非常好,所以我可以通过指针调用我自己的函数,这很好,实际上是破解.我真的对这种能力感到惊讶,现在我感觉像是超人.我会去保存一些婴儿或其他东西,brb.

回来,所以现在我想再继续下去,并采取下一步措施.假设我知道该方法位于目标进程中的地址100处(十进制,我可能会以十六进制表示,因为我使用CheatEngine/OllyDBG来查找目标进程中的方法,但对于此示例,我们'保持简单).

我假设我注入的DLL完全拥有自己的空间,它是否有更高的目标进程访问权限?我怎么能找到这个?

谢谢你的时间,乔希

编辑:一个小小的注释,我正在阅读C++教程书,到目前为止它已被证明是非常有用的.我注意到我忘了包含我的操作方法,所以对于遗失的道歉.如果需要,请告诉我.谢谢!

编辑nr 2:我刚刚编写了一些可编译的代码来测试这个,因为我在没有IDE的情况下从书中写下了大部分这个免费的手,而IDE终于自己配置了,所以这里是我目前的代码与...合作

#include "stdafx.h"
#include <iostream>

using namespace std;

int PrintText(char * Text)
{
    cout << Text << endl;
    return 1;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int (*Print)(char*) …
Run Code Online (Sandbox Code Playgroud)

c++ dll code-injection codecave dll-injection

3
推荐指数
1
解决办法
3133
查看次数

如何在Sequelize中逃脱?

我正在将Sequelize与Node.js / Express结合使用,但不确定在where部分如何使用Sequelize进行转义。

var sequelize = ...;
var productId = 5; var productName = "test";
var product = sequelize.define('product',findAll({
       where: {
           $or: [
                {productId: this.mysql.escapeId(productId)},
                {productName: {$like: this.mysql.escapeId('%' + productName + '%')}},
            ]
       }
    })
   .then(result => ...);
Run Code Online (Sandbox Code Playgroud)

这不起作用,我得到下面的查询:

SELECT `productId`, `productName` FROM `product` AS `product` WHERE (`product`.`productId` = '`5`' OR `product`.`productName` LIKE '\'%test%\'' ORDER BY `product`.`productId` ASC
Run Code Online (Sandbox Code Playgroud)

结果什么也没有给我。那么如何通过Sequelize逃脱呢?我也尝试了Sequelize.escape函数,但收到错误“ TypeError:Sequelize.escape不是函数”。

而且,如果无需借助Sequelize来逃避这些值,我不知道它如何在SQL注入攻击中保持安全。示例:productId ='5; 从某些内容中删除*;'

非常感谢你的帮助 !

祝你有美好的一天,

凡妮莎

sql escaping code-injection sequelize.js

3
推荐指数
1
解决办法
5870
查看次数