作者:hacker发布时间:2022-07-12分类:黑客教程浏览:114评论:5
https及https的本地测试环境搭建。asp.net结合https的代码实现http网站转换成https网站,以及之后遇到的问题等。
一:什么是https
SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。
SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。使用SSL安全机制的通信过程如下:用户与IIS
服务器建立连接后,服务器会把数字证书与公用密钥发送给用户,用户端生成会话密钥,并用公共密钥对会话密钥进行加密,然后传递给服务器,服务器端用私人密
钥进行解密,这样,用户端和服务器端就建立了一条安全通道,只有SSL允许的用户才能与IIS服务器进行通信。
提示:SSL网站不同于一般的Web站点,它使用的是“HTTPS”协议,而不是普通的“HTTP”协议。因此它的URL(统一资源定位器)格式为“https://网站域名”。
二:https的本地测试环境搭建
1:win7/windows server 2008R2中 IIS7/IIS7.5 搭配https本地测试环境
2:windows server 2003中IIS6.0 搭配https本地测试环境
三:asp.net 结合 https的代码实现
https是由IIS,浏览器来实现的传输层加密,不需要特意的编码。。。平时怎么在asp.net里面编写代码,就怎么写。
很可能要问,为什么我的站点使用了https之后,用firebug之类的软件查看值提交的时候,还是会显示明文呢?例如,博客园的登陆界面提交。
http://passport.cnblogs.com/login.aspx
为什么这里还是能看到明文的用户名和密码呢?
原因是因为:https(ssl)的加密是发生在应用层与传输层之间,所以,在传输层看到的数据才是经过加密的,而我们捕捉到的http post的,是应用层的,是还没经过加密的数据。
加密的数据只有客户端和服务器端才能得到明文 客户端到服务端的通信是安全的
支付宝也是https的,但是他的同时也增加了安全控件来保护密码, 以前认为这个只是用来防键盘监听的,其实,看下面http post截获的密码:这个安全控件把给request的密码也先加了密,紧接着https再加次密,果然是和钱打交道的,安全级别高多了:)
四:http网站转换成https网站之后遇到的问题
整站https还是个别的页面采用https?网站的连接是使用相对路径?还是绝对路径?
如果是整站都是https,那么会显得网页有些慢,如果是个别页面采用https,那么如何保证从https转换到http的时候的url的准确性呢?
比如我们用http的时候,网站的头部底部都是用的相对路径,假如你的页面是 http://aa/index.aspx 你跳转到 https://aa/login.aspx 这里怎么来跳转?只能把超链接写死
登陆 但是这样的话,你跳转过去之后的页面 ,所有的相对路径都变成了https开头了,这样很影响网站的效率。
虽然使用绝对地址可以解决,但是那样显然不好移植。
下面就是使用第三方的组件,来解决上面的这个问题
步骤
先下载dll文件 http://code.google.com/p/securityswitch/downloads/list 我选择的是 SecuritySwitch v4.2.0.0 - Binary.zip这个版本
1: 我们来看看测试项目
admin 文件夹,需要登录之后,才能访问。admin里面的 login.aspx 可以访问。整个admin文件夹都需要https访问:
contact.aspx 需要https 访问:
default.aspx 和 view.aspx 采用 http 访问:
链接我们都采用相对路径,并没有写死成 http:// 或者是 https://。
下面我们开始用SecuritySwith来实现上面的https和http访问的规则。
2:在项目上,添加引用 SecuritySwitch.dll ,并且添加智能提示。
这样,只能提示就有了。
3:然后我们在web.config里面添加设置 。根据IIS的不同,还分为 IIS6+ IIS7.X(经典模式) 以及 IIS7(集成模式) 的不同的配置,这里我们是按照IIS6+IIS7.X的(经典模式)来配置的。
只看看里面的 SSL配置即可:
?xml version="1.0"?
configuration
!--SSL配置1开始--
configSections
section name="securitySwitch" type="SecuritySwitch.Configuration.Settings, SecuritySwitch" /
/configSections
securitySwitch baseInsecureUri=""
baseSecureUri="" xmlns=""
mode="On"
!--如果你的http和https仅仅只有一个s的区别,那么这里的base的2个url可以不写,那为什么还要搞这2个url呢?因为比如
你的 baseInsecureUri (基本不安全网址) 是
而你的 baseSecureUri (基本安全网址) 是
然后这个时候你访问一个需要https的页面,假如是 login.aspx?return=joey
假如你是通过访问的,那么这个
页面会跳转到
--
paths
add path="~/contact.aspx"/
add path="~/admin/login.aspx"/
add path="~/admin" /
!--这里的admin因为不仅是 admin 文件夹,而且还包含类似的 adminNews.aspx adminQQ.aspx 页面"--
!--但是如果是 ~/admin/ 就是专门指admin文件夹--
/paths
/securitySwitch
!--SSL配置1结束—
appSettings /
system.web
compilation debug="true"
/compilation
!-- 内置票据认证 start--
authentication mode="Forms"
forms name="mycook" loginUrl="admin/login.aspx" protection="All" path="/" /
/authentication
!--SSL配置2 如果是 IIS = 6.x, IIS 7.x + 经典模式--
httpModules
add name="SecuritySwitch" type="SecuritySwitch.SecuritySwitchModule, SecuritySwitch" /
/httpModules
!--SSL配置2结束--
/system.web
!--SSL配置2 如果是IIS7.X + 集成模式--
!--system.webServer
validation validateIntegratedModeConfiguration="false" /
modules
--!-- for IIS 7.x + 集成模式 --!--
add name="SecuritySwitch" type="SecuritySwitch.SecuritySwitchModule, SecuritySwitch" /
/modules
/system.webServer--
!--如果是IIS7.X+集成模式 SSL配置2 结束—
/configuration
4: 由于用到了内置票据认证,所以要在 Global.asax添加以下代码:
protected void Application_AuthenticateRequest(object SENDER, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket tiecket = id.Ticket;
string userData = tiecket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles);
}
}
}
}
5: 后台登陆界面 admin/login.aspx:
%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="web.admin.login" %
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head runat="server"
title/title
/head
body
form id="form1" runat="server"
用户名:asp:TextBox ID="txtUser" runat="server"/asp:TextBoxbr /
密码:asp:TextBox ID="txtPass" runat="server"/asp:TextBoxbr /
记住用户名:asp:CheckBox ID="chkUsername" runat="server" Checked="true"/
br /
asp:Literal ID="litResult" runat="server"/asp:Literal
br /
asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /
/form
/body
/html
后台登陆界面 cs admin/login.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace web.admin
{
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string username = txtUser.Text;
string pass = txtPass.Text;
bool ischeck=chkUsername.Checked;
if (username=="admin" pass=="admin")
{
SaveLogin(username, ischeck);
}
}
private void SaveLogin(string username, bool ischeck)
{
HttpCookie cook;
string strReturnURL;
string roles = "admin";//将用户的usernameid,保存到cookies,身份是 admin 身份
//要引用 using System.Web.Security;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, username, DateTime.Now, DateTime.Now.AddMinutes(30), ischeck, roles);
cook = new HttpCookie("mycook");//对应webconfig里面的 验证里面的 forms name="mycook"
cook.Value = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(cook);
strReturnURL = Request.Params["ReturnUrl"];
if (strReturnURL != null)
{
Response.Redirect(strReturnURL);
}
else
{
Response.Redirect("default.aspx");
}
}
}
}
kali Linux系列教程之BeFF安装与集成Metasploit
apt-get install beef-xss
cd /usr/share/beef-xss
./beef
打开浏览器输入:
用户名和密码都是beef。输入完毕点击Login,登录
在浏览器打开默认测试页面。
在目标系统访问测试页面之后,在beef管理页面可以看到收集的信息,此时也可以发送一些攻击命令了。详细内容可以参考我的在线视频教程:Kali Linux Web 渗透测试视频教程—第16课 BeEF基本使用
第一类:网络渗透测试工具
网络渗透测试工具是一种可以测试连接到网络的主机/系统的工具。通用的网络渗透测试工具有ciscoAttacks、Fast-Track、Metasploit、SAPExploitation等,这些工具各有各的特点和优势。因为网络渗透测试是一个相对广泛的概念,所以上述工具也可以包括社会工程学渗透测试模块,网络渗透测试模块和无线渗透测试模块。
第二类:社会工程学渗透测试工具
社会工程学渗透测试是利用社会工程学进行渗透测试,通常利用人们行为中的弱点来达到渗透的目的。典型的社会工程学渗透测试工具有BeefXSS和HoneyPots,这些工具诱使用户访问特定的网站,获得用户的Cookie信息,达到渗透的目的。
第三类:网站渗透测试工具
网站渗透测试是对Web应用程序和相应的设备配置进行渗透测试。在进行网站渗透测试时,安全工程序必须采用非破坏性的方法来发现目标系统中的潜在漏洞。常用的网络渗透测试工具有asp-auditor、darkmysql、fimap、xsser等。
第四类:无线渗透测试工具
无线渗透测试工具是蓝牙网络和无线局域网的渗透测试。在进行无线渗透测试时,一般需要先破解目标网络的密码,或者建立虚假热点来吸引目标用户访问,然后通过其他方式控制目标系统。常见的蓝牙网络渗透测试工具有atshell、btftp、bluediving、bluemaho等;常见的无线局域网渗透测试工具有aircack-ng、airmon-ng、pcapgetiv和weakivgeng等,这些工具实现了不同的功能,可以让安全工程师通过各种方式进行无线渗透测试。
通常的黑客攻击包括预攻击、攻击和后攻击三个阶段;预攻击阶段主要指一些信息收集和漏洞扫描的过程;攻击过程主要是利用第一阶段发现的漏洞或弱口令等脆弱性进行入侵;后攻击是指在获得攻击目标的一定权限后,对权限的提升、后面安装和痕迹清除等后续工作。与黑客的攻击相比,渗透测试仅仅进行预攻击阶段的工作,并不对系统本身造成危害,即仅仅通过一些信息搜集手段来探查系统的弱口令、漏洞等脆弱性信息。为了进行渗透测试,通常需要一些专业工具进行信息收集。渗透测试工具种类繁多,涉及广泛,按照功能和攻击目标分为网络扫描工具、通用漏洞检测、应用漏洞检测三类。
第一个:NST
NST一套免费的开源应用程序,是一个基于Fedora的Linux发行版,可在32和64位平台上运行。这个可启动的Live
CD是用于监视、分析和维护计算机网络上的安全性;它可以很容易地将X86系统转换为肉机,这有助于入侵检测,网络流量嗅探,网络数据包生成,网络/主机扫描等。
第二个:NMAP
NMAP是发现企业网络中任何类型的弱点或漏洞的绝佳工具,它也是审计的好工具。该工具的作用是获取原始数据包并确定哪些主机在网络的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。NMAP对渗透测试过程的任何阶段都很有用并且还是免费的。
第三个:BeEF工具
BeEF工具主要利用移动端的客户,它的作用是用于检查Web浏览器,对抗Web抗击。BeEF用GitHub找漏洞,它探索了Web边界和客户端系统之外的缺陷。很重要的是,它是专门针对Web浏览器的,能够查看单个源上下文中的漏洞。
第四个:Acunetix Scanner
它是一款知名的网络漏洞扫描工具,能审计复杂的管理报告和问题,并且通过网络爬虫测试你的网站安全,检测流行安全漏洞,还能包含带外漏洞。它具有很高的检测率,覆盖超过4500个弱点;此外,这个工具包含了AcuSensor技术,手动渗透工具和内置漏洞测试,可快速抓取数千个网页,大大提升工作效率。
第五个:John the Ripper
它是一个简单可快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,如DES、MD4、MD5等。
标签:beef渗透工具网页启动
已有5位网友发表了看法:
访客 评论于 2022-07-12 23:14:48 回复
页面是 http://aa/index.aspx 你跳转到 https://aa/login.aspx 这里怎么来跳转?只能把超链接写死登陆 但是这样的话,你跳转过去之后的页面 ,所有的相对路径都变成了https开
访客 评论于 2022-07-12 19:01:08 回复
网站,获得用户的Cookie信息,达到渗透的目的。第三类:网站渗透测试工具网站渗透测试是对Web应用程序和相应的设备配置进行渗透测试。在进行网站渗透测试时,安全工程序必须采用非破坏性的方法来发现目标系统中的潜在漏洞。常用的网络渗透测试工具有asp-auditor
访客 评论于 2022-07-12 21:22:44 回复
大多数的加密算法,如DES、MD4、MD5等。
访客 评论于 2022-07-12 20:31:46 回复
通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。使用SSL安全机制的通信过程如下:用户与IIS服务器建立连接后,服务器会把数字证书与公
访客 评论于 2022-07-12 15:06:43 回复
导航:1、beef怎么把网站变成https2、kali linux beef怎么上钩3、渗透测试工具的介绍4、渗透测试工具的渗透测试工具5、web渗透测试工具beef怎么把网站变成httpshttps及https的本地测试环境搭建。asp