破壳作业

作业:

1-4.使用 Arachni 发现 Web 漏洞作业:

搭建 Arachni,并创建一套规则,然后扫描 http://www.vulnweb.com/ 上面的其它测试网站,输出扫描报告

2-3.了解一个网站的部署与运行机制:

利用 PHPStudy 或者宝塔搭建 wordpress ,并记录下中途出现的错误和解决过程

3-3.Web 工作流程(包含 HTTP 协议):

配置好浏览器和burp工具,访问 pockr.org (http://pockr.org/),并拦截数据包,尝试修改请求和响应内容观察变化,记录下来

3-6.Cookie 与 Session:

选一个熟悉的网站访问,分析出用于保存登录状态的信息是在哪一段 cookie 中(请注意对 cookie 的内容进行马赛克处理)

作业提交时间:

下周日 24:00(8 月 5 日)前

1-4.使用 Arachni 发现 Web 漏洞作业:

搭建 Arachni,并创建一套规则,然后扫描 http://www.vulnweb.com/ 上面的其它测试网站,输出扫描报告

 

1Arachni是一个多功能、模块化、高性能的Ruby框架,旨在帮助渗透测试人员和管理员评估web应用程序的安全性。同时Arachni开源免费,可安装在windows、linux以及mac系统上,并且可导出评估报告。

 

下载地址:http://www.arachni-scanner.com/download/

 

解压文件arachni-1.5.1-0.5.12-darwin-x86_64.tar.gz,然后进入arachni-1.5.1-0.5.12目录下的bin文件夹,运行./arachni_web,随后浏览器访问http://localhost:9292

这里我自己看了下README文件

2# cat README

   Arachni - Web Application Security Scanner Framework

 

Homepage           - http://arachni-scanner.com

Blog               - http://arachni-scanner.com/blog

Documentation      - https://github.com/Arachni/arachni/wiki

Support            - http://support.arachni-scanner.com

GitHub page        - http://github.com/Arachni/arachni

Code Documentation - http://rubydoc.info/github/Arachni/arachni

Author             - Tasos "Zapotek" Laskos (http://twitter.com/Zap0tek)

Twitter            - http://twitter.com/ArachniScanner

Copyright          - 2010-2017 Sarosys LLC

License            - Arachni Public Source License v1.0 -- see LICENSE file)

--------------------------------------------------------------------------------

 

To use Arachni run the executables under "bin/".

 

To launch the Web interface:

    bin/arachni_web

 

Default account details:     //默认启动配置

 

    Administrator:

        E-mail address: [email protected]

        Password:       administrator

 

    User:

        E-mail address: [email protected]

        Password:       regular_user

 

For a quick scan: via the command-line interface:

    bin/arachni http://test.com

 

To see the available CLI options:

    bin/arachni -h

 

For detailed documentation see:

    http://arachni-scanner.com/wiki/User-guide

 

Upgrading/migrating

--------------

 

To migrate your existing data into this new package please see:

 

    https://github.com/Arachni/arachni-ui-web/wiki/upgrading

 

Troubleshooting

--------------

See the included TROUBLESHOOTING file.

 

Disclaimer

--------------

Arachni is free software and you are allowed to use it as you see fit.

However, I can't be held responsible for your actions or for any damage

caused by the use of this software.

 

Copying

--------------

For the Arachni license please see the LICENSE file.

 

The bundled PhantomJS (http://phantomjs.org/) executable is distributed

under the BSD license:

    https://github.com/ariya/phantomjs/blob/master/LICENSE.BSD

 

二、Arachni配置扫描

Arachni目录里有关于该工具的简单使用说明,也可以找到安装后的初始用户名和密码

 浏览器访问http://localhost:9292,进入登录页面

Scan目标网站之后

 

第二题

 

2-3.了解一个网站的部署与运行机制:

利用 PHPStudy 或者宝塔搭建 wordpress ,并记录下中途出现的错误和解决过程

 

这里搭建phpstudy,不同版本

下面是安装目录,网站主要存放于www目录下

可直接访问

这里要注意端口的问题,端口对应的问题

如果冲突,就要换端口,或者关闭相应端口,这里可用命令

 

再一个就是版本类型的选择,win10操作系统的需要下载这个版本

Wordpres

 

Wordpres需要对接数据库,这又成了一个难题,尤其是之间的通信,需要修改很多配置

由于之前在破壳视频中完成了很大一部分,这部分可以按照poke视频中来做

最后完成的效果

 

3-3.Web 工作流程(包含 HTTP 协议):

配置好浏览器和burp工具,访问 pockr.org (http://pockr.org/),并拦截数据包,尝试修改请求和响应内容观察变化,记录下来

这个是摘自我自己博客上的一部分

1网站访问原理

例如访问 www.baidu.com  你可以点击f12看一下

大纲:
1、用户访问网站流程框架
2、DNS解析原理 *****
3、tcp/ip三次握手原理 *****
4、http协议原理(www服务的请求过程)请求报文细节!
5、大规模网站集群架构细节。
6、http协议原理(www服务的响应过程)响应报文细节!
7、tcp/ip四次挥手过程原理 *****  断开链接

步骤:

(1)用户输入URL

(2)浏览器代为封装成符合http格式的Request请求,包含请求首行、请求头和请求体

(3)Request请求是应用层数据,再由OS完成TCP、IP、MAC层封装,送到网卡处以比特流形式送送

(4)经过网络传输,比特流到达服务器端,被服务器接收。

(5)服务器OS逐一去掉 MAC、IP、TCP层封装,剥出应用层数据,也就是Request请求,并交给应用层的Web应用

(6)Web解析Request请求内容,并生成Respond响应,交给服务器OS

(7)Respond响应也是应用层数据,由服务器OS完成TCP、IP、MAC层封装,送到网卡处以比特流形式送送

(8)经过网络传输,比特流到达服务器端,被用户机器接收。

(9)用户机器OSS逐一去掉 MAC、IP、TCP层封装,剥出应用层数据,也就是Respond响应,并交给应用层的浏览器。

(10)浏览器根据Response响应内容,组织显示给用户看。

 

http的请求报文,主要包括,请求行,请求头部,空行,请求主体
而请求行又包括,请求方法,url,协议版本,请求方法主要有GET、HEAD、POST、PUT、DELETE、MOVE,url就是统一资源定位符,通过这个能在服务器上找到唯一的网页资源,协议版本,目前主流的是http1.1,开始流行的协议版本是http1.0,相对应http1.0,http1.1主要从可扩展性、缓存处理、带宽优化、持久连接、host头、错误通知、消息传递、内容协商等多方面做了一些优化,以上是请求行的内容
请求头部,请求头部主要有媒体类型,语言类型、支持压缩、客户端类型、主机名等,媒体类型主要有文本文件,图片文件,视频文件等,语言类型就是告诉服务器客户端的接受的语言,支持压缩的话,可以节省带宽,客户端类型,会显示客户端浏览器的版本信息,操作系统信息等
空行,代表请求头部的结束,也代表着请求主体的开始
请求报文主体,只有使用POST提交表单的时候,才有
对应的,服务器收到请求报文之后,就会给出响应报文

响应报文主要包含起始行、响应头部、空行、响应报文主体
起始行一般包含http版本号,数字状态码,状态情况

响应头部,主要包括,服务器的web软件版本,服务器时间,长连接还是短连接,设置字符集等等
这里的空行和请求报文空行一样
在报文主体中包装载了要返回给客户端的数据

常见的网页资源有三种,分别是静态网页,动态网页,伪静态,当然这需要着重看

服务器的访问量达到亿级PV时,这个访问的过程就更复杂了,用户的请求会先访问全国的CDN节点,通过CDN挡住全国80%的请求,当CDN上没有时,在访问服务器集群,这个集群一般都有一个4层的代理,这个4层的代理,使用软件来完成的话,就是LVS,使用硬件就是F5,4层的代理,后面才是7层的负载均衡,常用的是haproxy,nginx,然后才是多台web服务器,web服务器比较多的时候,就有两个问题,一个是用户数据的一致性,不能因为不同的web服务器提供服务,而导致数据不同步,这时候,我们就需要使用NFS共享存储,第二个问题是session,不能因为不同的web服务器提供服务,session找不到了,这时候,我们就需要使用memcached来存放并共享session。由于用户访问量太大,这时候的瓶颈就是数据库的压力,我们一般都是使用分布式缓存memcache,redis等,另外数据库还需要做读写分离等优化,后面的过程与访问动态网页类似

当浏览器加载一个完整的页面时,还需要与服务器断开连接,这个过程就是tcp的四次挥手​

下面是抓取修改破壳中的U-A头,只是记录了部分。

 

 

 

 

3-6.Cookie 与 Session:

选一个熟悉的网站访问,分析出用于保存登录状态的信息是在哪一段 cookie 中(请注意对 cookie 的内容进行马赛克处理)

上图cookie中直接抓取了我登录账号密码的过程,我试图抓取扫描二维码的包,抓取返回验证,但是我比较不出来其中的差别,我的猜测可能是跳转过多,在服务器中的session做出判断依据。

cookie吧,设置有效期和加密
三四千人同时在线,Session可能会丢失

cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION

setcookie($name, $value, $expire, $path, $domain, $secureie($name, $value, $expir

setcookie($name, $value, $expire, $path, $domain, $secure)

$path, $domain, $secure)

cookie是什么时候被保存在浏览器中的?

这个问题很重要,浏览器的cookie值不会凭空产生。它是服务器端通知客户端的产生的。如果用户浏览器支持COOKIE,使用下面一段代码就可以创建COOKIE。

setcookie($name, $value, $expire, $path, $domain, $secure)

猜你喜欢

转载自blog.csdn.net/qq_40268306/article/details/81396599