标签: code-injection

整数字段中的sql注入

我有一个应用程序,用户名字段将使用 将任何给定值转换为整数值integer.parseint。该应用程序使用 JSP 和 Oracle 数据库。

该 URL 已经使用 SQLMap 进行了测试,并且它不是动态的。因此,我可以尝试的唯一方法是通过登录表单,但我无法绕过它。

当我输入'1=1, -- 时,服务器返回错误,error for input string

我想注入字段,那么如何才能做到呢?

我不知道是否可以使用替代编码,因为无论如何它都会将其转换为整数。

sql code-injection

5
推荐指数
1
解决办法
5985
查看次数

依赖注入和默认构造函数的使用

我正在尝试理解依赖注入的概念。下面是我尝试调试的示例。在这里,我创建了 Customer 类,我已将其依赖项注入到他的构造函数中。现在,当我调用this.Iorder.GetOrderDetails();Index方法时,它给我错误NullReferenceException并要求使用new关键字创建一个对象来调用该方法。当我将此调用this.Iorder.GetOrderDetails();移至另一个方法GetCutomerDetails()并在索引方法中调用该方法时,它起作用了。

问题:我无法理解为什么this.Iorder.GetOrderDetails() 方法调用在方法中不起作用 Index以及为什么它在方法中起作用GetCutomerDetails()

public  interface IorderDetails
{
    void GetOrderDetails();
}

public class CustomerModel : IorderDetails
{
    public void GetOrderDetails() {}
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public class CustomerController: Controller
{
    private IorderDetails Iorder;

    //DI constructor  Injecting OrderDetails object 
    CustomerController(IorderDetails iorderObj)
    {
        if (iorderObj == null)
            throw new ArgumentNullException("orderObj should not be null");

        this.Iorder = iorderObj;
    }
    //Default constructor  
    public CustomerController() { }

    public ActionResult …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection code-injection

5
推荐指数
1
解决办法
5932
查看次数

如何定位缺少 $injector 错误?

我正在将一些核心的角度内容移植到一个新项目中。现在我收到注入器错误,但堆栈跟踪/角度错误页面不显示有问题的注入错误的类名。我得到的只是

\n\n
Error: $injector:modulerr\nModule Error\n
Run Code Online (Sandbox Code Playgroud)\n\n

通常那里有一个类名。现在我必须检查每个类(数十个)并手动检查导入。难道就没有更好的办法吗?我在添加类时就看到了这种情况的发生。有时它会显示丢失的注入的名称,有时它只是显示为空白,否则堆栈跟踪会正确识别丢失/错误的注入。

\n\n

是否有一些额外的调试模式可以获取此信息?

\n\n

完整的(无用的)堆栈跟踪:

\n\n
Failed to instantiate module FSApp due to:\nError: [$injector:modulerr] http://errors.angularjs.org/1.2.16/$injector/modulerr?p0=FSApp&p1=Error\xe2\x80\xa6cape%2Fmain%2Fresources%2Flib%2Fangular-1.2.16%2Fangular.min.js%3A32%3A445)\n    at Error (native)\n    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:6:450\n    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:332\n    at Array.forEach (native)\n    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)\n    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445)\n    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:18\n    at Array.forEach (native)\n    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)\n    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您想尝试重现此情况,请提交您的更改。到处删除几个文件。运行你的角度应用程序。如果删除得足够多,您很快就会收到空白注射器错误。

\n

code-injection angularjs

5
推荐指数
1
解决办法
3477
查看次数

Mono 中的运行时方法挂钩

我有一个现有的应用程序,它是闭源的,并且发布了自己的 Mono 3.5 版本。我想改变应用程序的行为;具体来说,我想用一个新的类替换一个内置类。

通常,使用Mono.Cecil 来解决这个问题。但是,在我的情况下,应用程序程序集是从只读卷加载的,这使得修改程序集本身非常棘手(它涉及硬件黑客来生成新卷)。但是,我可以通过官方支持的机制让它加载任意 DLL,理论上我可以使用它在运行时修改程序集。

有许多资源可用于通过 .NET Framework 实现运行时代码注入/函数挂钩,但在 Mono 下它们都失败了。我见过的方法包括:

查看相关问题:

我知道这是一个非常糟糕的计划。但是,由于我没有源代码,并且修改磁盘上的程序集甚至比进行某种肮脏的运行时 hack 还要糟糕,因此这是我迄今为止生成的最佳替代方案。

reflection mono jit code-injection

5
推荐指数
0
解决办法
1310
查看次数

有人试图入侵我的服务器吗?请告诉我我能做什么?

我在我的服务器日志文件中找到了这些请求。我在亚马逊 EC2 上使用 nodejs。

/manager/html
/
/manager/html
/manager/html
/muieblackcat
//phpMyAdmin/scripts/setup.php
//phpmyadmin/scripts/setup.php
//pma/scripts/setup.php
//myadmin/scripts/setup.php
//MyAdmin/scripts/setup.php
/manager/html
/manager/html
http://hotel.qunar.com/render/hoteldiv.jsp?&__jscallback=XQScript_4
/hybridauth/install.php
/manager/html
/manager/html
/cgi-bin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E
/cgi-bin/php5?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E
/cgi-bin/php-cgi?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E
/cgi-bin/php.cgi?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E
/cgi-bin/php4?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E
/manager/html
/manager/html
/manager/html
/manager/html
http://www.k2proxy.com//hello.html
http://www.k2proxy.com//hello.html
/manager/html
Run Code Online (Sandbox Code Playgroud)

虽然我的网站目前非常简单。无论您发送什么请求,它都会给您相同的响应。但是,这些要求真的让我害怕。我的网站甚至一点都不出名。

我的担忧是:
有人想黑我吗?
如果是,我可以对 EC2 上的 nodejs 采取哪些预防措施?

提前致谢...

security code-injection amazon-web-services server-side-attacks

5
推荐指数
1
解决办法
454
查看次数

收听网页chrome扩展中的点击事件

正在开发 chrome 扩展。我使用 contentscript 在 wbpage 中注入脚本,如下所示:

  var s = document.createElement('script');

   s.src = chrome.extension.getURL("script.js");

   (document.head||document.documentElement).appendChild(s);
Run Code Online (Sandbox Code Playgroud)

我的脚本.js:

$.post("https://www.example.com/srv/example/", function(html){


    $("body").prepend(html);


 });
Run Code Online (Sandbox Code Playgroud)

现在,我想收听网页 DOM 中的按钮单击事件?如何实现这一目标?

code-injection google-chrome-extension

5
推荐指数
1
解决办法
5485
查看次数

Sequelize model.build(req.body) 注射安全吗?

我是 Sequelize(一个 node.js ORM)的新手,想知道以下代码是否安全:

var models = require('../models');
var router = require('express').Router();

router.post('/', function(req, res, next){
  models.Account
    .create(req.body)       // <-- THIS IS WHAT MY QUESTION IS ABOUT, IS THIS SAFE?
    .then(function(result){
      res.status(200)
        .send(result)
        .end();
    }).catch(next);
});
Run Code Online (Sandbox Code Playgroud)

如果您正在使用它,这在某些方面是否不安全?另一种解决方案是:

var models = require('../models');
var router = require('express').Router();

router.post('/', function(req, res, next){
  models.Account
    .create({
      username:    req.body.username, // <-- THIS IS MORE VERBOSE BUT PROBABLY SAFER?
      accountname: req.body.accountname,
      level:       req.body.level
    })
    .then(function(result){
      res.status(200)
        .send(result)
        .end();
    }).catch(next);
});
Run Code Online (Sandbox Code Playgroud)

所以基本上我的问题是:使用完整的请求正文作为model.create()函数(model.set()model.build())的输入是否安全?

code-injection node.js sequelize.js

5
推荐指数
1
解决办法
1253
查看次数

Firebase 的 SQL 注入版本

有了深厚的SQL背景后第一次使用firebase。我习惯于使用诸如addslashes()清理用户输入查询之类的功能。

是否有任何标准方法可以使用 Firebase 查找执行类似的操作?

例如:

// expected a key, not a path
var userProvidedKey = "3/malicious"

// will not be a ref to what I expect
var ref = firebase.database().ref(`something/${userProvidedKey}`)
Run Code Online (Sandbox Code Playgroud)

我不知道用户能够在参考中进一步搜索会有多恶意,但也许这个问题已经解决了?或者我需要收到.split('/').shift()我收到的任何信息吗?

注意:我的示例使用 JS SDK。

code-injection firebase

5
推荐指数
1
解决办法
2433
查看次数

使用 Create-React-App,是否可以像使用 grunt/gulp 一样在构建过程中将代码注入/替换/附加到 index.html 文件中?

Create-react-app 在 build 文件夹中创建一个 index.html 文件,我巧妙地将该文件重命名为 index.aspx,(in package.json - "build": "react-scripts build && mv build/index.html build/index.aspx",)因为我需要该应用程序在我们服务器上的模板中运行 - 它确实如此。但是,我目前必须在新的 index.aspx 文件中<%@ Page language="c#" CodeBehind="index_fw2.aspx.cs" AutoEventWireup="false" Inherits="IMod.Web.V2.Index" %>的 之前过去<!doctype html>,以便模板在我们的服务器上呈现。

无论如何,我是否可以让 create-react-app 将其注入到新重命名的 index.aspx 文件中,甚至在构建过程中从 index.html 重命名之前?我到处寻找这方面的参考资料。

asp.net build code-injection reactjs create-react-app

5
推荐指数
1
解决办法
3960
查看次数

使用React惰性或NextJS动态动态导入是否容易受到注入影响

反应lazy

const Component = lazy(() => import(`../${element}`));
Run Code Online (Sandbox Code Playgroud)

下一个JSdynamic

const Component = dynamic(() => import(`../${element}`));
Run Code Online (Sandbox Code Playgroud)

这些示例具有相对路径。但是,在我的应用程序中,我还使用元素延迟加载作为导入函数的唯一参数,例如

const Component = lazy(() => import(element));
Run Code Online (Sandbox Code Playgroud)

元素可以被篡改来注入XSS吗?如果是这样,我该如何预防呢?有没有办法对变量进行编码以确保其安全?

xss lazy-loading code-injection reactjs next.js

5
推荐指数
0
解决办法
1340
查看次数