相关疑难解决方法(0)

IIS7中的"经典"和"集成"管道模式有什么区别?

我昨晚部署了一个ASP.NET MVC应用程序,并发现将IIS7设置为集成模式进行部署的工作量较少.我的问题是有什么区别?使用一个或另一个有什么含义?

asp.net iis asp.net-mvc iis-7 integrated-pipeline-mode

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

可利用的PHP功能

我正在尝试构建一个可用于任意代码执行的函数列表.目的不是列出应列入黑名单或以其他方式禁止的功能.相反,我希望在搜索受感染的后台服务器时,有一个grep可用的红旗关键字列表.

这个想法是,如果你想构建一个多用途的恶意PHP脚本 - 比如像c99或r57这样的"web shell"脚本 - 你将不得不使用一组或多组相对较小的函数文件中的某个位置,以便允许用户执行任意代码.搜索这些功能可以帮助您更快地将数万个PHP文件的大海捞变到相对较小的脚本集中,这些脚本需要仔细检查.

显然,例如,以下任何一种都会被视为恶意(或可怕的编码):

<? eval($_GET['cmd']); ?>

<? system($_GET['cmd']); ?>

<? preg_replace('/.*/e',$_POST['code']); ?>
Run Code Online (Sandbox Code Playgroud)

等等.

前几天通过一个被入侵的网站进行搜索,我没有注意到一段恶意代码,因为我没有意识到preg_replace使用该/e标志可能会造成危险(严重的是,为什么即使那样?).还有其他我错过的吗?

到目前为止,这是我的清单:

Shell执行

  • system
  • exec
  • popen
  • backtick operator
  • pcntl_exec

PHP执行

  • eval
  • preg_replace(带/e修饰符)
  • create_function
  • include[ _once]/require[ _once](有关漏洞利用详情,请参阅mario的回答)

拥有一个能够修改文件的函数列表可能也很有用,但我想99%的时间漏洞利用代码至少包含一个上述函数.但是如果你有一个能够编辑或输出文件的所有功能的列表,请发布它,我会在这里包含它.(而且我不算数mysql_execute,因为那是另一类漏洞利用的一部分.)

php security grep

277
推荐指数
15
解决办法
12万
查看次数

具有LIKE和IN条件的参数化查询

.Net中的参数化查询在示例中总是如下所示:

SqlCommand comm = new SqlCommand(@"
   SELECT * 
   FROM   Products 
   WHERE  Category_ID = @categoryid
", 
   conn);
comm.Parameters.Add("@categoryid", SqlDbType.Int);
comm.Parameters["@categoryid"].Value = CategoryID;
Run Code Online (Sandbox Code Playgroud)

但是我碰到了一堵砖墙试图做到以下几点:

SqlCommand comm = new SqlCommand(@"
   SELECT * 
   FROM   Products 
   WHERE  Category_ID IN (@categoryids) 
      OR  name LIKE '%@name%'
", 
   conn);
comm.Parameters.Add("@categoryids", SqlDbType.Int);
comm.Parameters["@categoryids"].Value = CategoryIDs;
comm.Parameters.Add("@name", SqlDbType.Int);
comm.Parameters["@name"].Value = Name;
Run Code Online (Sandbox Code Playgroud)

哪里

  • CategoryID是以逗号分隔的数字列表"123,456,789"(不带引号)
  • Name是一个字符串,可能带有单引号和其他错误字符

什么是正确的语法?

.net sql parameters sql-injection parameterized

47
推荐指数
3
解决办法
3万
查看次数

在哪种语言中使用用户提供的正则表达式是一个安全漏洞?

编辑:tchrist告诉我,我对Perl不安全的原始指责是没有根据的.但问题仍然存在.

我知道在Perl中,你可以在正则表达式中嵌入任意代码,因此显然接受用户提供的正则表达式并匹配它允许任意代码执行并且是一个明显的安全漏洞.但对于使用正则表达式的所有语言都是如此吗?所有使用"Perl兼容"正则表达式的语言都适用吗?在哪些语言中,用户提供的正则表达式是否可以安全使用,以及哪些语言允许任意代码执行或其他安全漏洞?

regex security language-features

12
推荐指数
2
解决办法
4182
查看次数

在ASP.NET 4.5中,我应该如何编码要用作JavaScript变量的字符串,以防止XSS攻击

我知道有几种方法可以做到这一点,但它们都有一些缺点.是否有"接受"的方式,这被认为是最好的?

我以前使用的Microsoft.Security.Application.AntiXss.JavaScriptEncode()是很棒的,但AntiXSS已经结束了,因为编码器现在包含在4.5中的.NET中.

但是,由于某种原因,System.Web.Security.AntiXss.AntiXssEncoder不包括该JavaScriptEncode方法.

System.Web.HttpUtility.JavaScriptStringEncode(),但它使用黑名单方法进行编码,因此它不太可能像白名单编码器一样好.

我已经看到了一些使用的建议System.Web.Script.Serialization.JavaScriptSerializer.Serialize(),但这只是打电话HttpUtility.JavaScriptStringEncode().

那么目前用于编码作为JS变量编写的值的最佳接受白名单方法是什么?

javascript asp.net xss antixsslibrary

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