怎么攻击http网站的简单介绍

hacker|
355

HTTPS中间人攻击

前言

之前为信安系统导论展示准备的实验被之前的小组“捷足先登”了,无奈只能又找别的实验,看了各个小组的题目,发现已经涵盖了大部分常见易操作的攻击方式,很难找到一个完全独立于其他人攻击方式的新实验,毕竟攻击思路都有共通之处,常用工具也就那些。

翻论坛找到一个有关中间人攻击的实验,觉得可以作为这次的展示,遂决定以此为题。

背景知识

原理介绍

1.HTTPS和HTTP

HTTPS是在HTTP应用层基础上使用SSL(完 *** 接层)作为子层,SSL使用数据加密技术确保数据在 *** 上传输而不会被截取及窃听。

2.中间人攻击

①SSLStrip (降级攻击)的工作原理及步骤

(1) 先进行中间人攻击来拦截 HTTP 流量。

(2) 将出现的 HTTPS 链接全部替换为 HTTP,同时记下所有改变的链接。

(3) 使用 HTTP 与受害者机器连接。

(4) 同时与合法的服务器建立 HTTPS。

(5) 受害者与合法服务器之间的全部通信经过了 *** 转发。

(6) 其中,出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信任。

(7) 这样,中间人攻击就成功骗取了密码、账号等信息,而受害者一无所知。

总而言之,SSLStrip是一种降级攻击。

②sslsplit(解密攻击)工作原理

工具的主要原理是以中间人的身份将证书插入到客户端和服务器中间,从而截断客户端和服务器之间的数据。

之前我们大多数做的都是针对于80端口的欺骗(http),也就是说,只要是超越了80端口我们就会有点棘手:比如常用的443端口(https),比如465( *** tps)和587端口,这些都是通过SSL加密进行数据传输的,简单的80端口监听肯定是什么都拿不到的。这个时候,就体现出SSL证书劫持的作用了。

总而言之,SSLSplit是一种伪造证书攻击。

3.端口转发

数据包都是有原地址和目标地址的,NAT(network address translation, *** 地址转换)就是要对数据包的原地址或者目标地址(也可以修改端口的)进行修改的技术。为什么我们要修改ip地址呢?是这样的互联网中只能传送公网地址的数据包,私有地址的数据包是无法传送的。这样你想下,你每天在wifi环境下看视频浏览网站的时候你的ip是什么(私有地址,你手机、pad、电脑发出来的所有数据包原地址都是私有地址。怎么在互联网上传送)。为了能让你的数据包在能在互联网上传送,必须给你一个公网ip才行。所以当你上互联网的时候,路由器会帮你把所有的数据包的原地址转换成它的wlan口的ip地址(这个就是公网ip,一般就是ADSL拨号获取的ip)。这个转换的技术就是NAT。当你所访问的服务器给你回应数据包时,路由器会把所有数据包目标地址,由它的wlan口的ip地址,改回你内网的ip地址。这样你才能上互联网。所以你每天都在使用NAT技术。

4..数据重定向的 ***

如何重定向到攻击者电脑上成为靶机和服务器的中间人,其实有很多种方式。

比如:

(1)arp攻击(伪装网关)

(2)DNS劫持(伪装服务器)

(3)wifi钓鱼(之前pxy他们组做的实验就可以利用起来)

(4)修改hosts文件(把舍友暴打一顿,然后把他的电脑里的hosts文件改掉)

(5)修改默认网关(把舍友暴打一顿,然后把他的电脑里的默认网关改成自己的ip)

攻击过程

1.sslstrip攻击

①将设备设置为转发模式,这样我们的设备就可以转发目标不是我们设备的数据包。若不这样,则目标主机会出现断网的情况,arp欺骗就成了arp断网攻击。

防范方式

我们可以看到,无论是哪种攻击手段,利用的都是局域网的中间人攻击。因此一些防范方式有:

①不随意连接公共wifi

②对于arp表中的ip和MAC地址进行静态固定

③开启一些安全软件的arp防火墙

④及时更新浏览器版本或换用其他安全性高的浏览器

一些感想

找一种比较有特点的攻击方式不是那么容易,实现更不容易,这过程中遇到了各种问题,一些问题网上也找不到确切的解决 *** ,一度卡住后想要放弃换实验,但还是做了下来。尽管还是没能完全实现,但展示出自己的问题和疑惑也未尝不可。展示的过程中主要还是展示原理和实操过程,而对于实验的准备、中途遇到的问题以及其他实验过程,则没有时间也不必要作为展示,但这一过程其实才是实验对于我们小组成员来说最重要的。

小组成员也都很努力,也都按照自己的能力分担了不同的工作,不像操作系统的小组有人完全划水...总体来说实验还是比较成功的(强行自我鼓励),希望以后再有类似的展示能做的更完善吧。

http与重放攻击

HTTP报文在客户端与服务器之间传输的形式是明文,在传输的过程中,HTTP报文会经过很多 *** 节点,首先是局域网的路由器(例如家庭的路由器),然后是运营商的交换机或路由器,接着到目标服务器所在局域网的路由器,最终到达目标服务器,被它接收。

之所以说HTTP不安全,是因为传输的数据是明文,在客户端与服务器之间传输的过程中,也就是明文经过中间的 *** 节点时,存在被嗅探的风险。

攻击方式:

(1)在运营商的交换机或路由器上嗅探流量。

(2)WiFi劫持,假WiFi中间人。

HTTPS的 "S" 是 "SSL",在HTTP的基础上再增加一个协议,这个协议用于协商加密算法,位于传输层与应用层之间,在应用层的数据(例如 HTTP 报文)往下传给传输层之前,SSL对数据进行加密,然后再把密文封装到传输层协议中。

HTTP报文被加密后,即使攻击者在传输过程中捕获到报文,也无法解密成明文。攻击者无法理解报文的内容,也就无法窃取或篡改数据。这就保证了数据的保密性和完整性。

假设网站的前端与后端的通信协议是 HTTP ,在传输用户的登录口令时,可以在传输之前,前端计算口令的 MD5 值,然后再发送给服务器,这样可以尽可能地保证口令被窃取后不被破解。

攻击者可以截获报文,例如一个登录的请求报文,然后再发送一次给服务器,从而成功登录受害者的账号。

要防御这种攻击,可以在请求报文中加一个随机值(或者 salt),这个随机值可以和口令一起计算 MD5 值,也可以用一个独立的参数存储,被请求报文携带,发送到服务器上。在服务器上,也存储相同的随机值,用于验证从客户端发送过来的随机值。

最重要的一点是,这个随机值更好是一次性的,即使用一次就失效。这样的一次性正好挫败了重放攻击的重复性,也就防御了攻击。

我们先来回忆一下HTTPS的通信流程,HTTPS协议 = HTTP协议 + SSL/TLS协议,摘取一下网上一些八股文的回答(以RSA密钥交换的为例)!

画外音: 是不是贼熟悉,有背过 *** 八股文的,一看就懂!

关键问题就在步骤(6),怎么进行加密的?很多文章都没有说明,甚至有的人以为,拿client_random+server_random+pre_master_secret直接拼成一个字符串,然后就是对称加密密钥,客户端和服务端拿这个密钥对数据进行加密通信!!

对此,我只能说:"Too young too simple!离谱啊!!"

那正确的过程是怎么样的呢,我们继续往下看!

我先给本文提到的英文单词,给上我的中文翻译,以防大家混淆:

先大致有个印象,继续往下阅读

现在我们已经有三个参数client_random,pre_master_secret,server_random,服务端和客户端分别会根据这三个参数,推导出master_secret,一旦master_secret被推导出来,会立刻删除pre_master_secret。( 摘自rfc2246,section8.1 )

当master_secret计算出以后,立刻计算key_block( 摘自rfc2246,section6.3 ),这个密钥块,有的文章里又说他是会话密钥!计算公式如下,

如公式所示,PRF是一个Hash算法,如SHA256这些,具体用哪一个取决于TLS协议的版本!我们得到key_block后,可以基于到key_block继续推导出6个密钥值,分别是

整个过程用一张图来说明,注意了这六把密钥是根据key_block推导而出,也就是意味着这六把密钥是服务端和客户端共同持有的!

[图片上传失败...(image-dd960a-1651718824022)]

大家一定也发现了,你的密钥前都带有client或者server前缀,这代表密钥是服务端使用还是客户端使用!例如,客户端用client_write_key进行数据加密,发送数据,服务端收到消息后利用client_write_key进行解密。而后服务端使用server_write_key进行数据加密回复信息,客户端收到消息后用server_write_key解密服务端发来的信息!

OK,我们继续往下看!

现在我们已经有了6把密钥了,已经需要发送的消息data,那么加密流程具体怎么样的呢?

TLS一共有三种加密模式,流加密模式、分组模式、 AEAD 模式,我以流加密模式来进行说明,如下图所示

[图片上传失败...(image-2ae534-1651718824022)]

我们现在来看上面的第二步,利用write_mac_key对数据加密,加上MAC验证码,利用MAC码来保证完整性。

那么,这个MAC验证码的生成公式又是怎么样的呢?

在流加密模式下,MAC验证码公式为( 摘自rfc2246,section6.2.3.1 )

[图片上传失败...(image-f2482f-1651718824022)]

看到入参中的seq_num了么? 这就是数据的序列号,这个序号就是用来防止重放攻击的! 那这个序列号怎么用的呢?

假设,此时服务端和客户端连接成功后 (1) 客户端会在内存中记录 client_send 和 client_recv,默认值为0.客户端每发送一条消息,client_send 会加1,每接收一条服务端发来的消息,client_recv 会加1。 (2) 服务端也会在内存中记录 server_send 和 server_recv,作用和客户端的作用一样。服务端每发送一条消息,server_send 会加1,每接收一条客户端发来的消息,server_recv 会加1。 (3) 客户端发送数据时,以当前client_send作为seq_num,计算mac值,发送给服务端,然后client_send加1。 (4) 服务端收到消息后,先以当前server_recv值,进行完整校验,校验成功后server_recv加1。然后以server_send为作为seq_num,计算mac值,发送给客户端,然后server_send加1。 (5) 也就是说,如果发送和接收都正常,那么 client_send = server_recv、client_recv = server_send

假设,客户端和服务端相互通信了4次,client_send = server_recv=3(从0开始,所以是3),服务端检验完第4次消息后,server_recv加1,此时server_recv=4。攻击者如果想重放第4次消息,第4次消息中的client_send值是3,就会出现校验失败的情况!从而能够抵挡住重放攻击!

OK,讲到这里,基本上能回答最开始提出的问题了!

当然,TLS协议本身的内容比较多,我在这里放上TLS协议的地址,大家有兴趣可以自己去查看:

假设,我们用符号[]表示一次TCP连接,0,1,2,...代表数据包序号,根据上面的分析,对于这种形式的重放攻击,[0,0,0,1,1,2,2,3,3,3….],HTTPS协议是能够拦截的!

那如果不是一次请求里的重放攻击呢?例如形式是[0,1,2,3….],[0,1,2,3….],这种形式的重放攻击,HTTPS协议能够拦截么?有答案,可以在留言区进行回复!

提示 :想一想看,最开始的客户端随机数和服务端随机数的作用!

怎么攻击别人网站

首先你要有大量的肉鸡,用DDOS攻击。就是让你的肉鸡全部去连接要攻击的网站,那样就会造成网站拒绝服务。

请问怎样入侵一个网站?

入侵用ASP

PHP

*** P等代码编写的站点可以选择注入漏洞。入侵网站所在的服务器,扫描IP端口和查询该服务器存在哪些漏洞,利用服务器开放的端口进行入侵,利用漏洞获取服务器权限,还可以用木马入侵使网站主机感染你的木马,这方面的知识在黑客论坛上有很多,需要用到一些工具,黑客专用记事本,IP端口扫描器软件

网站猎手,超级木马注入器,挖掘鸡,明小子

等。入侵就是根据网站的特点要找出一个有效的思路,多上专业的论坛,看看前辈的帖子,混个两三个月就可以拿一些小网站来练练手。另外要注意入侵对象和回擦脚印,否则你很有可能在兴奋自己黑客技术提高的同时便锒铛入狱。

*** 攻击有哪些方式应该怎样防御?

Web服务可以认为是一种程序,它使用HTTP协议将网站中的文件提供给用户,以响应他们的请求。这些请求由计算机中的HTTP客户端转发。为Web服务提供硬件基础的专用计算机和设备称为Web服务器。从这种 *** 设计中可以看到,Web服务器控制着大量信息。如果一个人拥有进入Web服务器修改数据的能力,那他就可以对该Web服务器所服务的信息和网站做任何他想做的事情。有以下七种常见攻击:

1.目录遍历攻击 - 此类攻击利用Web服务器中的漏洞来未经授权地访问不在公共域中的文件和文件夹。一旦攻击者获得访问权限,他们就可以下载敏感信息,在服务器上执行命令或安装恶意软件。

2.拒绝服务攻击 - 借助此攻击类型,Web服务器将会无法被合法用户访问,一般表现为超时,崩溃。这通常被攻击者用于关闭具有特定任务的服务器。

3.域名劫持 -在此攻击中,攻击者更改DNS设置以重定向到他自己的Web服务器。

4.嗅探 - 在没有加密的情况下,通过 *** 发送的数据可能会被截获。通过对数据的分析攻击者可能会获得对Web服务器的未授权访问或身份伪造的能力。

5. *** 钓鱼 - 这是一种将真实网站克隆到虚假网站的攻击,用户不知道他们是否在真实的网站上。这种攻击通过欺骗用户来窃取敏感信息,如登录密码、银行卡详细信息或任何其他机密信息。

6.域欺骗 - 在此攻击中,攻击者会破坏域名系统(DNS)或用户计算机,以便将流量定向到恶意站点。

7.Web破坏 - 通过这种类型的攻击,攻击者用自己的页面替换组织的网站。这种情况下,无论攻击者想在网站上取代什么,他都可以在这次攻击中做到。

如果遇到攻击却没有一个专业的程序员维护,网站会经常性的出现很多问题,网页打开缓慢、延迟、打不开甚至死机,因此流失很多客户。

推荐杭州超级科技的超级盾!主要针对HTTP/HTTPS类Web业务的全球分布式云防御产品。具有DDoS防御、CC防御、云WAF等功能。客户自身不需要在本地部署任何安全设备,只需采用CNAME替换网站A记录、或高防IP方式即可快速接入我们的服务。超级盾(WEB版)智能DNS能快速调度到全球离客户最近的清洗中心,具有智能路由、智能加速的特性。

如何攻击网站

要看网站的代码程序用的那种?

一般有asp,php,htm,html,jsp,aspx 还有其他封装的比如DLL的

一般ASP PHP ASPX *** P 等动态服务器代码可以利用数据库漏洞进行攻击获得网站后台管理权限

具体用到的软件 “明小子” 的软件

Domain3.6明小子旁注入侵专用程序

;bs=%C6%C6%BD%E2%CD%F8%D5%BE%BA%F3%CC%A8sr=z=cl=3f=8wd=%C3%F7%D0%A1%D7%D3ct=0

0条大神的评论

发表评论