标签: code-injection

我如何知道我的网站是否容易受到 SQL 注入攻击?

我知道很多人都问过这个问题,但不幸的是我找不到我的问题的正确答案。

在我读过的所有有关 SQL 注入的文章中,他们都讨论了 http://www.example.com/member.php?id=1等 URL ,以及如何检查我的网站是否容易受到 SQL 注入攻击(')。

就我而言,我的网站是这样的: http://www.example.com/Login.php 如您所见,我没有 ?id=1,我应该做什么来测试我的网站?

谢谢

sql sql-injection code-injection

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

JSF注入托管属性,好模式?

我对JSF很新,并没有真正"习惯"不同的思维,所以我在努力(我假设)是基本的.

假设我有一个类User,它是一个会话bean.

假设我有10000个对象的控制器,比如Factory,它需要能够将它们中的一些设置为"锁定",在我们的例子中,它意味着"锁定"字段不再变为空,而是引用"LockedItem"宾语.

这是我无法工作的地方:LockedItem,当你实现它时,应该引用当前登录的用户.我该怎么做?

我尝试使用@managedproperty进行注入,但是在LockedItem.constructor中它是null(这是正常的我假设)然后我尝试了@PostConstruct方法,但是这个方法永远不会被调用(为什么?即使我把它变成了一个托管bean ...是只有在".xhtml"创建对象时调用的postconstruct方法?)或者我应该使用"java se"技巧,比如使用户静态?


代码澄清为什么没有调用@PostConstruct("Seat"之一):

.xhtml

<h:outputLabel id="user" value="Hello #{user.name}" />
<h:outputLabel id="car" value="you have #{car.brand}" />
Run Code Online (Sandbox Code Playgroud)

用户

package test;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class User implements Serializable {
    private String name ;

    public User()
    {
        name = "toto"; 
        System.out.println("User constructor");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


}
Run Code Online (Sandbox Code Playgroud)

汽车

package test;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;

@ManagedBean
public class Car implements Serializable …
Run Code Online (Sandbox Code Playgroud)

jsf design-patterns code-injection postconstruct managed-bean

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

是否可以使用c#代码注入一个dll并覆盖返回值?

让我们说有一个简单的c#应用程序正在运行,以一个值为2的int的形式返回1 + 1的答案,我有它的源代码但是为了好奇,我想改变它的作用而不用在运行时修改dll.

是否可以使用您自己的.dll注入正在运行的应用程序,并将它在同一类和方法中返回的答案更改为除2之外的值?

我已经知道我可以在程序运行时进入内存并理论上将"2"的答案更改为其他内容,我很好奇我是否可以更改程序逻辑.

我也已经知道可以通过向应用程序注入另一个.dll和"添加"附加功能来"扩展"正在运行的应用程序,我对理论上可能更改已经在原始.dll中运行的代码感兴趣.

c# dll code-injection

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

Prestashop Tools :: getValue()函数不能转义sql注入?

我在prestashop论坛上看到该函数Tools::getValue()没有逃避sql注入.现在我想知道当我想获取字符串或int值时如何从sql注入中阻止此函数?

有人能告诉我一些例子吗?

php sql code-injection prestashop

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

获取成员拦截的属性值

我有这个CacheAttribute接受这样的持续时间值

public class MyTestQuery : IMyTestQuery
{
    private readonly ISomeRepository _someRepository;

    public TestQuery(ISomeRepository someRepository)
    {
        _someRepository = someRepository;
    }

    [Cache(Duration = 10)]
    public MyViewModel GetForeignKeysViewModelCache()
    {
        ...code here...
        return viewModel;
    }
}
Run Code Online (Sandbox Code Playgroud)

属性看起来像这样

[AttributeUsage(AttributeTargets.Method)]
public class CacheAttribute : Attribute
{
    public int Duration { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当使用Castle.Proxy.IInterceptor拦截时,它可以工作,但是当我通过IInitation.MethodInitationTargetIInitation.Method执行Attribute.GetCustomAttribute时,两者都会返回null

这是代码中的

public class CacheResultInterceptor : IInterceptor
{
    public CacheAttribute GetCacheResultAttribute(IInvocation invocation)
    {
        var methodInfo = invocation.MethodInvocationTarget;
        if (methodInfo == …
Run Code Online (Sandbox Code Playgroud)

c# castle code-injection autofac interception

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

函数挂钩实际上是如何工作的?WinAPI,C++

我将我的 DLL 注入到一个进程中,然后挂钩这样的函数:(recv)

BOOL HookFunction(LPCWSTR moduleName, LPCSTR funcName, LPVOID funcProxy, 
unsigned char* lpBackup)
{
     BYTE jmp[6] = { 0xe9,0x00,0x00,0x00,0x00,0xc3 };
     DWORD funcAddr = (DWORD)GetProcAddress(GetModuleHandle(moduleName), funcName);

     DWORD prev;
     VirtualProtect((LPVOID)funcAddr, 6, PAGE_EXECUTE_READWRITE, &prev);

     ReadProcessMemory(GetCurrentProcess(), (LPVOID)funcAddr, lpBackup, 6, NULL);

     DWORD proxy = ((DWORD)funcProxy - funcAddr) - 5;
     memcpy(&jmp[1], &proxy, 4);
     memcpy((LPVOID)funcAddr, jmp, 6);

     VirtualProtect((LPVOID)funcAddr, 6, prev, &prev);
     FlushInstructionCache(GetCurrentProcess(), NULL, NULL);

     return funcAddr;
}

// Hook
HookFunction(L"ws2_32.dll", "recv", (LPVOID*)nRecv, hookR);
Run Code Online (Sandbox Code Playgroud)

然后我附加了一个调试器,结果如下:

挂机前: 在此处输入图片说明

上钩后: 在此处输入图片说明

不过,有几件事我不明白,因为我仍在尝试理解和想象堆栈、堆等如何在调试器中协同工作。

BYTE jmp[6] = { 0xe9,0x00,0x00,0x00,0x00,0xc3 };
Run Code Online (Sandbox Code Playgroud)

我是否在这里替换指令,例如,用 0xe9 替换原始函数的“move, edi, …

windows debugging hook code-injection

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

实施 DI 时是否应该注入 viewholder?

我目前在我的项目中使用 dagger2 实现依赖注入,我偶然发现了一些东西,我对在 recyclerview 中处理 viewholder 时最好的方法是什么感到困惑。

通常,我们像这样创建视图持有者:

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int pos) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如何注入 ViewHolder?我应该注射它还是应该让它留在原处?

dependencies android dependency-injection code-injection dagger-2

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

我的 bash 脚本是否容易受到命令注入的攻击?

我正在对其他开发人员的 bash 脚本进行质量检查。它看起来像这样:

#!/bin/bash

TERM=`cat ./termName.txt` || exit $?
./other-script.sh $TERM
Run Code Online (Sandbox Code Playgroud)

鉴于该TERM变量未在最后一行中引用,感觉恶意用户可以通过操纵 的内容来利用命令注入termName.txt,但是我证明这一点的基本尝试未能注入任何可执行命令。

我的问题是:

  1. 该脚本是否容易受到命令注入的攻击?
  2. 如果是,您能否提供如何执行任意命令的示例。如果不是,你能解释一下为什么它可以安全地避免命令注入吗?

security bash code-injection

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

如何在 vscode 中正确注入语法扩展(所以它可以工作)?

我真的很难扩展 shell-script 语法,因为它只突出显示 bash 内置命令。我想基本上突出显示 shell 命令,而不仅仅是内置命令。为此,我尝试通过注入来扩展语法,但这并没有很好的文档记录,因此无论我在做什么,我都一遍又一遍地遇到相同的问题。如果我注入一些命令以被识别为函数(并因此突出显示),它们是,但它们也在注释中突出显示,这非常烦人。无论我尝试了哪些组合,我都不会摆脱它。由于 support.function.extended.shell 令牌始终是注入的最高值,因此它始终是彩色的。有什么解决办法吗???

正如你在图片中看到的,像“echo”这样的内置命令在注释中没有着色,就像它应该是

{
    "scopeName": "shellcommand.injection",
    "injectionSelector": "L:source.shell -support.function.builtin.shell",
    "patterns": [{
        "include": "#shell-commands"
    }],
    "repository": {
        "shell-commands": {
            "patterns": [{

                "match": "(?<=^|;|&|\\s)(systemctl|cp|sed|awk)(?=\\s|;|&|$)",
                "name": "support.function.extended.shell"

            }]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后输出看起来像这样......

在此处输入图片说明

grammar textmate code-injection visual-studio-code

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

这些 awk 命令是否容易受到代码注入的攻击?

当我阅读如何在 awk 脚本中使用 shell 变量? 的答案时,我不确定如何正确编写使用 shell 变量的特定 awk 命令脚本。。

接受的答案演示了在命令中插入 shell 变量如何awk容易发生恶意代码注入,虽然我能够重现该演示,但我无法使用以下两个命令中的任何一个找到相同的问题:

#HWLINK=enp10s0
ip -o route | awk '/'$HWLINK'/ && ! /default/ {print $1}'
ip -o route | awk "/$HWLINK/"' && ! /default/ {print $1}'
Run Code Online (Sandbox Code Playgroud)

因此,主要问题是其中任何一个(或两个)是否容易受到攻击。

第二个问题是哪种形式是首选。我尝试过ip -o route | awk -v hwlink="$HWLINK" '/hwlink/ && ! /default/ {print $1}',但这不起作用。

ps这是一个重构;原来的命令是ip -o route | grep $HWLINK | grep -v default | awk '{print $1}'.

linux bash shell awk code-injection

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