我有一个应用程序,用户名字段将使用 将任何给定值转换为整数值integer.parseint。该应用程序使用 JSP 和 Oracle 数据库。
该 URL 已经使用 SQLMap 进行了测试,并且它不是动态的。因此,我可以尝试的唯一方法是通过登录表单,但我无法绕过它。
当我输入'或1=1, -- 时,服务器返回错误,error for input string。
我想注入字段,那么如何才能做到呢?
我不知道是否可以使用替代编码,因为无论如何它都会将其转换为整数。
我正在尝试理解依赖注入的概念。下面是我尝试调试的示例。在这里,我创建了 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) 我正在将一些核心的角度内容移植到一个新项目中。现在我收到注入器错误,但堆栈跟踪/角度错误页面不显示有问题的注入错误的类名。我得到的只是
\n\nError: $injector:modulerr\nModule Error\nRun Code Online (Sandbox Code Playgroud)\n\n通常那里有一个类名。现在我必须检查每个类(数十个)并手动检查导入。难道就没有更好的办法吗?我在添加类时就看到了这种情况的发生。有时它会显示丢失的注入的名称,有时它只是显示为空白,否则堆栈跟踪会正确识别丢失/错误的注入。
\n\n是否有一些额外的调试模式可以获取此信息?
\n\n完整的(无用的)堆栈跟踪:
\n\nFailed 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\nRun Code Online (Sandbox Code Playgroud)\n\n如果您想尝试重现此情况,请提交您的更改。到处删除几个文件。运行你的角度应用程序。如果删除得足够多,您很快就会收到空白注射器错误。
\n我有一个现有的应用程序,它是闭源的,并且发布了自己的 Mono 3.5 版本。我想改变应用程序的行为;具体来说,我想用一个新的类替换一个内置类。
通常,使用Mono.Cecil 来解决这个问题。但是,在我的情况下,应用程序程序集是从只读卷加载的,这使得修改程序集本身非常棘手(它涉及硬件黑客来生成新卷)。但是,我可以通过官方支持的机制让它加载任意 DLL,理论上我可以使用它在运行时修改程序集。
有许多资源可用于通过 .NET Framework 实现运行时代码注入/函数挂钩,但在 Mono 下它们都失败了。我见过的方法包括:
查看相关问题:
我知道这是一个非常糟糕的计划。但是,由于我没有源代码,并且修改磁盘上的程序集甚至比进行某种肮脏的运行时 hack 还要糟糕,因此这是我迄今为止生成的最佳替代方案。
我在我的服务器日志文件中找到了这些请求。我在亚马逊 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
正在开发 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 中的按钮单击事件?如何实现这一目标?
我是 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())的输入是否安全?
有了深厚的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。
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 重命名之前?我到处寻找这方面的参考资料。
反应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吗?如果是这样,我该如何预防呢?有没有办法对变量进行编码以确保其安全?
code-injection ×10
reactjs ×2
angularjs ×1
asp.net ×1
build ×1
c# ×1
firebase ×1
jit ×1
lazy-loading ×1
mono ×1
next.js ×1
node.js ×1
reflection ×1
security ×1
sequelize.js ×1
sql ×1
xss ×1