作业:
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)