标签: sql-injection

PHP函数用字符代码替换符号以停止SQL注入

我正在尝试编写一个php函数来阻止MySQL注入尝试.我正在做的是使用str_replace()删除符号并用它们的HTML字符代码替换它们.我的问题是代码都包含&#; 但我也想用他们的代码替换这些符号.如何在不将代码更改为以下内容的情况下执行此操作:

&#38&#59;&338&#59;#35&#59;32&#59;
Run Code Online (Sandbox Code Playgroud)

这是我的功能:

function replaceSymbols( $text )
{
   $text = str_replace( '#', '&#35', $text );
   $text = str_replace( '&', '&' $text ); 
   $text = str_replace( ';', '&#59', $text );

   $text = str_replace( ' ', ' ' $text );
   $text = str_replace( '!', '!' $text );
   $text = str_replace( '"', '"' $text );   
   $text = str_replace( '$', '$' $text );
   $text = str_replace( '%', '%' $text );  
   $text = str_replace(  "'" '&#39', $text );
   $text = str_replace( '(', '(' $text ); …
Run Code Online (Sandbox Code Playgroud)

php mysql symbols sql-injection character-encoding

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

SQL存储过程是否安全?

它们不像SQL注入那样容易受到攻击mysql_query("SELECT important_data FROM users WHERE password = $password")吗?

sql stored-procedures sql-injection

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

ASP.NET的SQL注入过滤器方法

我有自由格式文本的字段,并允许任何数字/符号的组合.验证这些以防止SQL注入的最佳方法是什么?我可以简单地替换刻度线吗?有没有可以插入使用的方法?

c# asp.net sql-injection

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

什么是防止mysql中的SQL注入的最佳方法

我不太了解sql注入.

我想知道在mysql中阻止sql注入的最佳方法是什么?

就像我应该如何在数据库中插入数据一样,我应该如何从数据库中获取数据,如何执行搜索查询,在mysql中更新查询.

到这里我知道addslashes用于防止使用php在mysql中进行sql注入.

当它从数据库中搜索数据时创建问题.我在这里描述的问题. 在mysql查询中搜索问题

你能告诉我如何防止这种情况吗?我听说过mysql_real_escape_string 但不知道如何使用它.

谢谢

阿维纳什

mysql sql-injection

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

PHP函数来清理所有数据

清理可能被sqlinjected的所有数据是一个好的或愚蠢的想法吗?我写了一个应该这样做的功能,但是我从来没有看过它,并且想知道这是不是一个糟糕的主意.我写的功能:

function sanitizeData()
{
    $_SERVER['HTTP_USER_AGENT'] = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
    foreach(array_keys($_COOKIE) as $key)
    {
          $_COOKIE[$key] = mysql_real_escape_string($_COOKIE[$key]);
    }
    foreach(array_keys($_POST) as $key)
    {
          $_POST[$key] = mysql_real_escape_string($_POST[$key]);
    }    
    foreach(array_keys($_GET) as $key)
    {
          $_GET[$key] = mysql_real_escape_string($_GET[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

php mysql sql-injection

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

String.Format和SQL请求

在我的应用程序中,我像这样使用string.Format()作为SQL

Dim strSQL As String = "SELECT X FROM MY_TABLE WHERE Y <> {0} AND Z = '{1}'"
    strSQL = String.Format(strSQL, otherObj.Y, myObj.Z)
Run Code Online (Sandbox Code Playgroud)

有一天,我使用SQL注入进行全局"压力"测试(带引号的params,以及类似的东西)并发现了很多错误...

.NET中与它"斗争"的最佳方式是什么?是否有一个String.Format或其他常见的方法来正确(和安全地)使用SQL查询中的SQL参数.

您会建议更换String.Format什么?

.net sql string sql-injection

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

使用替换单引号和验证整数的SQL注入

可能重复:
我可以通过使用单引号转义单引号和周围用户输入来防止SQL注入吗?

我只是想知道,如果我每更换'''的用户输入,例如string.Replace("'","''"),和验证号码(确保它们是数字,不包含任何其他字符),是SQL注入仍然是可能的?怎么样?

我正在使用动态SQL查询SqlCommand.像这样的东西:

cmd.CommandText = "SELECT * FROM myTable WHERE ID = " + theID.ToString();
Run Code Online (Sandbox Code Playgroud)

要么

cmd.CommandText = "UPDATE myTable SET title='" + title.Replace("'","''") + "' WHERE ID = " + theID.ToString();
Run Code Online (Sandbox Code Playgroud)

在ASP.NET MVC中自动验证输入整数(检查它们是否是实数).

c# sql sql-server sql-injection sql-server-2005

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

有没有办法从T-SQL命令中删除空格并仍然执行它们?

我正在尝试执行命令,但我需要删除空格.

这是我想要执行的命令,但它有两个空格:

DROP TABLE Table_1
Run Code Online (Sandbox Code Playgroud)

我想要做的是将其转换为没有空格的形式.我以为我可以使用连接和CHAR字符串函数来生成要执行的字符串:

'DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1'
Run Code Online (Sandbox Code Playgroud)

我试过这个并将它传递给EXEC,但这显然是无效的:

';EXEC('DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1');--
Run Code Online (Sandbox Code Playgroud)

然后我考虑在@declaring临时变量的许多行上构造字符串,但为此我似乎再次需要空格.
有办法做到这一点吗?

sql t-sql sql-server sql-injection

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

在不使用Prepared语句的情况下摆脱SQL注入

我的应用程序有很多使用Statement编写的JDBC查询,因此容易受到SQL注入的攻击.不幸的是,这个应用程序是在大约10年前开发的,可能开发人员不知道Prepared语句.

我知道解决这个问题的最好方法是使用PreparedStatement,但在整个应用程序中转换它是非常繁琐的.此外,为SQL注入编写任何类型的Patten匹配可能非常棘手,因为Select,insert,union等关键字都是英文单词,也可能出现在用户键入的文本字段中.

有没有更聪明的方法来避免SQL注入而不使用Prepared语句.如果这是一个重复的问题,请给我一个问题的链接,它有一个很好的答案.谢谢您的帮助.

sql-injection jdbc prepared-statement

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

MariaDb SQL注入

我正在尝试(合法地)利用具有SQLi漏洞的MariaDb数据库。

我在这里发现了漏洞...

/?o=1&page=app

o=*是脆弱的,并产生下列错误...

DEBUG INFO: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '5' or dest like '1'') LIMIT 10' at line 1

我正在使用Burp Suite,并采用了以下语法,该语法似乎更接近商标,但仍会产生语法错误。

我认为它离商标更近了,因为错误只会吐出我介绍的查询,而不是“额外”字段:'5' or dest like '1'') LIMIT 10'

我假设这是原始查询的一部分,因为1它包含在内,当我使用其他随机字符串进行测试时,它仍然为真。

我从页面提示中知道的管理员密码哈希值是uid 1

这个查询我缺少什么?

SELECT Password FROM mysql.user WHERE (uid = '1' or dest like '%')-- ') LIMIT 10

编辑:这是在Hack The Box上完成的,所以没有讨厌的非法事情发生。

mysql sql-injection mariadb

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