• SEO是一个到底多么牛叉的行业?SEO是一个到底多么牛叉的行业?
  • 郑州SEO郑州seo
  • 郑州SEO你只看到了别人的成功,却看不到别人默默的
  • 郑州SEOSEO切莫浪费时间在不必要的问题上
  • 1
  • 2
  • 3
  • 4

防止Webshelll密码被暴力破解

时间:2013-7-7 作者:问候seo

虽然早就知道有这种工具,但是一试之后才发现确实太过凶残。

我想了一下,对于这种蛮不讲理的方式貌似是没有完美的解决办法。这东西就像DDOS一样,你可以轻视视,但不能无视。
不过针对现有的较为流行的Webshelll密码破解工具,可以做一些简单的措施来降低被爆菊的可能性。

第一个自然是增强密码强度了。

考虑到现在的密码破解主要是通过加载字典进行穷举,所以把密码改的又长又臭是非常简单而有效的安全措施。
第二就是增加一个判断机制。

通常攻击者要进行暴破时会先观察一下Webshell,比如密码的提交方式(POST还是GET)、密码错误的提示。
然后根据这些信息来配置攻击参数。当然现在大部分的webshell密码提交是post的。

我们可以再加一个GET的验证,这样破解工具就失效了。(因为他并不知道你对GET参数是怎么验证的)
假如之前的密码验证是这么写的的话

<?php
// … some code
$pass= “我是密码”;

if($_POST[‘pass’]==$pass)
{
echo”登录成功!”;
// … some code
}

//…some code

?>
我们可以这么改一下

<?php
// … some code
$pass= “我是密码”;

if($_POST[‘pass’]==$pass)
{
if($_GET[‘url’] == “ADmin”)
{
echo”登录成功!”;
// … some code
}
}

//…some code

?>

这样我们可以通过webshell.php?url=ADmin 来正常登陆。而攻击者只能抱着webshell.php团团打转。

此外还可以通过判断HTTP_REFERER来验证。
一般的工具进行暴破时,会伪造一个HTTP_REFERER的值为webshell的ur的包l,或者有的干脆就是空的。
当我们通过webshell.php?url=ADmin或者另一个页面(比如本地html)提交密码时,HTTP_REFERER的值是其他的值。这样也可以分辨出是不是你自己在登录。

第三个就更猥琐的,换一个验证的方式。
在webshell上留下一个POST的表单。但是程序不对POST数据做任何验证。而是验证提交的cookies内容。
比如这样

<?php
// … some code
$pass= “我是密码”;

if($_COOKIE[‘admin’]==$pass)
{
echo”登录成功!”;
// … some code
}

//…some code
?>

目前还没看到有提交cookies的暴力破解工具(不过没看到有用cookies提交密码的webshell ^_^),这样就可以躲过一劫了。
就是有点麻烦,如果你是第一次登陆自己的webshell,可能需要开一个修改cookies的插件。
还有一个无聊的方法我自己没有用:

<?php
// … some code
$pass= rand(2000,99990);
if($_POST[‘pass’]==$pass)
{
echo”登录成功!”;
header(‘location: /userRpmNatDebugRpm26525557/MyShell.htm’);
}
////// 以下为密码验证部分
$pass= “我是密码”;

if($_COOKIE[‘admin’]==$pass)
{
echo”登录成功!”;
// … some code
}

//…some code
?>

代码要是这么改以后,我估计爆密码那哥们得纠结纠结自己下载的工具有没有问题了……
对于怎么隐藏Webshell入口或是隐藏Webshell本身各位一定有更多更好的见解。
本文抱砖引玉,旨在用一个简单的方法来躲过webshell密码破解工具的攻击,简单为上。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:1448228637@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。