小编Ali*_*Ali的帖子

SQL注入攻击 - 这是做什么的?

我在我的网站上检测到一些失败的SQL注入攻击.失败的查询格式如下:

SELECT 6106 FROM(SELECT COUNT(*),':sjw:1:ukt:1'x FROM information_schema.tables GROUP BY x)

':sjw:1:ukt:1'部分是专门构造的变量连接在一起,给出随机0或1等.

我想知道这些查询是做什么的?

数据库是MySQL.

更新:这是原始注入的SQL:

(SELECT 6106
 FROM  (SELECT COUNT(*),
               CONCAT(
                        CHAR(58, 115, 106, 119, 58), 
                        (SELECT ( CASE WHEN ( 6106 = 6106 ) THEN 1 ELSE 0 END )), 
                        CHAR(58, 117, 107, 116, 58), 
                        FLOOR(RAND(0) * 2)
                      ) x
        FROM   INFORMATION_SCHEMA.TABLES
        GROUP  BY x)a) 
Run Code Online (Sandbox Code Playgroud)

它失败了,留言

密钥'group_key'重复输入':sjw:1:ukt:1'

mysql security sql-injection

12
推荐指数
1
解决办法
7073
查看次数

调用错误控件的RaisePostBackEvent

我花了两天时间与另一位同事一起调查此事.我很惊讶,因为大多数解决这个问题的解决方案都有错误的解决方案,或者我认为解决方案有错误的原因.

我们有一个自定义按钮控件,需要在按下时引发ServerClick事件.以下是汇总代码:

public class MyButton : WebControl, IPostBackEventHandler
{
    protected HtmlGenericControl _Button;
    protected string _OnClick = "";
    protected string _Name;
    public event EventHandler ServerClick;
    // etc...    

    public MyButton()
    {
        Width = Unit.Pixel(100);
        _Button = new HtmlGenericControl("button");
        Controls.Add(_Button);
    }

    protected override void Render(HtmlTextWriter writer)
    {
        _Button.Attributes.Add("id", string.IsNullOrEmpty(_Name) ? base.ID : _Name);
        _Button.Attributes.Add("name", _Name);

        // etc...

        _OnClick = Page.ClientScript.GetPostBackEventReference(this, "");
        _Button.Attributes.Add("onClick", _OnClick);

        // etc...

        ID = String.Empty;
        Name = String.Empty;
        AccessKey = String.Empty;
        TabIndex = -1;
        Width = Unit.Empty;

        base.Render(writer);
    }

    protected …
Run Code Online (Sandbox Code Playgroud)

asp.net user-controls custom-controls

9
推荐指数
1
解决办法
275
查看次数

CreateEx导致未处理的异常被停用的激活上下文不是最近激活的激活上下文

itsAnalysisDataTable.CreateEx( WS_EX_CLIENTEDGE, AfxRegisterWndClass( CS_DBLCLKS, LoadCursor( NULL, IDC_ARROW ), (HBRUSH)::GetStockObject( NULL_BRUSH ), NULL ), "AnalysiysTable", WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, dialogItemRect, this, IDC_ANALYSIS_DATA_TABLE );
Run Code Online (Sandbox Code Playgroud)

这条线花了我两天的努力,没有解决方案.itsAnalysisDataTable是一个自定义窗口控件,CWnd作为其盛大的盛大父级.该控件已成功用于其他步骤,而我们的代码中没有任何问题.是一个CPropertyPage.

我遇到的问题是行原因(并且每次都会这样做)MyProduct(x64)中的0x76f7fd5c处的未处理异常.exe:0xC015000F:被停用的激活上下文不是最近激活的激活上下文.

异常也发生在32位中.我在Windows 7 x64,VS 2008上.

我已经尝试过的:

  1. 在调试器中启用win32异常中断.没有异常发生(除了我们的代码中有很多并且没有效果的第一次机会异常)
  2. 重新编译整个项目
  3. 调试OnCreate处理程序以控制异常.

调用堆栈:

ntdll.dll!0000000076f7fd5c()    
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
kernel32.dll!0000000076df42d3()     
mfc90d.dll!AfxDeactivateActCtx(unsigned long dwFlags=0, unsigned __int64 ulCookie=2077018657900210161)  Line 260 + 0x19 bytes   C++
Run Code Online (Sandbox Code Playgroud)

观察:

  1. 如果我跳过WS_CHILD标志,则不会发生异常,但也不会在控件上调用OnCreate!
  2. 如果我忽略异常并继续,应用程序工作正常,控件也可以正常工作.
  3. 在app init期间调用AfxSetAmbientActCtx(FALSE)会抑制异常.但我认为这是一个黑客攻击,除非我能证明这一点.

c++ mfc exception activation-context-api

6
推荐指数
2
解决办法
9066
查看次数

Node js 堆检查器中的全局句柄和 GC 根是什么?

我正在尝试检查正在运行的 Express Node js 应用程序的堆。

在堆转储比较中,看起来有些字符串没有被释放。它们所绑定的承诺已得到解决,但 Retainers 链会上升到全局句柄,然后上升到 GC 根。我不明白这些是什么意思。

有人可以阐明这一点吗?为什么 GC 无法收集这些已解决的 Promise?

Node.js 堆快照

garbage-collection memory-management v8 node.js node-inspector

6
推荐指数
1
解决办法
1535
查看次数

jsTree禁用移动某些节点

我有一个jsTree,我希望它的一些节点是可移动的.无法移动根节点及其直接子节点.

我正在使用crrm并且它按预期工作但它仍然允许我拖动所有节点,甚至那些无法在任何地方丢弃的节点(紧接在根之下).我根本不希望它们是可拖动的,即用户根本不应该拾取它们.

jstree

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

PHP class_exists 总是返回 true

我有一个 PHP 类,在包含文件之前需要一些预定义的全局变量:

文件:includes/Product.inc.php

if (class_exists('Product')) {
    return;
}

// This class requires some predefined globals
if ( !isset($gLogger) || !isset($db) || !isset($glob) ) {
    return;
}

class Product
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

上述内容包含在需要使用require_once来使用 Product 的其他 PHP 文件中。然而,任何想要使用产品的人都必须确保这些全局变量可用,至少是这样的。

我最近调试了 Product 类中的一个函数中的一个问题,该问题是由于 $gLogger 为空而引起的。需要上述 Product.inc.php 的代码没有费心去创建 $gLogger。所以问题是,如果 $gLogger 为空,这个类是如何被包含的?

我尝试调试代码(NetBeans 中的 xdebug),在 Product.inc.php 的开头放置一个断点来查找,每次到达 if (class_exists('Product')) 子句时,它都会简单地介入并执行return 因此永远不会进入全局检查。那么第一次是如何包含在内的呢?

这是在 MAMP (Apache/MySQL) 下运行的 PHP 5.1+。我没有定义任何自动加载器。

感谢各位提供信息丰富的答案。我的信念是,当您包含一个文件时,PHP 从第一行开始逐行执行它,因此如果未定义全局变量,它将不允许我包含该文件。我会将检查移至构造函数中。根据原来的问题,我接受@deceze的回答

php

0
推荐指数
1
解决办法
1065
查看次数