2012年10月31日 星期三

ASP.NET取得網卡MAC地址


详细代码请参考下面,代码多有参考网络,为我所用(客户端)。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

//引入相应的空间信息
using System.Text.RegularExpressions;
using System.Diagnostics;



public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //此处输入Ip地址,你可以做成接受文本框的值进行查询
        Response.Write(GetCustomerMac("192.168.168.242"));
    }

  
    //这里是关键函数了
    public string GetCustomerMac(string IP) 
    { 
       string dirResults=""; 
       ProcessStartInfo psi  = new ProcessStartInfo(); 
       Process proc = new Process(); 
       psi.FileName = "nbtstat"; 
       psi.RedirectStandardInput = false; 
       psi.RedirectStandardOutput = true; 
       psi.Arguments = "-a " + IP; 
       psi.UseShellExecute = false; 
       proc = Process.Start(psi); 
       dirResults = proc.StandardOutput.ReadToEnd(); 
       proc.WaitForExit();
        
       //匹配mac地址
       Match m = Regex.Match(dirResults, "\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w\\w");

       //若匹配成功则返回mac,否则返回找不到主机信息
       if (m.ToString() != "")
       {
           return m.ToString();
       }
       else
       {
           return "找不到主机信息";
       }       

     }
}
讲到如何取得网卡mac地址,就不得不讲到dos命令:NBTSTAT,下面简单介绍下(客户端):
1. 具体功能
  该命令用于显示本地计算机和远程计算机的基于 TCP/IP(NetBT) 协议的 NetBIOS 统计资料、 NetBIOS 名称表和 NetBIOS 名称缓存。 NBTSTAT 可以刷新 NetBIOS 名称缓存和注册的 Windows Internet 名称服务 (WINS) 名称。使用不带参数的 NBTSTAT 显示帮助。
2. 语法详解
nbtstat [-a remotename] [-A IPaddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]
3. 参数说明
-a remotename 显示远程计算机的 NetBIOS 名称表, 其中, remote name 是远程计算机的 NetBIOS 计算机名称。 NetBIOS 名称表是运行在该计算机上的应用程序使用的 NetBIOS 名称列表。 
-A IPaddress 显示远程计算机的 NetBIOS 名称表, 其名称由远程计算机的 IP 地址指定 ( 以小数点分隔 ) 。 
-c 显示 NetBIOS 名称缓存内容、 NetBIOS 名称表及其解析的各个地址。 
-n 显示本地计算机的 NetBIOS 名称表。 Registered 中的状态表明该名称是通过广播或 WINS ******注册的。 
-r 显示 NetBIOS 名称解析统计资料。 在配置为使用 WINS 的 Windows 计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。 
-R 清除 NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PRE 标记的项目。 
-RR 重新释放并刷新通过 WINS 注册的本地计算机的 NetBIOS 名称。 
-s 显示 NetBIOS 客户和******会话,并试图将目标 IP 地址转化为名称。 
-S 显示 NetBIOS 客户和******会话,只通过 IP 地址列出远程计算机。
  Interval 重新显示选择的统计资料,可以中断每个显示之间的 Interval 中指定的秒数。 按Ctrl+C 停止重新显示统计信息。如果省略该参数, NBTSTAT 将只显示一次当前的配置信息。
我们试下它的功能:在DOS窗口下,输入:
nbtstat -a 192.168.168.242
       这里的192.168.168.242是我的本机IP,测试中发现呆会的程序并不能取得非本地的mac地址,也就是说只能取得******的网卡mac地址,而不能取得客户端的网卡mac地址,记得以前用一些黑客软件的时候可以办到获取对方的网卡mac地址的,有空研究下。结果如下图:
看到网卡的MAC地址了吧!也就是:
MAC Address = 00-18-F3-A7-E1-56
所以在asp.net中我们也是根据这个原理,先取得指定Ip的所有信息后,再用正则取得我们要的mac地址。

法二 (载自 http://topic.csdn.net/t/20020619/14/815413.html)(******端)
using   System.Management;   ...   
    ManagementClass   mc   =   new   ManagementClass("Win32_NetworkAdapterConfiguration");   
    ManagementObjectCollection   moc   =   mc.GetInstances();     
  foreach(ManagementObject   mo   in   moc)     
  {     
  if((bool)mo["IPEnabled"]   ==   true)   
                    {   
        Console.WriteLine("MAC   address\t{0}",   mo["MacAddress"].ToString());     
                          mo.Dispose();     
  }     
  }
如果系统提示找不到名字空间Management,   
  1.   在Solution   Explorer中鼠标右键单击References,选择Add   Reference...     
  2.   此时会弹出Add   Reference对话框,选中.NET选项卡。   
  3.   选中System.Management,点select   
  4.   点击"OK"。

2012年10月15日 星期一

CSS之按比例縮小圖片大小


CSS之按比例縮小圖片大小



用CSS達成這目的很簡單,只要你確定了你圖片所想要的寬度,接下來的事情就是把程式碼輸入到樣式表裡面這樣簡單而已

img {
max-width:550px;
height:inherit;
width:expression(document.body.clientWidth>550?"550px""auto");/*若圖片大於550px就調整*/
overflow:hidden;      /*超過不顯示*/
}
其中,max-width為圖片最大寬度,底下的數值皆以此為準修改就可以了~
20110129補充:
如果不考慮 IE 6 的話,expression 那行其實可以去掉
而且有那行的話,等於只要用 IE 看還是多了一行 JS ...XD


img{
max-width:590px;
width:expression(this.width>590?"590px":this.width);
max-height:590px;
height:expression(this.height>590?"590px":this.height);
}

2012年10月12日 星期五

網站安全檢測

360 http://webscan.360.cn/index/checkwebsite?url=www.grassstudio.com.tw%2F
諾頓 .http://safeweb.norton.com/

URL VOID http://www.urlvoid.com/


這套軟體的名稱是websecurify,他們標榜的是web and web 2.0 security,目前提供了windows、mac os和linux三種平台的版本,如果你也有興趣也可以下載原始碼回來研究。
一、前言 
  網站上線前,是否只要功能正常運作就算是通過測試?也許在10年或20年前是這樣,但在今日僅是功能正常運作是不夠的,安全性的評估有時比功能正常運作更加重要。當我們使用網站搜尋功能尋找「Mary」時,系統會正常找出「Mary」的相關資訊,good!但是當我們搜尋「Mary’or 1=1」的時候,系統會幫我們找出甚麼呢?網站的漏洞往往就在這些非預期的情況下產生,如果只靠傳統的程式邏輯去尋找這些漏洞的話,恐怕略顯不足,畢竟這些漏洞大部分是在「非預期」的情況下產生的。 

  此外,隨著網站越來越多元化,內容或資訊都會不定期更新,而每個新增的頁面或連結,都有可能帶來新的漏洞,因此,網站的安全性檢測不論在上線前或是每次更新時,都是務必檢查的工作。 

  但是手動的網站檢測,對使用者而言是很大的負擔,尤其以目前網站動輒數百至數千頁,以人工方式對每一頁進行澈底的安全檢測近乎不可能,此時,方便而自動化的檢測工具就很重要了。以下介紹幾套好用、便利及自動化檢測的免費工具,使用者可以自行上網下載使用,對網站安全進行基本的檢查,降低網站被入侵的風險。 

二、工具介紹 
   
˙Paros 
  Paros是一套使用JAVA語言撰寫成的網頁代理伺服器型檢測工具。Paros啟動之後,使用者只需將代理伺服器指向Paros,使得接下來瀏覽網頁的資訊皆可被Paros中斷與記錄,讓使用者可對HTTP/HTTPS所傳送與接收的內容觀看或修改,亦可找出POST等方法所傳送的資料格式,非常便於網站測試。此外,Paros也提供爬尋(spider)網站的功能,可完整取得網站之樹狀結構,並對找出來的頁面進行XSS、SQL Injection及資訊揭露與不適當錯誤處置等基本網頁弱點進行掃描。整體來說,Paros是一套以網頁代理伺服器型的檢測工具,功能性可說是非常完整,其操作畫面詳見圖1,但比較可惜的是此軟體已有一段時間沒有進行更新,目前最新的版本仍是2006年8月8日所公布的3.2.13版。 
https://sites.google.com/site/gappstutor/news/yiparossaomiaowebchengshiloudong
˙Burp Suite 

  Burp Suite 也是一套JAVA語言撰寫成的網頁代理伺服器型檢測工具,使用的方法和Paros類似,但在功能上Burp Suite卻有其獨特處。使用者將代理伺服器指向Burp Suite,使用爬尋功能取得網站樹狀結構之後,即可將找到的頁面送至Burp Suite中其他如掃描(Scanner)、入侵(Intruder)或重複註冊檢測(Repeater)等功能,其中掃描可檢測XSS、SQL Injection等弱點,而重複註冊檢測則能測試網站是否可防範大量註冊或灌票等弱點。此外,入侵功能可說是Burp Suite最強大的功能之一,可以對特定頁面傳送大量不同的參數,並觀察特定回傳欄位的變化,對於暴力破解密碼或Blind SQL Injection的檢測都非常好用。唯一美中不足的地方是,免費版的Burp Suite不支援或只有部分支援某些功能(如免費版的入侵功能測試速度較慢),但其基本功能足以完成很多的網站弱點測試,因此在從事網站檢測時,仍是一套非常好用的工具。Burp Suite畫面詳見圖2。 
http://dinowang.blogspot.tw/2010/04/first-use-of-burp-suite-for.html
圖1 Paros畫面(資料來源:自行整理) 

圖2 Burp Suite畫面(資料來源:自行整理) 

˙Grendel-Scan 

  Grendel-Scan工具是一套自動化圖形介面的網站安全性檢測工具,可運行在Windows及Macintosh作業系統上,並提供Source Code下載。Grendel-Scan可以檢測相當完整的弱點,包含檔案列舉(File Enumeration)、資訊洩漏(Information Leakage)、連線管理(Session Management)、XSS、惡意攻擊(Miscellaneous Attacks)、應用程式架構(Application Architecture)、網站設定(Web Server Configuration)及SQL Injection等弱點分項,使用者可對每一分項再就需要檢測的項目進行細部調整。此外Grendel-Scan亦具備網站爬尋功能,因此在檢測時只需提供起始頁面,即可取得網站樹狀結構並對每一頁面自動檢測。Grendel-Scan也具備了許多其他好用的功能,例如:選擇是否使用代理伺服器進行檢測、選擇不同的報告輸出格式、設定檢測速度、預先設定須登入頁面之帳號密碼,及設定檢測時URL之黑名單與白名單等,這些都是在從事網頁檢測時非常方便的功能。Grendel-Scan畫面詳見圖3。 

˙Nikto 

  Nikto工具是一款能對網站伺服器執行多種安全測試的自動化掃描軟體,與其他工具不同的是,Nikto為文字介面之檢測工具,在操作上或許沒有其他工具那麼直覺,但也不算困難,可在命令提示字元下輸入nikto.pl –Help,即可顯示詳細的操作說明。Nitko可對伺服器進行全面掃描,包含超過3,500種具有潛在危險的文件或CGI檔案、超過900種伺服器版本問題及逾250種特定伺服器問題。此外,Nikto的掃描項目和外掛程式仍在持續更新,只須在命令提示字元下輸入nikto.pl –update,即可至Nikto官網下載最新套件進行更新。Nikto具有另一項特色為掃描速度快,可在最短時間內對網站伺服器相關的不安全設定、錯誤的配置及久未更新之過時軟體進行偵測,是網站檢測時一個很方便的利器。Nikto畫面詳見圖4。 

圖3 Grendel-Scan畫面(資料來源:自行整理) 

圖4 Nikto畫面(資料來源:自行整理) 

˙Nessus 

  Nessus是一套非常有名的網站伺服器檢測工具,由於是圖型化界面,因此在操作上非常便利。比較特別的是Nessus在使用上需要事先安裝Nessus Server與Nessus Client,檢測的過程則是由Nessus Client連至Nessus Server,再透過Nessus Server對目標網站進行檢測。Nessus可幫助系統管理者檢測系統主機的弱點所在,讓系統管理者對弱點處進行修正與防護,降低遭受入侵之風險。此外,Nessus 可以更新外掛模組(Plugins),提升軟體功能與增進檢測能力。但是由於Nessus過於有名,目前大部分的網路防護設備都會對Nessus的測試加以阻擋,因此為了達到較高的檢測準確率,一般是建議將Nessus掃描主機至於網站伺服器同一網段進行檢測。Nessus畫面詳見圖5與圖6。 

圖5  Nessus Server畫面(資料來源:自行整理) 

圖6 Nessus Client畫面(資料來源:自行整理) 

三、結論 
  
˙Paros 

  承上所言,現在網站都如此龐大,因此本文介紹了5套常用的網站檢測工具,提供一般的網站/網頁管理人員對網站安全進行基本的檢測。但是比檢測更重要的就是修復,否則找出漏洞卻不修復的話,就完全失去了檢測的意義。通常漏洞修補之後,應該再進行複測的動作,以確保漏洞被正確修復,或驗證是否還有新的漏洞產生。透過不斷地檢測與修復循環後,即可降低網站被入侵的風險。此外,網站安全並不是只作一次檢測即代表永久安全,應要安排定期檢測或每次網站更新時執行檢測,將網站的安全性保持在一定水平。 

  另外,使用電腦與網路的民眾應該要有一個基本觀念—「絕對沒有百分之百的安全性」,因此,即使運用了本文所介紹的工具,甚或更多的工具,也不能保證網站是絕對安全的。雖然愈是全面地檢測愈是煩瑣,但是努力一定會有收穫的。藉由本文5套基本網站檢測工具拋磚引玉地介紹,希望能提供網站/網頁管理人員強化網站的安全性,降低遭受攻擊的風險,「一同努力、一份心力,共同提高網站安全性!」 


資料來源:國家資通安全會報技術服務中心 

  随着 Web 应用越来越广泛,Web 安全威胁日益凸显。黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这也使得越来越多的用户关注应用层的安全问题,对 Web 应用安全的关注度也逐渐升温。下面向大家推荐8款非常有用的免费 Web 安全测试工具。

N-Stalker Web 应用程序安全2012免费版本能够为您的 Web 应用程序清除该环境中大量常见的漏洞,包括跨站脚本(XSS)、SQL 注入(SQL injection)、缓存溢出(Buffer Overflow)、参数篡改 (Parameter Tampering)等等。

Netsparker Community Edition 是一款 SQL 注入扫描工具,是Netsparker的社区免费版本,提供了基本的漏洞检测功能。使用友好,灵活。

Websecurify 是一款开源的跨平台网站安全检查工具,能够帮助你精确的检测 Web 应用程序安全问题。

Wapiti 是 Web 应用程序漏洞检查工具。它具有“暗箱操作”扫描,即它不关心 Web 应用程序的源代码,但它会扫描网页的部署,寻找使其能够注入数据的脚本和格式。

Skipfish 是 Google 公司发布的一款自动 Web 安全扫描程序,以降低用户的在线安全威胁。和 Nikto 和 Nessus 等其他开源扫描工具有相似的功能。

Exploit-Me 是一套 Firefox 的 Web 应用程序安全测试工具,轻量,易于使用。

WebScarab 一个用来分析使用HTTP和HTTPS协议的应用程序框架,通过记录它检测到的会话内容(请求和应答)来帮助安全专家发现潜在的程序漏洞。

x5s 是一款 Fiddler 插件,用于辅助渗透测试人员发现跨站点脚本(XSS)漏洞。

2012年10月11日 星期四

response.write 问题 - .NET技术 / ASP.NET

http://dotnet.ygman.com/thread/248764
 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
  {
  if (0 == RebootAXIS(MachineIp.Ip))
  {
  //MessageBox.Show("Reboot successfully.");
  Page.ClientScript.RegisterStartupScript(Page.GetType(), "ks", "alert('Reboot successfully.')", true);
  }
  else
  {
  Page.ClientScript.RegisterStartupScript(Page.GetType(), "ks", "alert('Failed to reboot the DVS.')", true);
  }

http://e-stickynotes.blogspot.tw/2010/04/aspnet-messagebox.html



ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "test", "alert('保存成功!');", true);

2012年8月30日 星期四

ASP.NET身份验证机制membership入门——控件篇


在前面两篇文章里,我们了解了一下如何配置membership以及roleManager,那么配置成功后又该如何应用呢?其实ASP.NET给我们提供了一套登录控件,我们可以使用这套控件,轻松的来完成一些通用的功能,例如:注册,登录等。


  那么配置好之后第一件事情就是注册用户了,注册用户其实很简单,我们只需新建一个页面,然后在页面中拖出一个CreateUserWizard控件,然后运行页面。好了,没有写一行代码,但是注册功能就已经实现了!就是这么简单!效果见下图: